Nejste přihlášen/a.
Zdravim
Dobrý den,
Obracím se na vás s prosbou o pomoc ohledně mého aktuálního problému s Arduinem. Snažím se zobrazit data na LCD displeji, avšak nedaří se mi to a nejsem si jistý, co dělám špatně.
Moje zapojení / můj kód
#include <Wire.h>
#include <virtuabotixRTC.h>
#include <LiquidCrystal.h>
virtuabotixRTC myRTC(6, 7, 8); // Inicializace RTC
// Konstanty pro piny připojené k LCD displeji
const int rs = 12, en = 11, d4 = 5, d5 = 4, d6 = 3, d7 = 2;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7); // Inicializace LCD
void setup() {
Serial.begin(9600);
// Inicializace LCD displeje
lcd.begin(16, 2);
// Nastavení aktuálního data a času
myRTC.setDS1302Time(10, 10, 18, 7, 18, 9, 2020);
}
void loop() {
// Aktualizace proměnných pro čas nebo přístup k jednotlivým prvkům
myRTC.updateTime();
// Tisk jednotlivých prvků na sériový monitor
Serial.print("Aktuální datum a čas: ");
Serial.print(myRTC.dayofmonth);
Serial.print("/");
Serial.print(myRTC.month);
Serial.print("/");
Serial.print(myRTC.year);
Serial.print(" ");
Serial.print(myRTC.hours);
Serial.print(":");
Serial.print(myRTC.minutes);
Serial.print(":");
Serial.println(myRTC.seconds);
// Zobrazení datumu a času na LCD displeji
lcd.setCursor(0, 0);
lcd.print("Datum: ");
lcd.print(myRTC.dayofmonth);
lcd.print("/");
lcd.print(myRTC.month);
lcd.print("/");
lcd.print(myRTC.year);
lcd.setCursor(0, 1);
lcd.print("Cas: ");
lcd.print(myRTC.hours);
lcd.print(":");
lcd.print(myRTC.minutes);
lcd.print(":");
lcd.print(myRTC.seconds);
delay(500);
}
Dělám to v programu Arduino IDE 2.3.2 když klikni na Verify a Upload tak je to prej v pořádku ale na LCD Displeji se nic nezobrazí
Zdravím, omlouvám se za mé otázky. Vaše rady mi moc pomohly, ale teď, i když LCD displej zobrazuje, je téměř nečitelný. Když se pokouším měnit kontrast, zdá se, že se nic neděje. Nevíte, čím by to mohlo být způsobeno?
Použil jsem tenhle kod :
#include <Wire.h>
#include <virtuabotixRTC.h>
#include <LiquidCrystal_I2C.h>
virtuabotixRTC myRTC(6, 7, 8);
int lcdAddress = 0x27;
int lcdCols = 16;
int lcdRows = 2;
LiquidCrystal_I2C lcd(lcdAddress, lcdCols, lcdRows);
// Pin pro trimr
const int contrastPin = A0;
void setup() {
Serial.begin(9600);
Wire.begin();
lcd.init();
// Nastavení kontrastu na začátku
analogWrite(contrastPin, 150); // Nastavte úroveň kontrastu dle potřeby
myRTC.setDS1302Time(10, 10, 18, 7, 18, 9, 2020);
}
void loop() {
myRTC.updateTime();
Serial.print("Aktuální datum a čas: ");
Serial.print(myRTC.dayofmonth);
Serial.print("/");
Serial.print(myRTC.month);
Serial.print("/");
Serial.print(myRTC.year);
Serial.print(" ");
Serial.print(myRTC.hours);
Serial.print(":");
Serial.print(myRTC.minutes);
Serial.print(":");
Serial.println(myRTC.seconds);
lcd.setCursor(0, 0);
lcd.print("Datum: ");
lcd.print(myRTC.dayofmonth);
lcd.print("/");
lcd.print(myRTC.month);
lcd.print("/");
lcd.print(myRTC.year);
lcd.setCursor(0, 1);
lcd.print("Cas: ");
lcd.print(myRTC.hours);
lcd.print(":");
lcd.print(myRTC.minutes);
lcd.print(":");
lcd.print(myRTC.seconds);
delay(500);
}
Jedinou hodnotu co jsem tam měnil tak analogWrite(contrastPin, 150); zkousel jsem 100/150 a žádna změna nenastala
Zdravím, děkuji za pomoc. Asi jsem se špatně vyjádřil. Můj problém spočívá v tom, že LCD displej příliš slabě osvětluje datum a všechny ostatní informace, ačkoliv je zobrazuje, jsou velmi tmavé.
Vypádá to, že používáte knihovnu, arduino.cc/... aniž byste věděl co dělá - že defaultně má podsvícení vypnuté.
Je to vidět v kódu té knihovny, je to vidět v příkladech, kde to podsvícení je explicitně zapínané. S vypnutým podsvícením to prostě bude tmavé.
lcd.backlight();
je funkce kterou asi hledáte a v příkladech je použitá právě za tímto účelem.
Pokud k pinu A0 nic nepřipojíte, tak ani to, že ho navzete contrastPin a budete do něj posílat nějaké PWM nic nevyřeší.
a funkce setBacklight samozřejmě nevyřeší taky nic, když je v sekci ////Unsupported API functions (not implemented in this library) a má prázdné tělo.
Neneseme odpovědnost za správnost informací a za škodu vzniklou jejich využitím. Jednotlivé odpovědi vyjadřují názory jejich autorů a nemusí se shodovat s názorem provozovatele poradny Poradte.cz.
Používáním poradny vyjadřujete souhlas s personifikovanou reklamou, která pomáhá financovat tento server, děkujeme.