Soy un noob total en Arduino aquí, y este es mi primer proyecto en 16x2 LCD, teclado 4x4 y otros. Entonces, la historia es que, después de que cargué el programa del reloj despertador Arduino de mi grupo en la placa Arduino, la pantalla LCD muestra cajas negras en la primera fila de la pantalla LCD. Además, cuando desconecté la placa de mi computadora y la conecté a un adaptador de 5V, la pantalla LCD no mostraba nada.
Ya busqué en Internet las posibles causas, y principalmente dijeron que la inicialización de la pantalla LCD es incorrecta o que hay problemas en la soldadura. Mi amigo y yo llegamos a la conclusión de que no hay problema con la soldadura, pero no sabemos dónde está el problema en el programa.
El problema es que no teníamos ninguna conexión para la luz de fondo de la pantalla LCD ya que no tenemos potenciómetro. Intenté controlar el contraste y el brillo de la pantalla LCD utilizando Arduino, pero no puedo entender nada porque soy un noob total.
Esta es la imagen de la soldadura de la pantalla LCD.
AcontinuaciónsemuestraelúltimocódigoquecargamosenlaplacaArduino.¿Hayalgúnfalloenelprograma?
#include<EEPROM.h>#include<Keypad.h>#include<DS1307.h>#include<Wire.h>#include<Adafruit_GFX.h>#include<LiquidCrystal.h>DS1307rtc(SDA,SCL);LiquidCrystallcd(A3,A2,A1,A0,5,4);Timet;#definebuz3intHor,Min,Sec,h,m,s;intASCII=48;char*tim;char*dat;constcharkey=0;charbuffer[2];constbytenumRows=4;constbytenumCols=4;charkeymap[numRows][numCols]={{'1','2','3','A'},{'4','5','6','B'},{'7','8','9','C'},{'*','0','#','D'}};byterowPins[numRows]={12,11,10,9};bytecolPins[numCols]={8,7,6,5};KeypadmyKeypad=Keypad(makeKeymap(keymap),rowPins,colPins,numRows,numCols);voidsetup(){Wire.begin();rtc.begin();pinMode(buz,OUTPUT);lcd.begin(16,2);welcome();rtc.setDOW(SATURDAY);//SetDay-of-WeektoSUNDAYrtc.setTime(10,54,0);//Setthetimeto12:00:00(24hrformat)rtc.setDate(7,1,2017);//Day,Month,Year}voidloop(){t=rtc.getTime();Hor=t.hour;Min=t.min;Sec=t.sec;tim=rtc.getTimeStr();dat=rtc.getDateStr();charkey=myKeypad.getKey();if(key=='C'){digitalWrite(buz,LOW);EEPROM.write(2,ASCII+6);EEPROM.write(3,ASCII);}if(key=='#'){lcd.setCursor(0,0);lcd.print("Enter New Time");
lcd.setCursor(0,1);
int j =0;
int i=0;
while( j<6)
{
if(i==2 || i == 5){
lcd.print(":");
lcd.display();
i++;
}
key=myKeypad.getKey();
if(key)
{
lcd.print(key);
lcd.display();
EEPROM.write(j,key);
j++;
i++;
}
}
}
changealarm();
checkalarm();
timedate();
}
void checkalarm(){
if( Hor == h && Min == m)
{
delay(3000);
lcd.setCursor(0,1);
lcd.print("Hold C");
digitalWrite(buz, HIGH);
delay(3000);
}
}
void changealarm(){
buffer[0]=EEPROM.read(0);
buffer[1]=EEPROM.read(1);
h = atoi(buffer);
buffer[0]=EEPROM.read(2);
buffer[1]=EEPROM.read(3);
m = atoi(buffer);
buffer[0]=EEPROM.read(4);
buffer[1]=EEPROM.read(5);
s = atoi(buffer);
}
void timedate(){
lcd.setCursor(0,0);
lcd.print("Time: ");
lcd.print(rtc.getTimeStr());
lcd.setCursor(0,1);
lcd.print("Date: ");
lcd.print(rtc.getDateStr());
delay(3000);
lcd.setCursor(0,1);
lcd.print("Alarm: ");
lcd.print(h);
lcd.print(".");
lcd.print(m);
lcd.print(".");
lcd.print(s);
delay(3000);
}
void welcome(){
lcd.setCursor(0,0);
lcd.print("Welcome");
lcd.setCursor(0,1);
lcd.print("To");
delay(3000);
lcd.setCursor(0,1);
lcd.print("TIMeProject");
delay(3000);
}