Cuprins:
2025 Autor: John Day | [email protected]. Modificat ultima dată: 2025-01-23 15:04
Din când în când întâlnești părți interesante pe eBay, de la prieteni sau doar înrădăcinându-te în magazinele second-hand. Un exemplu în acest sens a fost un imens afișaj fluorescent cu vid de 40 x 2 caractere Noritake Itron din 1994 (sau anterior), transmis de la un client.
Inițial părea destul de complex, totuși, după ce ați petrecut ceva timp, s-au găsit fișele de date și s-a descoperit că are o interfață serială simplă - și cu puțină muncă am reușit să funcționeze, așa că citiți mai departe dacă vă interesează VFD-urile clasice sau au o unitate similară.
Pasul 1:
Rata de transmisie a interfeței seriale este determinată de tampoanele jumper de pe PCB.
Pasul 2:
Prin urmare, compararea tabelului de mai sus cu jumperii de pe modulul nostru ne oferă o viteză a datelor de 19200 bps fără paritate. Minunat - putem crea cu ușurință o astfel de conexiune cu un microcontroler cu o ieșire serială și niveluri logice de 5V; pentru exemplele noastre vom folosi o placă compatibilă Arduino.
Pasul 3:
Cablarea VFD este simplă - consultați jumperii albi etichetați CN2 așa cum se arată anterior. Pinul 1 este 5V (aveți nevoie de o sursă externă care poate oferi până la 700 mA), pinul 2 la pinul digital 7 Arduino și pinul 3 la Arduino și sursa de alimentare GND.
Folosim Arduino D7 cu software de serie în loc de TX, astfel încât afișajul să nu afișeze gunoi atunci când se încarcă o schiță. Apoi, este o chestiune de a trimite pur și simplu text pe ecran, de exemplu, iată o schiță demonstrativă rapidă:
// Lucrul cu modulele Noritake Itron VFD - model CU40026SCPB-T20A # include SoftwareSerial VFD (6, 7); // RX, TX
configurare nulă ()
{VFD.begin (19200); }
bucla nulă ()
{VFD.print ("Bună ziua, lume. Acesta este un Noritake VFD"); // Puteți elimina textul do {} while (1); }
Pasul 4:
Ceea ce rezultă cu următoarele …
Pasul 5:
Dacă nu sunteți interesat de culoarea sau intensitatea afișajului, încercați un pic de Perspex deasupra - de exemplu …
Pasul 6: Controlul afișajului
În acest moment veți avea nevoie de fișa tehnică a fișei tehnice. După cum ați văzut anterior, scrierea textului este foarte simplă - folosiți doar funcțiile.print. Cu toate acestea, poate doriți să trimiteți caractere individuale, precum și comenzi speciale pentru a controla aspectele afișajului. Acestea sunt prezentate în fișa tehnică - consultați tabelele „Comenzi software” și „Fonturi de caractere”.
Dacă trebuie să trimiteți comenzi unice - de exemplu „afișaj clar” care este 0x0E, utilizați o comandă.write, cum ar fi:
VFD.write (0x0E); // afișaj clar
Unele comenzi sunt în formatul codurilor de evadare (vă amintiți de acestea?), Deci trebuie să trimiteți ESC apoi următorul octet, de exemplu pentru a schimba luminozitatea la 50%:
VFD.write (0x1B); // ESC VFD.write (0x4C); // luminozitate VFD.write (0x40); // 50% luminozitate
Înarmat cu aceste cunoștințe și fișele de date, puteți executa acum toate comenzile. Conform fișei tehnice, este posibil să se schimbe fonturile, cu toate acestea, indiferent de ce jumper sau comandă am încercat, nu s-ar schimba din fontul japonez katakana. Ecranul dvs. poate varia. Dacă utilizați funcția „scriere cu prioritate a ecranului”, țineți cont de foaia de date cu privire la timpul „ocupat” extins, întârziind scrierile ulterioare pe afișaj cu o milisecundă.
Pasul 7: Puneți totul împreună
În loc să explic fiecare comandă posibilă, le-am pus pe cele comune în funcțiile documentate în schița demonstrativă de mai jos, care este urmată de un videoclip rapid al schiței în funcțiune.
// Lucrul cu modulele Noritake Itron VFD - model CU40026SCPB-T20A // John Boxall 2013
#include
SoftwareSerial VFD (6, 7); // rx, tx
configurare nulă ()
{VFD.begin (19200); // setați viteza pentru resetarea portului serial al software-ului VFD (); VFDclearsceen (); // VFD.write (0x12); // modul de derulare verticală (activat)}
resetare nulă VFD ()
// efectuează o resetare software pe controlerul VFD {VFD.write (0x1B); // ESC VFD.write (0x49); // resetare software}
void VFDnewline ()
// deplasează cursorul pentru a începe următoarea linie {VFD.write (0x0D); // returnare transport VFD.write (0x0A); // linie de alimentare }
void VFDclearsceen ()
// mută cursorul în stânga sus și șterge afișajul {VFD.write (0x0E); // ștergeți afișajul VFD.write (0x0C); // formular de alimentare - cursor în partea stângă sus}
void VFDbrightness (suma int)
// setează luminozitatea VFD - 25/50/75/100% // folosește secvențe ESC {comutator (cantitate) {caz 25: VFD.write (0x1B); // ESC VFD.write (0x4C); // luminozitate VFD.print (0); // 25% pauză de luminozitate; caz 50: VFD.write (0x1B); // ESC VFD.write (0x4C); // luminozitate VFD.write (0x40); // 50% pauză de luminozitate; cazul 75: VFD.write (0x1B); // ESC VFD.write (0x4C); // luminozitate VFD.write (0x80); // Pauză de luminozitate 75%; cazul 100: VFD.write (0x1B); // ESC VFD.write (0x4C); // luminozitate VFD.write (0xC0); // 100% luminozitate}}
anulați VFDchars ()
// rulați prin caractere pentru fontul selectat {pentru (int i = 21; i <256; i ++) {VFD.write (0x16); // subliniați cursorul de pe VFD.write (i); întârziere (100); }}
void moveCursor (poziția octetului)
// deplasează cursorul - rândul superior este 0 ~ 39, rândul inferior este 40 ~ 79 // modul de derulare verticală trebuie să fie dezactivat dacă este utilizat {VFD.write (0x1B); // ESC VFD.write (0x48); // mutați cursorul VFD.write (poziție); // Locație }
bucla nulă ()
{VFD.write (0x16); // subliniați cursorul de pe VFD.print („Bună ziua, lume - prima linie.”); // Puteți elimina întârzierea textului (1000); VFDnewline (); VFD.print ("Bună ziua, lumea - linia a doua."); întârziere (1000); VFDclearsceen (); VFDbrightness (25); VFD.print („*** 25% luminozitate ***”); întârziere (1000); VFDclearsceen (); VFDbrightness (50); VFD.print („*** 50% luminozitate ***”); întârziere (1000); VFDclearsceen (); VFDbrightness (75); VFD.print („*** 75% luminozitate ***”); întârziere (1000); VFDclearsceen (); VFDbrightness (100); VFD.print („*** 100% luminozitate ***”); întârziere (1000); VFDclearsceen ();
VFDchars ();
VFDclearsceen ();
for (int i = 0; i <80; i ++) {VFD.write (0x16); // subliniați cursorul off moveCursor (i); VFD.print ("X"); întârziere (100); moveCursor (i); VFD.print (""); } VFDclearsceen (); }
Sperăm că ați găsit acest lucru interesant și util.
Această postare vă este adusă de pmdway.com - totul pentru producătorii și pasionații de electronice, cu livrare gratuită în toată lumea.
Recomandat:
Reface un vechi robot vechi: 10 pași (cu imagini)
Reface un vechi robot vechi: Faceți cunoștință cu Arlan, un robot distractiv cu multă personalitate. Locuiește într-o clasă de știință din clasa a V-a. L-am reconstruit pentru a fi mascota echipei de robotică a școlii, el fiind și asistentul clasei. Copiilor le place să vadă tehnologia în acțiune și Arlan merge
Cultivarea mai multor salată în spațiu mai mic sau Cultivarea salatei în spațiu, (mai mult sau mai puțin) .: 10 pași
Cultivarea mai multor salată în spațiu mai mic sau … Cultivarea salată în spațiu, (mai mult sau mai puțin). Nu aș putea fi mai încântat să proiectez pentru producția de culturi spațiale și să postez primul meu Instructable. Pentru a începe, concursul ne-a cerut
Utilizarea unui stereo auto pentru a reda Mp3-uri pe un sistem stereo mai vechi: 7 pași
Folosirea unui automobil stereo pentru a reda MP3-uri pe un sistem stereo mai vechi: redarea fișierelor mp3 pe un sistem stereo de acasă am descărcat sau rupt aproximativ 5.000 de melodii rock clasice în ultimele două decenii și aveam nevoie de un mod simplu de a reda fișiere de muzică digitală pe un sistem stereo mai vechi. Am conectat un computer home theater (HTC)
Utilizarea a mai mult de 4 motoare - Stivuirea mai multor paravane: 3 pași
Utilizarea a mai mult de 4 motoare - Stivuirea mai multor ecrane de protecție: dispozitivul de înlocuire senzorială și augmentare senzorială vibrotactilă (https: //www.instructables.com/id/Vibrotactile-Sens …) arată o modalitate de a construi un dispozitiv care traduce un senzorial intrare în stimuli vibratori. Acei stimuli vibratori sunt p
Utilizarea modulelor de ceas DS1307 și DS3231 în timp real cu Arduino: 3 pași
Utilizarea modulelor de ceas DS1307 și DS3231 în timp real cu Arduino: continuăm să primim solicitări despre modul de utilizare a modulelor de ceas DS1307 și DS3231 în timp real cu Arduino din diverse surse - deci acesta este primul dintr-un tutorial în două părți despre modul de utilizare a acestora. Pentru acest tutorial Arduino avem două module de ceas în timp real pentru noi