INTRODUCCION RRDUINO
Arduino Mega
PLACA ARDUINO
• Arduino es una placa ELECTRÒNICA con un microcontrolador de la marca Atmel y con toda la circuitería
de soporte, que incluye, reguladores de tensión, un puerto USB que permite programar el
microcontrolador.
• Un Arduino dispone de 14 pines que pueden configurarse como entrada o salida y a los que puede
conectarse cualquier dispositivo que sea capaz de transmitir o recibir señales digitales de 0 y 5 V.
• También dispone de entradas y salidas analógicas. Mediante las entradas analógicas podemos obtener
datos de sensores en forma de variaciones continuas de un voltaje.
• Cada uno de los 14 pines digitales se puede usar como entrada o como salida. Funcionan a
5V y cada pin suministra 40 mA.
• También dispone de 6 pines de entrada analógicos que trasladan las señales a un conversor
analógico/digital de 10 bits.
• Pines especiales de entrada y salida:
 Rx y Tx: Se usan para transmisiones serie de señales TTL.
 PWM: dispone de 6 salidas destinadas a la generación de señales PWM de hasta 8 bits.
 SPI: es un protocolo de comunicación síncrona de 4 hilos, los pines 10, 11, 12 y 13
pueden utilizarse para llevar a cabo comunicaciones SPI.
 I2
C: es un protocolo de comunicación serial, diseñado para facilitar la comunicación entre
diferentes tipos de dispositivos entre los que se encuentran los microcontroladores.
ENTRADAS Y SALIDAS:
MICROCONTROLADOR ATMEGA 328P
CARACTERÍSTICAS TÈCNICAS
La programación de Arduino es la programación de un microcontrolador.
Estructura de un Sketch
Un programa de Arduino se denomina sketch o proyecto
y tiene la extensión .ino
1
2
3
4
5
6
7
void setup() {
// put your setup code here, to run once:
}
void loop() {
// put your main code here, to run repeatedly:
}
6. PROGRAMACIÓN ARDUINO
En Arduino las entradas y salidas digitales comparten pin. Esto significa que el
mismo pin puede ejecutar funciones tanto de entrada como de salida. Es
necesario configurar un pin I/O como entrada o salida en el código.
Pines de entrada: escuchan y capturan información del exterior; pulsadores,
sensores. INPUT – el pin se usa para leer si tiene 5V ó 0V
Pines de salida: envían información desde la tarjeta de arduino al exterior.
OUTPUT – activa aplicando 5 voltios o 0V al pin
7. PINES DIGITALES
FUNCIONES DIGITALES
• pinMode() – configura en el pin especificado si se va a comportar como una
entrada o una salida.
Sintaxis: pinMode(pin, ESTADO);
• digitalWrite() – Escribe un valor HIGH o LOW en el pin digital especificado.
Sintaxis: digitalWrite(pin,estado)
digitalWrite (13,HIGH);
digitalWrite (13,LOW);
• digitalRead() – lee el valor del pin correspondiente como HIGH o LOW.
Sintaxis: digitalRead(pin)
int a = digitalRead (13);
EJEMPLO
void setup() {
//configurar los pines digitales
pinMode(13, OUTPUT);
}
void loop() {
digitalWrite(13,HIGH); //digitalWrite(pin,
nivel)
delay(1000);
digitalWrite(13,LOW);
delay(1000);
EJEMPLO
int pin = 2;
int value = 0;
void setup() {
Serial.begin(9600);
//iniciar puerto serie
pinMode(pin, INPUT);
//definir pin como entrada
}
void loop(){
value = digitalRead(pin);
//lectura digital y mando mensaje a puerto serie
en función del valor leido
if (value == HIGH) {
Serial.println("Encendido");
}
else {
Serial.println("Apagado");
}
delay(1000);
}
Las entradas analógicas del modelo Uno son las correspondientes a los pines de A0 a A5. Se
caracterizan por leer valores de tensión de 0 a 5 Voltios con una resolución de 1024 (10 bits).
Si dividimos 5 entre 1024 tenemos que ser capaz de detectar variaciones en el nivel de la
señal de entrada de casi 5 mV.
En la mayoría de los sistemas automatizados, utilizamos sensores para supervisor el mundo
exterior. Estos sensores nos entregan una señal analógica. Como ejemplo mas practico
podemos citar el caso de los sensores de:
• Temperatura
• Distancia
• Presión
• PH
• Intensidad de corriente en un circuito
• Caudal de agua en una tubería
• Velocidad de un coche
• % de Humedad
PINES ANALÒGICOS
¿Qué es una señal Analógica?
Los sistemas automatizados, utilizan sensores para supervisor el mundo exterior. Estos
sensores nos entregan una señal analógica, por ejemplo:
Sensor de Temperatura, Distancia, Presión, PH, Intensidad de corriente en un circuito,
Caudal de agua en una tubería, Velocidad de un coche, % de Humedad
Para leer este tipo de señales continuas, necesitamos un convertidor analógico a digital
( ADC) y que nos permite leer el valor de una señal analógica en un momento dado.
Estos convertidores toman una muestra del valor actual de la señal y nos entregan su
valor instantáneo, medido en Voltios.
Mediante la lectura repetida de muestras a lo largo del tiempo podemos reconstruir la
señal original con mayor o menor precisión, dependiendo de la exactitud de nuestra
medida y de la velocidad a la que pueda tomar esas muestras.
¿Cómo lee el valor analógico Arduino?
Convertir de Analógico a Digital
1. Muestrear
2. Cuantificar
3. Codificar (A los niveles y luego la muestra
FUNCIONES ANALÒGICAS
• analogRead()
La función analogRead(), sirve para leer el valor en un pin de
entrada analógico. Los valores están comprendidos entre 0 y 1023
(0 – 5V).
// Leer un "pin" ----------------- analogRead(pin);
// Ejemplo: Leer el pin analógico 0 ----------------analogRead(0);
• analogWrite()
Escribir un valor análogo 0 a 255
Sintaxis: analogWrite(pin,valor de PWM)
analogWrite (9, 134);
void setup() {
Serial.begin(9600); //Establecemos la velocidad para el puerto serial
}
void loop() {
int valor = analogRead(A5); //Indicamos el puerto del que vamos a obtener
el valor
Serial.println(valor);//imprimimos el valor en monitor serial
delay(10); //espera
}
Controlar la
intensidad de
luz de un led
ENCENDER LEDS CON POTENCIÓMETRO EN
ARDUINO
int lightPin = 0; //define el pin de la foto-resistencia
int ledPin=9; //define el pin para el LED
int valor; //define una variable en la que haremos los
cálculos
void setup() {
Serial.begin(9600); //Inicializa la comunicación serie
pinMode( ledPin, OUTPUT );
}
void loop() {
valor = analogRead(lightPin);
analogWrite(ledPin, valor);
Serial.println(valor);
delay(1000); //pequeño retardo para darle
// tiempo al LED a responder.
}
• analogWrite()
Escribir un valor análogo 0 a 255
Sintaxis: analogWrite(pin,valor de PWM)
analogWrite (9, 134);
• Función map()
La función map() sirve para mapear de forma sencilla convirtiendo un rango
de valores en otro rango.
// Extrapolar un rango de valores en otro:
map(valor, rango_final(inicio, fin), rango_inicial(inicio, fin));
Ejemplo:
valor_led = map(valor_ldr, 0,320, 0,255);
El “valor-ldr” corresponde al valor leído por un sensor de luz, cuyo rango
puede variar de 0 a 320, valores que ponemos en el segundo y tercer lugar;
los valores de salida deben oscilar entre 0 y 255 (valores cuarto y quinto)
porque servirán para iluminar un led, este valor se almacena en la variable
“valor_led” como valor de salida de la función map().
9. PINES DE SALIDAS PWM
En este dispositivo contaremos con 6 salidas PWM (modulación por
ancho de pulso), que tienen una resolución de 8 Bits, lo que en números
decimales serían 0 a 255. A continuación se muestra un ejemplo de
control de un motor DC, donde 0 es la velocidad mínima y 255 es la
velocidad máxima.
La modulación por ancho de pulso o PWM (Pulse Width
Modulation) Modificando el ancho del pulso activo (que está
en On) se controla la cantidad de corriente que fluye hacia el
dispositivo. Funciona como un interruptor, que
constantemente se activa y desactiva, regulando la cantidad
de corriente y por ende de potencia, que se entrega al
dispositivo que se desea controlar. Éstos dispositivos pueden
ser motores CC o fuentes de luz en CC, entre otros.
La modulación por ancho de pulso
o PWM (Pulse Width Modulation)
Modificando el ancho del pulso activo
(que está en On) se controla la
cantidad de corriente que fluye hacia
el dispositivo. Funciona como un
interruptor, que constantemente se
activa y desactiva, regulando la
cantidad de corriente y por ende de
potencia, que se entrega al dispositivo
que se desea controlar. Éstos
dispositivos pueden ser motores CC o
fuentes de luz en CC, entre otros.
int motorPin = 9;
void setup() {
pinMode(motorPin, OUTPUT);
}
void loop() {
int delayTime = 50;
for (int i=0; i<255; i++){
analogWrite(motorPin,i);
delay(delayTime);
}
for (int i= 255; i>=0; i--){
analogWrite(motorPin, i);
delay(delayTime);
}
}
DIGITAL
(PWM~)
ANALOG
IN
AREF
13
12
~11
~10
RX < 0
~9
8
7
~6
~5
4
~3
2
TX > 1
SIMULINO
ARDUINO
A0
A1
A2
A3
A4
A5
RESET
5V
GND
POWER
ATMEGA328P
ATMEL
www.arduino.cc
blogembarcado.blogspot.com
0
1
2
3
4
5
6
7
8
9
10
11
12
13
A5
A4
A3
A2
A1
A0
SIM1
SIMULINO UNO

Arduino (2).aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa

  • 1.
  • 2.
    Arduino Mega PLACA ARDUINO •Arduino es una placa ELECTRÒNICA con un microcontrolador de la marca Atmel y con toda la circuitería de soporte, que incluye, reguladores de tensión, un puerto USB que permite programar el microcontrolador. • Un Arduino dispone de 14 pines que pueden configurarse como entrada o salida y a los que puede conectarse cualquier dispositivo que sea capaz de transmitir o recibir señales digitales de 0 y 5 V. • También dispone de entradas y salidas analógicas. Mediante las entradas analógicas podemos obtener datos de sensores en forma de variaciones continuas de un voltaje.
  • 3.
    • Cada unode los 14 pines digitales se puede usar como entrada o como salida. Funcionan a 5V y cada pin suministra 40 mA. • También dispone de 6 pines de entrada analógicos que trasladan las señales a un conversor analógico/digital de 10 bits. • Pines especiales de entrada y salida:  Rx y Tx: Se usan para transmisiones serie de señales TTL.  PWM: dispone de 6 salidas destinadas a la generación de señales PWM de hasta 8 bits.  SPI: es un protocolo de comunicación síncrona de 4 hilos, los pines 10, 11, 12 y 13 pueden utilizarse para llevar a cabo comunicaciones SPI.  I2 C: es un protocolo de comunicación serial, diseñado para facilitar la comunicación entre diferentes tipos de dispositivos entre los que se encuentran los microcontroladores. ENTRADAS Y SALIDAS:
  • 4.
  • 6.
  • 7.
    La programación deArduino es la programación de un microcontrolador. Estructura de un Sketch Un programa de Arduino se denomina sketch o proyecto y tiene la extensión .ino 1 2 3 4 5 6 7 void setup() { // put your setup code here, to run once: } void loop() { // put your main code here, to run repeatedly: } 6. PROGRAMACIÓN ARDUINO
  • 12.
    En Arduino lasentradas y salidas digitales comparten pin. Esto significa que el mismo pin puede ejecutar funciones tanto de entrada como de salida. Es necesario configurar un pin I/O como entrada o salida en el código. Pines de entrada: escuchan y capturan información del exterior; pulsadores, sensores. INPUT – el pin se usa para leer si tiene 5V ó 0V Pines de salida: envían información desde la tarjeta de arduino al exterior. OUTPUT – activa aplicando 5 voltios o 0V al pin 7. PINES DIGITALES
  • 13.
    FUNCIONES DIGITALES • pinMode()– configura en el pin especificado si se va a comportar como una entrada o una salida. Sintaxis: pinMode(pin, ESTADO); • digitalWrite() – Escribe un valor HIGH o LOW en el pin digital especificado. Sintaxis: digitalWrite(pin,estado) digitalWrite (13,HIGH); digitalWrite (13,LOW); • digitalRead() – lee el valor del pin correspondiente como HIGH o LOW. Sintaxis: digitalRead(pin) int a = digitalRead (13);
  • 15.
    EJEMPLO void setup() { //configurarlos pines digitales pinMode(13, OUTPUT); } void loop() { digitalWrite(13,HIGH); //digitalWrite(pin, nivel) delay(1000); digitalWrite(13,LOW); delay(1000);
  • 16.
    EJEMPLO int pin =2; int value = 0; void setup() { Serial.begin(9600); //iniciar puerto serie pinMode(pin, INPUT); //definir pin como entrada } void loop(){ value = digitalRead(pin); //lectura digital y mando mensaje a puerto serie en función del valor leido if (value == HIGH) { Serial.println("Encendido"); } else { Serial.println("Apagado"); } delay(1000); }
  • 17.
    Las entradas analógicasdel modelo Uno son las correspondientes a los pines de A0 a A5. Se caracterizan por leer valores de tensión de 0 a 5 Voltios con una resolución de 1024 (10 bits). Si dividimos 5 entre 1024 tenemos que ser capaz de detectar variaciones en el nivel de la señal de entrada de casi 5 mV. En la mayoría de los sistemas automatizados, utilizamos sensores para supervisor el mundo exterior. Estos sensores nos entregan una señal analógica. Como ejemplo mas practico podemos citar el caso de los sensores de: • Temperatura • Distancia • Presión • PH • Intensidad de corriente en un circuito • Caudal de agua en una tubería • Velocidad de un coche • % de Humedad PINES ANALÒGICOS
  • 18.
    ¿Qué es unaseñal Analógica? Los sistemas automatizados, utilizan sensores para supervisor el mundo exterior. Estos sensores nos entregan una señal analógica, por ejemplo: Sensor de Temperatura, Distancia, Presión, PH, Intensidad de corriente en un circuito, Caudal de agua en una tubería, Velocidad de un coche, % de Humedad Para leer este tipo de señales continuas, necesitamos un convertidor analógico a digital ( ADC) y que nos permite leer el valor de una señal analógica en un momento dado. Estos convertidores toman una muestra del valor actual de la señal y nos entregan su valor instantáneo, medido en Voltios. Mediante la lectura repetida de muestras a lo largo del tiempo podemos reconstruir la señal original con mayor o menor precisión, dependiendo de la exactitud de nuestra medida y de la velocidad a la que pueda tomar esas muestras.
  • 20.
    ¿Cómo lee elvalor analógico Arduino?
  • 22.
    Convertir de Analógicoa Digital 1. Muestrear
  • 23.
  • 24.
    3. Codificar (Alos niveles y luego la muestra
  • 30.
    FUNCIONES ANALÒGICAS • analogRead() Lafunción analogRead(), sirve para leer el valor en un pin de entrada analógico. Los valores están comprendidos entre 0 y 1023 (0 – 5V). // Leer un "pin" ----------------- analogRead(pin); // Ejemplo: Leer el pin analógico 0 ----------------analogRead(0); • analogWrite() Escribir un valor análogo 0 a 255 Sintaxis: analogWrite(pin,valor de PWM) analogWrite (9, 134);
  • 33.
    void setup() { Serial.begin(9600);//Establecemos la velocidad para el puerto serial } void loop() { int valor = analogRead(A5); //Indicamos el puerto del que vamos a obtener el valor Serial.println(valor);//imprimimos el valor en monitor serial delay(10); //espera }
  • 37.
  • 38.
    ENCENDER LEDS CONPOTENCIÓMETRO EN ARDUINO
  • 40.
    int lightPin =0; //define el pin de la foto-resistencia int ledPin=9; //define el pin para el LED int valor; //define una variable en la que haremos los cálculos void setup() { Serial.begin(9600); //Inicializa la comunicación serie pinMode( ledPin, OUTPUT ); } void loop() { valor = analogRead(lightPin); analogWrite(ledPin, valor); Serial.println(valor); delay(1000); //pequeño retardo para darle // tiempo al LED a responder. }
  • 41.
    • analogWrite() Escribir unvalor análogo 0 a 255 Sintaxis: analogWrite(pin,valor de PWM) analogWrite (9, 134); • Función map() La función map() sirve para mapear de forma sencilla convirtiendo un rango de valores en otro rango. // Extrapolar un rango de valores en otro: map(valor, rango_final(inicio, fin), rango_inicial(inicio, fin));
  • 42.
    Ejemplo: valor_led = map(valor_ldr,0,320, 0,255); El “valor-ldr” corresponde al valor leído por un sensor de luz, cuyo rango puede variar de 0 a 320, valores que ponemos en el segundo y tercer lugar; los valores de salida deben oscilar entre 0 y 255 (valores cuarto y quinto) porque servirán para iluminar un led, este valor se almacena en la variable “valor_led” como valor de salida de la función map().
  • 43.
    9. PINES DESALIDAS PWM En este dispositivo contaremos con 6 salidas PWM (modulación por ancho de pulso), que tienen una resolución de 8 Bits, lo que en números decimales serían 0 a 255. A continuación se muestra un ejemplo de control de un motor DC, donde 0 es la velocidad mínima y 255 es la velocidad máxima. La modulación por ancho de pulso o PWM (Pulse Width Modulation) Modificando el ancho del pulso activo (que está en On) se controla la cantidad de corriente que fluye hacia el dispositivo. Funciona como un interruptor, que constantemente se activa y desactiva, regulando la cantidad de corriente y por ende de potencia, que se entrega al dispositivo que se desea controlar. Éstos dispositivos pueden ser motores CC o fuentes de luz en CC, entre otros.
  • 44.
    La modulación porancho de pulso o PWM (Pulse Width Modulation) Modificando el ancho del pulso activo (que está en On) se controla la cantidad de corriente que fluye hacia el dispositivo. Funciona como un interruptor, que constantemente se activa y desactiva, regulando la cantidad de corriente y por ende de potencia, que se entrega al dispositivo que se desea controlar. Éstos dispositivos pueden ser motores CC o fuentes de luz en CC, entre otros.
  • 46.
    int motorPin =9; void setup() { pinMode(motorPin, OUTPUT); } void loop() { int delayTime = 50; for (int i=0; i<255; i++){ analogWrite(motorPin,i); delay(delayTime); } for (int i= 255; i>=0; i--){ analogWrite(motorPin, i); delay(delayTime); } }
  • 47.
    DIGITAL (PWM~) ANALOG IN AREF 13 12 ~11 ~10 RX < 0 ~9 8 7 ~6 ~5 4 ~3 2 TX> 1 SIMULINO ARDUINO A0 A1 A2 A3 A4 A5 RESET 5V GND POWER ATMEGA328P ATMEL www.arduino.cc blogembarcado.blogspot.com 0 1 2 3 4 5 6 7 8 9 10 11 12 13 A5 A4 A3 A2 A1 A0 SIM1 SIMULINO UNO