Arduino Parte3 GS

Descargar como pptx, pdf o txt
Descargar como pptx, pdf o txt
Está en la página 1de 40

ARDUINO

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.

#include <DHT.h> // Biblioteca donde está definida la clase de detectores de temperatura.

#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.

En total se pueden visualizar 2 líneas de 16 caracteres cada una, es decir,


2x16 = 32 caracteres. A pesar de que el display sólo puede visualizar 16
caracteres por línea, puede almacenar en total 40 por línea. Es el usuario
el que especifica qué 16 caracteres son los que se van a visualizar.
INTRODUCCIÓN
MATRIZ DE 5X8

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

LiquidCrystal lcd(7,6, 5, 4, 3, 2); // LiquidCrystal(rs, enable, d4, d5, d6, d7)


// Se crea un OBJETO de la CLASE LiquidCrystal llamado lcd indicando como está conectado a Arduino.
16
Biblioteca LiquidCrystal

En la sección de SETUP:

lcd.begin(16,2); // lcd.begin(cols, rows)

// 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.print("Hola, mundo!"); // lcd.print(data)


// Está función imprime un texto en la LCD.
18
Biblioteca LiquidCrystal

Otras funciones del OBJETO:


lcd.clear(); // Borra la pantalla LCD y posiciona el cursor en la esquina superior izquierda .
lcd.setCursor(col, row); //Coloca el cursor del LCD; es decir, establece la ubicación en la que se mostrará
// el texto escrito a continuación en la LCD.
lcd.cursor(); //Muestra el cursor del LCD: como un guión bajo (línea) en la posición a la que se escribirá el siguiente carácter.
lcd.noCursor();
lcd.blink(); // Muestra el cursor LCD parpadeante.
noBlink();
scrollDisplayLeft(); // Desplaza el contenido de la pantalla (texto y el cursor) un espacio hacia la izquierda.
scrollDisplayRight(); // Desplaza el contenido de la pantalla (texto y el cursor) un espacio hacia la derecha
19
Biblioteca LiquidCrystal

Otras funciones del OBJETO:

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.

Lcd.noAutoscroll(); // Desactiva la función anterior.


20
Ejemplo comentdo nº 1.

 void loop() {
 // Limpiamos la pantalla
 lcd.clear();

 // Situamos el cursor en la columna 0 fila 0


 lcd.setCursor(0,0);

 // Escribimos Con lluvia


 lcd.print(“Con lluvia");
21
Ejemplo comentado nº 1. Segundo texto

 // Situamos el cursor en la columna 0 fila 1


 lcd.setCursor(0,1);

 // Escribimos morede su velocidad.


 lcd.print(“sea precavido");

 // Esperamos 2 segundos igual a 2000 milisegundos


 delay(2000);
 }
22
Ejemplo nº 2. Petición de entrada.
23
Ejemplo nº 3. Nos movemos…

 // Situamos el cursor en la columna 0 fila 1


 lcd.setCursor(2,0);
 // Escribimos un texto hasta 40 caracteres máximo.
 lcd.print(“IES Fernandez Vallin");
 lcd.scrollDisplayLeft();
 // Esperamos 1 segundo
 delay(1000);
 }
Adaptador LCD a Bus I2C
Bus I2C

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.

#include <Wire.h> // Necesaria para la comunicación I2C


#include <LiquidCrystal_I2C.h> // Es necesario instalarla

//Crear el objeto lcd dirección 0x27 y 16 columnas x 2 filas


LiquidCrystal_I2C lcd(0x27,16,2); //
void setup() {
// Inicializar el LCD
lcd.init();

//Encender la luz de fondo.


lcd.backlight();

// Escribimos el Mensaje en el LCD.


lcd.print("Hola Mundo");
}
void loop() {
// Ubicamos el cursor en la primera posición(columna:0) de la segunda
línea(fila:1)
lcd.setCursor(0, 1);
// Escribimos el número de segundos trascurridos
lcd.print(millis()/1000);
lcd.print(" Segundos");
delay(100);
}
INTRODUCCIÓN
INTRODUCCIÓN
LIBRERÍA
CÓDIGO

 #include <Keypad.h> // libreria que utilizo para controlar el teclado

 #define FILAS 4 // Le indico el número de filas de mi teclado


 #define COLUMNAS 4 // Mi teclado es de 4 columnas

 // 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

 //Creo un OBJETO del tipo keypad

 Keypad miteclado = Keypad( makeKeymap(teclas), pinesfilas, pinescolumnas, FILAS, COLUMNAS);

 //********************* SECCIÓN CONFIGURACIÓN **************************

 void setup(){
 Serial.begin(9600);
 }
CÓDIGO

 // ***************** SECCIÓN PRINCIPAL - se repite todo el tiempo


*********************

 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;
 }
 }
 }

También podría gustarte