Tengo un Arduino UNO R3 Plus con 14 pines digitales, pero no funcionan bien. O tal vez sí, pero el punto es que creo que los estoy abusando. Tengo una pantalla LCD conectada a los puertos 13-7, 4 luces LED conectadas a 5-2 y 2 botones conectados a 0-1. Pero solo estoy usando un botón, por lo que técnicamente es 1 botón conectado al puerto 1. El botón LED + es un juego de LED, y estoy tratando de hacer que la pantalla LCD lo contrarreste. La pantalla LCD y los "cables de alimentación" del LED comparten los mismos segmentos de la placa de prueba, el LED es el que sube al pin de alimentación de 5V. El problema es que solo puedo hacer que funcione uno a la vez, así que no sé si es la programación o el hardware. Entonces, dígame cómo puedo reprogramar/reconectar esto (o explique por qué es imposible).
Mi código:
int currentLED = 2;
int delayValue = 200;
int numberShown = 0;
#include <LiquidCrystal.h>
// initialize the library with the numbers of the interface pins
LiquidCrystal lcd(13, 12, 10, 9, 8, 7);
void setup() {
pinMode(1, INPUT); //Button
pinMode(2, OUTPUT); //White LED
pinMode(3, OUTPUT); //Yellow LED
pinMode(4, OUTPUT); //Green LED
pinMode(5, OUTPUT); //RED LED
// set up the LCD's number of columns and rows:
lcd.begin(16, 2);
// Print a message to the LCD.
lcd.print("hello, world!");
}
int checkInput() {
if(digitalRead(1)==0) {
return 1;
} else {
return 0;
}
}
}
void loop(){
// set the cursor to column 0, line 1
// (note: line 1 is the second row, since counting begins with 0):
lcd.setCursor(0, 1);
// print the number of seconds since reset:
lcd.print(millis()/1000);
if(digitalRead(1) == 0){
if(currentLED == 4) {
digitalWrite(4, HIGH);
delay(200);
digitalWrite(4, LOW);
delay(200);
digitalWrite(4, HIGH);
delay(200);
digitalWrite(4, LOW);
delay(200);
delayValue = delayValue - 10;
} else {
digitalWrite(currentLED, HIGH);
delay(200);
digitalWrite(currentLED, LOW);
delay(200);
digitalWrite(currentLED, HIGH);
delay(200);
digitalWrite(currentLED, LOW);
delay(200);
}
}
digitalWrite(currentLED, HIGH);
delay(delayValue);
digitalWrite(currentLED, LOW);
delay(delayValue);
currentLED = currentLED + 1;
if(currentLED > 5) {
currentLED = 2;
}
}
NB: Me doy cuenta de que esta es una pregunta antigua a estas alturas, y probablemente debería migrarse a Arduino SE, pero las preguntas sin respuestas son solo ruido, así que buscaré una respuesta.
Arduino UNO R3 Plus Pines digitales ¿Usados en exceso?
O para reformular: ¿Puede un Arduino UNO controlar tanto una pantalla LCD como una serie de LED juntos?
La respuesta es, por supuesto, un sí definitivo. He aquí un ejemplo de cómo funciona .
Si se puede creer el diagrama de Fritzing en la pregunta, la razón principal por la que el circuito no funcionaba como se esperaba es porque la pantalla LCD no está cableada correctamente (como señaló Ignacio en los comentarios). En particular, el potenciómetro no está haciendo su trabajo para ajustar el contraste, pero está elevando RS.
Fritzing es una buena herramienta, pero vale la pena acostumbrarse a la vista esquemática. Puede hacer que problemas como este sean evidentes, cuando son tan fáciles de pasar por alto en la vista de tablero.
Transeúnte
Los caballeros que dicen ni
Ignacio Vázquez-Abrams
Ignacio Vázquez-Abrams
pedro bennett
Los caballeros que dicen ni
Transeúnte
ryan griggs
Los caballeros que dicen ni
Los caballeros que dicen ni
Los caballeros que dicen ni
Transeúnte
Los caballeros que dicen ni
Transeúnte
Los caballeros que dicen ni
Los caballeros que dicen ni
Transeúnte