Am schimbat placa de dezvoltare ce comanda afisajul cu o placa NodeMCU (cu ESP8266) realizand un ceas ce preia ora d ela un server NTP prin conectarea la reteaua wi-fi locala.
In articolul anterior, placa de dezvoltare Arduino Nano avea un modul RTC cu DS3231 (DS1307).
La placa de dezvoltare este legat afisajul la pinul D7 (GPIO13), iar programul rescris ce foloseste tot libraria ArduinoSerLCD se numeste NTP_clock_on_serial_lcd.ino
Am intrat in posesia unui afisaj alfanumeric urias cu 20 de coloane si 4 randuri cu o interfata seriala realizata cu PIC de tip BPK-000, despre care am gasit informatii la BPK-000 Programmer's Reference
Mai folosisem acum vreo 6 ani un afisaj similar, doar ca era de tip 1602, publicand atunci articolul Afisaj serial LCD 16x2 (1602)
Am zis sa fac ceva util, un ceas, asa ca am conectat si un modul de ceas RTC si am creat si niste caractere mari pentru el.
ceasul aratand asa:
Programul scris de mine se numeste RTC_clock_on_serial_lcd.ino si la placa Arduino (Nano in cazul meu) am legat la pinul D4 intrarea seriala a afisajului, iar modulul de ceas RTC la pinii i2c (A4 la SDA si A5 la SCL)
Am realizat alte 2 filmulete, de data asta cu ceasul:
Pentru niste teste, am intrat, provizoriu, in posesia unui afisaj serial LCD cu 16 coloane si 2 randuri, a carui comanda se face pe un singur fir (Rx), bineinteles ca, mai sunt cele de alimentare VDD (5V) si GND (masa).
Sketch-ul testat de mine, cu succes, si prezentat in filmulet este:
// https://www.sparkfun.com/tutorials/289// adapted by niq_ro from http://nicuflorica.blogspot.com/
#include <SoftwareSerial.h>
SoftwareSerial lcd(2, 3); // This is required, to start an instance of an LCD (RX at pin D3)voidsetup()
{
lcd.begin(9600); // Start the LCD at 9600 baud
}
voidloop()
{
// Clear the display
lcd.write(0xFE); // send the special command
lcd.write(0x01); // send the clear screen command// move the cursor at first line and firs colon
lcd.write(0xFE); // send the special command
lcd.write(0x80); // send the set cursor command// print a fisrt text
lcd.print("www.tehnic.go.ro");
delay (2000);
// print second text
lcd.print(" made by niq_ro");
delay (2000);
}