Arduino Parte3 GS
Arduino Parte3 GS
Arduino Parte3 GS
Parte 3
2
Sensor de temperatura DIGITAL.
Sensor de temperatura DIGITAL.Protocolo de 3
comunicación.
4
Sensor de temperatura DIGITAL.
CLASES Y OBJETOS. C++
CLASE. Sus
propiedades y
funciones se
definen en una
biblioteca.
OBJETOS. Es una entidad tangible que permite acceder a las propiedades y funciones modeladas
en la clase
6
Sensor de temperatura DIGITAL.
#define pin 2;
DHT11 svallin(pin,DHT11); // Creo un OBJETO llamado svallin de la clase DHT11 que
voy // a conectar su salida de
datos al pin 2.
svallin.begin(); // Inicio el sensor con la función begin();
// Utilizo algunas funciones que tiene la clase DTH11 para obtener la temperatura y
humedad.
float h = sensorTH.readHumidity(); //Leemos la Humedad
float t = sensorTH.readTemperature(); //Leemos la temperatura
PANTALLA LCD.
Pantalla de cristal liquido que visualiza unos ciertos caracteres. Para poder
hacer funcionar un LCD, debe estar conectado a un circuito impreso en el
que estén integrados los controladores del display y los pines para la
conexión del display.
El LCD dispone de una matriz de 5x8 puntos para representar cada carácter. En total se
pueden representar 256 caracteres diferentes, 240 caracteres están grabados dentro del
LCD y representan las letras mayúsculas, minúsculas, signos de puntuación, números,
etc. Existen 8 caracteres que pueden ser definidos por el usuario.
10
DDRAM
11
Comandos y Caracteres
12
Pines LCD
13
Propuesta Conexión con Arduino Uno
14
Librería.
15
Biblioteca LiquidCrystal
En la sección de DECLARACIONES:
#include <LiquidCrystal.h> // Esta biblioteca permite a una placa Arduino controlar las pantallas
// LiquidCrystal (LCD) en base
a la Hitachi HD44780
En la sección de SETUP:
// Está función del objeto inicializa la interfaz de la pantalla LCD, y especifica las dimensiones (anchura y
altura) de la pantalla.
17
Biblioteca LiquidCrystal
En la sección de LOOP:
lcd.autoscroll(); // Activa el desplazamiento automático de la pantalla LCD. Esto hace que cada salida de caracteres de la pantalla
empuje los caracteres anteriores por un espacio. Si la dirección del texto actual es de izquierda a derecha (el valor predeterminado), la
pantalla se desplaza hacia la izquierda; si la dirección actual es de derecha a izquierda, la pantalla se desplaza a la derecha. Esto
tiene el efecto de la salida de cada nuevo carácter en la misma ubicación en la pantalla LCD.
void loop() {
// Limpiamos la pantalla
lcd.clear();
Valor resistencias
pull-up entre 1 y
1,5KΩ
El adaptar para
LCD las lleva
incorporadas.
Dirección módulo I2C
La dirección I2C por defecto del módulo puede ser 0x3F o en otros casos 0x27. Es muy
importante identificar correctamente la dirección I2C de nuestro modulo, pues de otra forma
nuestro programa no funcionará correctamente. Para identificar la dirección especifica de
nuestro módulo podemos utilizar un pequeño sketch de prueba llamado: I2C Scanner.
Podemos modificar la dirección I2C del modulo adaptador. Para esto es necesario soldar los
puentes A0, A1 y A2 presentes en el módulo, estos tres son los bits menos significativos. Están
a 1, si sueldo el puente lo pongo a 0.
Protocolo de comunicación
Diagrama de conexión
Adaptador LCD a Bus I2C
El código.
// Defino los números y letras de mi teclado, no todos los teclados son iguales
char teclas[FILAS][COLUMNAS] = {
{'1','2','3','A'},
{'4','5','6','B'},
{'7','8','9','C'},
{'*','0','#','D'}
};
CÓDIGO
byte pinesfilas[FILAS] = {9, 8, 7, 6}; // pines digitales de ARDUINO donde van conectadas las filas
byte pinescolumnas[COLUMNAS] = {5, 4, 3, 2}; //pines digitales de arduino donde van conectadas
las columnas
void setup(){
Serial.begin(9600);
}
CÓDIGO
void loop(){
char tecla_pulsada = miteclado.getKey();
if (tecla_pulsada){
Serial.println(tecla_pulsada);
}
}
39
Switch case
switch (var) {
case 1:
//do something when var equals 1
break;
case 2:
//do something when var equals 2
break;
default:
// if nothing else matches, do the default
// default is optional
break;
}
40
Switch case. Ejemplo.
void loop(){
char tecla_pulsada = miteclado.getKey();
if (tecla_pulsada){
switch (tecla_pulsada) {
case '1':
Serial.println("Opción 1 del menu");
break;
case '2':
Serial.println("Opción 2 del menu");
break;
default:
Serial.println("No has pulsado ni 1 ni 2");
break;
}
}
}