Oficios Técnicos

www.sapiensman.com/tecnoficio


 


 

APLICACIONES ELECTRÓNICAS - Proyectos en Protoboard..

VÍDEOS : https://www.youtube.com/

4 - Uso de la pantalla LCD2004 20x4 Backlight Azul con Arduino Uno, con un LED complementario que indica los cambios de tiempo.

Hola amigos, espero que estén muy bien. En el tutorial de hoy, veremos una introducción a los módulos LCD de 20 × 4. La pantalla LCD significa pantalla de cristal líquido (liquid crystal display), que funciona con las funciones de modulación de luz de los cristales líquidos. Está disponible como pantalla electrónica visible, pantalla de video y pantalla plana. Los LCD existen en numerosas categorías y características en los mercados y puedes verlos en tu móvil, laptop, computadora y pantalla de televisión.

La invención de LCD dió nueva vida a las industrias electrónicas y reemplaza las técnicas de plasma de gas y LED. También reemplaza el tubo CTR (rayos catódicos) que se usaba para presentaciones visuales. La potencia de entrada consumida por la pantalla de cristal líquido es menor que la del diodo emisor de luz y la pantalla de plasma. En la publicación de hoy, veremos una aplicación de la pantalla LCD de 20 x 4, su funcionamiento, aplicaciones e implementación práctica que puede ser usada en diferentes dispositivos electrónicos o proyectos educativos.

En este proyecto vamos a hacer uso de este display para dar salida a diferentes tipos de datos, en el ejemplo tenemos un temporizador que cambia cada segundo, el sketch de ejemplo se da a continuación :

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
int estadosalida = 0 ;
void setup() {
// Inicializar el LCD con el número de columnas y filas del LCD
lcd.begin(20,4);
// Escribimos el Mensaje en el LCD
lcd.print("www.sapiensman.com");
lcd.setCursor(0,2);
lcd.print("APLICACIONES");
lcd.setCursor(0,3);
lcd.print("ELECTRONICAS");
pinMode(12,OUTPUT);
pinMode(2,INPUT);
pinMode(3,INPUT);

}

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(1000);
if (estadosalida == 0){ // variamos el encendido del LED por cada segundo
digitalWrite(12,1);
estadosalida =1;
}
else {
digitalWrite(12,0);
estadosalida = 0;
}


}

Desarrollo en Proteus :

RV2 cumple la función de regular el contraste del display, hasta que los caracteres sean mas o menos visibles.

Ver vídeo : https://www.youtube.com/

Introducción a los módulos LCD de 20 x 4

  • En un módulo LCD de 20 × 4, hay cuatro filas en la pantalla y en una fila se pueden mostrar veinte caracteres y en una pantalla se pueden mostrar ochenta caracteres.
  • Este módulo de cristal líquido utiliza una interfaz paralela HDD44780 (es un controlador que se utiliza para mostrar pantallas de texto monocromáticas).
  • El código de interfaz de la pantalla de cristal líquido es de fácil acceso. Solo necesitamos once pines de entrada y salida para la interfaz de la pantalla LCD.
  • La alimentación de entrada para este módulo es de tres voltios o cinco voltios, con ese módulo otros componentes como PIC, Raspberry PI, Arduino son compatibles.
  • El dispositivo electrónico se puede utilizar en diferentes sistemas integrados, industrias, dispositivos médicos y dispositivos portátiles como móviles, relojes, computadoras portátiles.
  • La pantalla de cristal líquido funciona con dos tipos de señal, la primera es de datos y la segunda es de control.
  • La existencia de estas señales se puede identificar mediante la condición de encendido y apagado del pinout RS. Los datos se pueden leer activando el pinout de lectura / escritura.

Ver vídeo : https://www.youtube.com/

----------------------

5- Ejemplo de control de motor por pasos 17HS2408 con una plaqueta de control L298N y un Arduino Uno.

Muchos sistemas controlados por computadora usan un motor paso a paso para mover el dispositivo controlado a cualquier ubicación deseada. Un motor paso a paso contiene una armadura de imán permanente con dos, cuatro o más bobinas de campo. Al aplicar pulsos de voltaje a las bobinas seleccionadas del motor, la armadura girará un número específico de grados. Cuando se aplican los mismos pulsos de voltaje a las bobinas opuestas, la armadura girará la misma cantidad de grados en la dirección opuesta.

Sketch de Arduino Uno :

/* Programa de ejemplo para controlar un motor paso a paso con controlador de motor L298N, biblioteca Arduino UNO y Stepper.h.*/
// Incluir la librería Stepper.h:
#include <Stepper.h>
// Defina el número de pasos por revolución:
const int stepsPerRevolution = 200;
// Inicialize la librería del motor por pasos entre los pines 8 hasta 11:
Stepper myStepper = Stepper(stepsPerRevolution, 8, 9, 10, 11);
void setup() {
// Fije la velocidad del motor (RPMs):
myStepper.setSpeed(100);
}
void loop() { // Iniciamos el bucle infinito
// Paso de una revolución en una dirección:
myStepper.step(200);
delay(2000); // retardo
// Paso de una revolución en la otra dirección:
myStepper.step(-200);
delay(2000);
}

Alimentamos la plaqueta L298N con una fuente de 6 V y con el puente colocado, ya que no supera el valor de 12 V. De la misma plaqueta L298N, se deriva la alimentación de 5 V para la placa Arduino Uno.

Video disponible en https://youtu.be/yxXkD0cOawE

----------------------

6- Ejemplo de detector de llama KY-026 ó HW-491 con Arduino.

Funcionalidad del sensor

El Módulo KY-026 es un Sensor de Flama que por medio de un LED receptor infrarrojo detecta longitudes de onda de llama en un rango de 760nm a 1100nm. Las salidas de este sensor son digital y analógica e incluye un potenciometro para ajuste de la sensibilidad del sensor.

El sensor tiene 3 componentes principales en su placa de circuito. Primero, la unidad de sensor en la parte frontal del módulo que mide el entorno físicamente y envía una señal analógica a la segunda unidad, el amplificador, el amplificador amplifica la señal, de acuerdo con el valor de resistencia del potenciómetro, y envía la señal a la salida analógica del módulo.

El módulo KY-026 Sensor de Flama es útil para sistema de detección de incendios, como una medida de seguridad.

El tercer componente es un comparador que cambia la salida digital y el LED si la señal cae por debajo de un valor específico.

Se puede controlar la sensibilidad ajustando el potenciómetro.

Tenga en cuenta: la señal se invertirá; eso significa que si mide un valor alto, se muestra como un valor bajo valor de voltaje en la salida analógica.

Este sensor no muestra valores absolutos (como la temperatura exacta en °C o la fuerza de un campo magnético en mT). Es una medida relativa: se define un valor extremo para una situación ambiental normal dada y una señal se enviará si la medición excede el valor extremo.

Es perfecto para un módulo de control de temperatura (KY-028), interruptor de proximidad (KY-024, KY-025, KY-036), detección de alarmas (KY-037, KY-038) o codificador rotatorio (KY-026).

 

Código de ejemplo para Arduino

El programa lee el valor de voltaje real que se medirá en el pin de salida y lo muestra a través de monitor serie de la PC.

Además, el estado del pin digital se mostrará en el monitor serie, lo que significa que si el valor extremo fue excedido o no.

// Declaración e inicialización de los pines de entrada
int entrada_analogica = A0; // entrada de la señal analógica al Arduino
int entrada_digital = 3; // entrada de señal digital
void setup ()
{
pinMode (entrada_analogica, INPUT);
pinMode (entrada_digital, INPUT);
pinMode (2, OUTPUT); // identifico la pata 2 digital como salida
pinMode (4, OUTPUT); // identifico la pata 4 digital como salida

Serial.begin (9600); // salida serial a una velocidad de 9600 bps
}
// El programa lee los valores actuales en los pines de entrada
// y los envía a la salida en serie
void loop ()
{
float Analog;
int Digital;

// Los valores actuales se leerán y convertirán a voltaje
Analog = analogRead (entrada_analogica) * (5.0 / 1023.0);
Digital = digitalRead (entrada_digital);

//... y se dará salida aquí en el Monitor Serie de la PC
Serial.print ("Valor de voltaje analógico: "); Serial.print (Analog, 4); Serial.print ("V, ");
Serial.print ("Valor límite:");
if(Digital==1)
{
Serial.println (" alcanzado");
digitalWrite(2, HIGH); // enciende el LED amarillo de alerta por llama
delay(100); // retardo de bucle
digitalWrite(2, LOW); // apaga el LED amarillo de alerta por llama
delay(10);
digitalWrite(4, LOW); // apaga el LED azul
}
else
{
Serial.println (" no alcanzado aún");
digitalWrite(4, HIGH); // enciende el LED azul de situación normal
delay(100); // retardo de bucle

}
Serial.println ("----------------------------------------------------------------");
delay (200);
}

 

Video disponible en : https://youtu.be/J5KRCjYpDbs

Video disponible en : https://youtu.be/sMlg5DXy7gQ

----------------------

7 - Detector de incendios con placa Arduino Uno, pantalla LCD2004 20x4 y módulo Módulo KY-026, sensor de Flama (Flame-sensor module). Enciende LED amarillo cuando detecta llama, enciende LED azul en situación normal. Detecta proximidad de llama indicando nivel de riesgo en display.

Sketch de Arduino Uno :

 

#include <LiquidCrystal.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);

// Declaración e inicialización de los pines de entrada
int entrada_analogica = A0; // entrada de la señal analógica de modulo de llama al Arduino
int entrada_digital = 2; // entrada de señal digital de modulo de llama en pata 2
int LED_amarillo = 12;
int LED_azul = 13;

int estadosalida = 0 ;
String gradoalerta;

void setup() {

pinMode (entrada_analogica, INPUT);
pinMode (entrada_digital, INPUT);
pinMode (LED_amarillo, OUTPUT); // identifico la pata digital LED_amarillo como salida
pinMode (LED_azul, OUTPUT); // identifico la pata digital LED_azul como salida


// Inicializar el LCD con el número de columnas y filas del LCD
lcd.begin(20,4);
// Escribimos el Mensaje en el LCD
lcd.print("www.sapiensman.com");
lcd.setCursor(0,2);
lcd.print("DETECTOR DE");
lcd.setCursor(0,3);
lcd.print("INCENDIOS ");

}

void loop() {

{
float Analog;
int Digital;

// Los valores actuales se leerán y convertirán a voltaje
Analog = analogRead (entrada_analogica) * (5.0 / 1023.0);
Analog = 3 - Analog;
if (Analog < 2.1){
gradoalerta = " Riesgo Bajo ";
} else {
gradoalerta = " Riesgo Elevado!!";
}


Digital = digitalRead (entrada_digital);

if(Digital==1)
{

// Ubicamos el cursor en la primera posición (columna:0) de la segunda línea(fila:1)


lcd.setCursor(0, 1);
lcd.print(" ALERTA FUEGO !!");
lcd.setCursor(0,2);
lcd.print("Valor >>> ");
lcd.print(Analog);
lcd.setCursor(0,3);
lcd.print(" ");
lcd.print(gradoalerta);


digitalWrite(LED_amarillo, HIGH); // enciende el LED amarillo de alerta por llama
delay(100); // retardo de bucle
digitalWrite(LED_amarillo, LOW); // apaga el LED amarillo de alerta por llama
delay(10);
digitalWrite(LED_azul, LOW); // apaga el LED azul
}
else
{

digitalWrite(LED_azul, HIGH); // enciende el LED azul de situación normal
lcd.begin(20,4);
lcd.print("www.sapiensman.com");
lcd.setCursor(0, 1);
lcd.print("* ESTADO NORMAL ");
lcd.setCursor(0,2);
lcd.print("DETECTOR DE");
lcd.setCursor(0,3);
lcd.print("INCENDIOS ");
delay(100); // retardo de bucle

}

delay (200);
}
}

 

Video disponible en : https://youtu.be/yj9g0nZSec0

 

Mas proyectos : << Anterior - Siguiente >>

 


 

 

 
Volver arriba