ARDUINO
Parte 2
Entradas analógicas
2
Tipos de datos.
ENTRADAS ANALÓGICAS
analogRead(pin)
pin: el nombre del pin de entrada analógica para leer (A0 a A5 en la mayoría de
las placas, A0 a A6 en las placas MKR, A0 a A7 en Mini y Nano, A0 a A15 en
Mega).
La lectura viene dada en un valor entre 0 y 1023.
Una característica de los pines analógicos es que
no necesitan ser declarados como entradas o
salidas, son siempre pines de entrada a la placa de
Arduino.
En el siguiente ejemplo se muestra como se lee el
pin número 3:
int Valor = analogRead(3);
También es posible utilizar las constantes definidas
para realizar las lecturas analógicas:
int Valor = analogRead(VERDE);
SALIDAS ANALÓGICAS
El valor enviado debe estar entre 0 y 255.
pin: el pin de Arduino para escribir. Tipos de datos permitidos: int.
analogWrite(pin, value) value: el ciclo de trabajo: entre 0 (siempre apagado) y 255 (siempre encendido). Tipos de datos
permitidos: int.
5
Función map.
map(value, fromLow, fromHigh, toLow, toHigh)
value: el número a mapear.
fromLow: el límite inferior del rango actual del valor.
fromHigh: el límite superior del rango actual del
valor.
toLow: el límite inferior del rango objetivo del valor.
toHigh: el límite superior del rango objetivo del
valor.
6
Monitor serie.
El monitor de puerto serie es una pequeña utilidad integrada dentro de IDE Standard que nos
permite enviar y recibir fácilmente información a través del puerto serie. Su uso es muy
sencillo, y dispone de dos zonas, una que muestra los datos recibidos, y otra para enviarlos.
7
Monitor serie. Cómo utilizarlo.
En la sección de CONFIGURACIÓN debo poner:
void setup(){
Serial.begin(9600); // Inicio el puerto serie y le indico la velocidad en
baudios
// de la comunicación.
}
En la sección de PROGRAMA puedo hacer que se me muestren las variables que desee de
la forma:
void loop(){
Serial.print(“dato: );
Serial.println(valor); // println además mueve el cursor al principio de la línea siguiente
}
8
PROGRAMA: Potenciómetro.
#define LED 9
#define POTENCIOMETRO 0
void setup()
{
pinMode(LED,OUTPUT);
pinMode(POTENCIOMETRO,INPUT);
Serial.begin(9600);
}
9
PROGRAMA: Potenciómetro.
void loop()
{
int valor_potenciometro = analogRead(POTENCIOMETRO);
int valor_led = map(valor_potenciometro,0,1023,0,255);
analogWrite(LED,valor_potenciometro);
Serial.println(valor_potenciometro);
Serial.println(valor_led);
delay(6000);
}
10
LDR. Calibración.
11
Sensor de agua.
12
Sensor de agua.
13
Sensor de temperatura.
El fabricante del TMP36 nos dice que la salida de tensión será de 10
mV (mili voltios) por cada grado de temperatura y además sabemos
que nuestro Arduino mide en las entradas analógicas una máximo de
1.024 para 5V (y 0 para 0V), por tanto, para una lectura dada, el valor
en voltios de la medida será:
Y como cada voltio equivale a 100ºC ( 1V / 10mv = 100), la temperatura en
grados Celsius es resultado de multiplicar esto por 100.
Pero para que la cosa no sea tan fácil el fabricante del TMP36 nos dice que el
0V no es 0º sino -50º (y así poder leer valores bajo cero), así que al total hay
que restarle 50.