Se afișează postările cu eticheta 595. Afișați toate postările
Se afișează postările cu eticheta 595. Afișați toate postările

duminică, 3 octombrie 2021

Ceas NTP cu date meteo de la senzor DHT22 pe afisaj led multiplexat (catod comun)

    Am inceput testele pentru un ceas cu 6 tuburi VFD IV-11 primit de la dl.Janos Baricz, dar, desi montajul este intr-o cutie de lemn, cu geam de protectie, montajul este mult prea sensibil si greu de mutat, comparativ cu un afisaj LED multiplexat cu cateva rezistente pe un breadboard  😁

asa ca am trecut la un afisaj led multiplexat cu 4 digiti (cifre din 7 segmente si punct).

   M-am inspirat de articolul IV-18 Clock


unde se comanda un afisaj VFD IV-18, dupa cum spune si titlul. 

   Am pastrat registrele de deplasare, dar am inlocuit placa Arduino cu un ESP8266 pentru a avea un ceas cu informatii preluate de la un server NTP, la care sa am acces al reglaj din pagina de configurare locala. Dupa ce voi fi multumit de testele cu afisajul cu catod comun, voi modifica programul pentru ceasul cu tuburi VFD.

   Modificarile sunt minore, deoarece modul de comanda e multiplexat, asa ca pentru VFD, se dau comenzi HIGH atat la grila, cat si la digit, iar la afisajul led cu catod comun, se da comanda HIGH pe segment si LOW pe digit, respectiv LOW la segment si HIGH la digit, la afiajul led cu anod comun.

   Pentru inceput am conceput o schema de baza, dupa care dl. Georgel mi-a redesenat-o concepand si un cablaj, dupa care mi l-a realizand si fizic:

   Aceasta versiune de cablaj este una de test universala, nefiind cablajul final al viitorului ceas, dar ma ajuta mult la teste de functionare de lunga durata, din care reies mici erori de program.

   Pentru moment, nu am pus modul RTC, ora fiind luata doar de la la server NTP prin intermediul retelei locale Wi-Fi, nici fotorezistenta nu a fost montata... 


   Bun, eu am trecut la teste de durata pe un afisaj  LFD080AAG-103-01 cu catod comun,
la care am inseriat rezistente de 220Ω cu segmentele A.G si cu punctul (DP) pe iesirile registrelor de deplasare notate cu A..G si DP, respectiv iesirea 0 la DIG4, 1 la DIG3, 2 la DIG2 si 3 la DIG1.

   Am scris, initial, un program simplu, adaptat din cel prezentat in articolul IV-18 Clock si modul de functionare se vede in filmuletele
   O versiune de program, care include modul de prezentare in format de 12 ore sau 24 ore, masurare temperatura si umiditate relativa aer, este clock_7segled_cc_2_12h_v1.ino.
   Am rescris programul pentru a avea o pagina web de configurare, intai doar una foarte simpla de schimbare ora vara/iarna (sketch: clock_7segled_cc_2_12h_w1.ino)
 Am adaugat o pagina web  de configurare mai complexa, 
din care pot configura ora de vara/iarna (DST), fusul orar si un buton de reimprospatare ora.
   Pe afisaj regasim:
- ora cu "secunde animate". in format de 24 ore
- data (ziua si luna)
- anul
- ora cu "secunde animate". in format de 12 ore
- temperatura
- umiditatea relativa
   Programul clock_7segled_cc_2_12h_w2a.ino are implicat si modul de configurare initiala a retelei Wi-Fi (WiFimanager, despre care am scris in articolul Configurare usoara conectare la retea Wi-Fi pentru microcontrolerele ESP8266/ESP32). 
Configurarea orei de vara/iarna si fusul orar au fost prezentate in articolul Ceas NTP cu date meteo de la senzor DHT22 pe afisaj VFD (Datecs DPD-201)
   Ultima versiune se vede in filmuletele:


miercuri, 1 iulie 2015

Ceas cu informatie binare pentru fiecare cifra

Nota: netestat practic inca... 

    
   Pornind de la o solicitare pentru un ceas cu afisare binara a informatiei cum este cel prezentat in filmuletul Reloj Binario en Arduino Mega
m-am apucat de studiat cum as putea sa-l realizez..
   Notand, de la 1 la 20 led-urile, pentru ora 00:00:00, toate led-urile sunt stinse:
iar pentru ora 17:42:56 trebuie sa fie afisat asa:
deoarece:
   In prima faza, am facut o schema similara cu cea din filmulet, in care fiecare led sa fie comandat de o iesire, dar sunt necesare 20, deci ar putea folosi doar Arduino Mega sau Due.
   Pentru a-l putea realiza ca proiect independent prefer varianta Arduino Uno, care se poate trece pe un controler ATmega328P-PU, dar trebuie folosite registre de deplasare, cum este prezentat in articolul http://www.multiwingspan.co.uk/arduino.php?page=bclock, doar ca ar trebui 3 registre de deplasare 595 (74HC595) sau prin multiplexare.
   Pentru varianta multiplexarii, m-am gandit la urmatoarea schema de conectare a led-urilor:
   Am scris un sketch pentru acest mod de afisare, dar inca nu este testat fizic. El poate fi descarcat de pe Github: binaryclock_24h_multiplexing_v1m0.ino !!!
   Conectarea modului de ceas de timp real cu DS1307 (sau DS3231) este cum am prezentat-o in articolul Ceas de timp real (RTC) cu DS1307 si Arduino
iar legatura intre placa Arduino si afisajul cu led-uri:

   Repet, aceasta schema si sketch-ul aferent nu-s testate fizic, asa ca astept poze si filmulete cu realizarile voastre.
Nicu

02.07.2015
   Am aflat de un articol, in care se foloseste "charlieplexarea", vedeti ARDUINO - RELÓGIO BINÁRIO HMS - USANDO MÉTODO CHARLIEPLEX:

luni, 26 ianuarie 2015

Comanda afisaj LCD1602 prin 3 fire

   Uzual, un afisaj alfanumeric LCD1602 se coneteaza la un microcontroler sau placa de dezvoltare prin 6 fire (DB7, DB5, DB5, DB4, E, RS), cum am prezentat, prima data, in articolul Arduino si un afisaj LCD clasic (16 caractere si 2 randuri).
   Ulterior eu am facut o placa adaptoare pe cablaj clasic, care are inclus semireglabilul de contrast, dupa cum am prezent in articolul Modul de conectare rapida a unui afisaj LCD1602 (HD44780) la Arduino sau alta placa de dezvoltare
   Pentru a reduce numarul de pini folositi se foloseste un registru de deplasare, gen 74HC594, HEF4094, etc, asa cum e prezentat si pe site-ul Arduino, in articolul 3 wires interface for LCD display
   Eu am incercat alta schema, pe care am gasit-o in articolul 3 Pin HD44780 LCD for Arduino scris de Rowan Simms:
   Am facut montaj cu un Arduino Nano:
   Schema lui Simms, redesenata in Eagle PCB Editor, la care am mai adaugat 2 rezistente (una de limitare curent in coletor si una pentru baza):
   Deoarece aveam de gand sa pun un ATtiny85 in locul placii Arduino, schema adaptoare ramane:
   Pentru a folosi prea multi pini, eu am mereu fundalul aprins:
iar conectarea la un ATtiny85 l-am facut asa:
   Am facut legaturile si am incarcat sketch-ul in ATtiny85, cum am prezentat in articolul Programarea unui microcontroler ATTiny85 cu sketch Arduino
   Am facut legaturile cu partea de montaj cu registrul de deplasare si am obtinut acelasi rezultat ca si cu placa Arduino:
   Sketch-ul folisit de mine, este cel din articolul lui Simms, doar cu modificarea pinilor de comanda, conform schemei realizate:
/*
 * 3-pin Arduino interface for HD44780 LCDs via 74HC595 Shift Register
 *     by Rowan Simms   code@rowansimms.com
 *     License: Creative Commons - Attribution.
 *     Full Documentation and Description:  http://rowansimms.com/article.php/lcd-hookup-in-seconds
 *     erata: see https://github.com/haiphamngoc/LiquidCrystal595 & http://haicuibap.ga/2013/12/ket-noi-lcd-voi-arduino-trong-6-giay/
or https://github.com/tehniq3/LiquidCrystal595
 * This sketch allows Arduinos to use a shift register to control an LCD, allowing 
 * a reduction in pins it requires from 6 to 3 while still retaining full control
 * including backlight on/off.
 * This requires the use of the LiquidCrystal595 library
 * available at: http://code.google.com/p/arduino-lcd-3pin/
 */

#include <LiquidCrystal595.h>    // include the library
LiquidCrystal595 lcd(0,1,2);     // datapin, latchpin, clockpin

void setup() {
    lcd.begin(16,2);             // 16 characters, 2 rows

    lcd.clear();
    lcd.setCursor(0,0);
    lcd.print("Wow. 3 pins!");
    lcd.setCursor(0,1);
    lcd.print("Fabulous");
}

void loop() {
    // not used.
}
   Nu trebuie sa uitati sa descarcati libraria LiquidCrystal595 si s-o copiati in directorul unde s-a instalat Arduino, la librarii..
   Sketch-ul este destul de mic, deci se poate folosi si pentru a afisa o tensiune, o temperatura, etc..


27.01.2014
   In stilul montajului prezentat in articolul Attiny_LCD_595 Board: LCD controlled by ATtiny85… stand-alone, care arata asa:
am desenat si eu o varianta asemanatoare de cablaj, utilizand programul Eagle PCB Software (si din graba il gresisesm, iar corecturi pentru a functiona sunt cele cu fire rosii...)
iar o "simulare 3D: