Hola:
Estoy intentado hacer una prueba rápida con Arduino, motor de escobillas para hacer el cambio de giro. En esta ocasión, quiero controlar el cambio de giro con relés y una pantalla LCD. El ejemplo que quiero hacer es sencillo.
Quiero lograr este funcionamiento para Arduino:
- Enciende Arduino.
- Muestra mensaje en el LCD.
- Aparece un contador cuenta atrás que dura 10 segundos antes de iniciar el proceso.
- Se activan los relés en el cual actúa el cambio de giro.
- Se detiene 15 segundos.
- Cambio de giro con los relés durante 15 segundos.
- Se vuelve a detener durante 15 segundos.
- Así son 11 procesos repetitivos el cambio de giro.
Se usa dos salidas digitales para cada relés.
Por ahora he hecho un código base no funcional, hay que mejorarlo. Antes de conectar nada, quiero programar el código para que no de problemas y queme el motor, eso si, prbaré con una bombilla primero por si acaso.
// include el código de la librería.
#include <LiquidCrystal.h>
// Inicializa la librería con sus pines indicados.
// RS, RW, Enable, D4, D5, D6, D7.
LiquidCrystal lcd(8, NULL, 9, 4, 5, 6, 7);
unsigned long inicio, fin, transcurrido;
long Veces = 0;
int LuzFondo = 10; // Pin 10 para saber que es luz de fondo.
void setup()
{
// Formato de pantalla.
lcd.begin(16, 2);
lcd.print("Foro ELECTRONICA");
pinMode(3,OUTPUT);
pinMode(2,OUTPUT);
pinMode(LuzFondo,OUTPUT);
digitalWrite(LuzFondo, HIGH);
//digitalWrite(2, !LOW); // !LOW es HIGH.
//digitalWrite(3, !LOW);
Serial.begin(115200);
}
void loop()
{
lcd.setCursor(0,1);
lcd.print(inicio=millis()/15000); // 15 seg. antes de empezar.
for (int i=0; i <= 10; i++)
{
digitalWrite(2, !LOW);
lcd.setCursor(3,1); // RL 1.
lcd.print("1 OFF");
digitalWrite(3, !LOW);
lcd.setCursor(9,1); // RL 2.
lcd.print("2 OFF");
delay(2000);
digitalWrite(2, !HIGH);
lcd.setCursor(3,1); // RL 1.
lcd.print("1 ON ");
delay(2000);
digitalWrite(2, !LOW);
lcd.setCursor(3,1); // RL 1.
lcd.print("1 OFF");
delay(2000);
digitalWrite(3, !HIGH);
lcd.setCursor(9,1); // RL 2.
lcd.print("2 ON ");
delay(2000);
digitalWrite(3, !LOW);
lcd.setCursor(9,1); // RL 2.
lcd.print("2 OFF");
delay(2000);
Veces++;
lcd.setCursor(0,1);
lcd.print(Veces);
}
delay(1000000);
// Cuando llegue aquí, tiene que pararse el motor siempre.
// No se que instrucciones darle para que lo haga.
}
¿Alguna ayuda sobre la programación?
Que muestre el tiempo cuentra atrás cada 15 segundos en el LCD.
Los pasos escrito arriba tienen que cumplir.
Feliz año nuevo.