INHOUDSOPGAWE:

Doeltreffend en goedkoop: vertoon met STM32L4: 13 stappe
Doeltreffend en goedkoop: vertoon met STM32L4: 13 stappe

Video: Doeltreffend en goedkoop: vertoon met STM32L4: 13 stappe

Video: Doeltreffend en goedkoop: vertoon met STM32L4: 13 stappe
Video: Stoppen met roken door hypnose en hypnotherapie 2024, November
Anonim
Image
Image
Inleiding
Inleiding

Vandag praat ons oor drie onderwerpe wat ek absoluut liefhet: 'n LCD -skerm wat min energie bestee, STM32 met Core Arduino en Arduino Mega Pro Mini. Dit is 'n onfeilbare trio vir die Internet of Things. Ek sal u dan voorstel aan die HT1621 ses-syfer LCD-skerm en 'n voorbeeldkontrole skep met 'n kode wat op beide die Arduino Mega Pro Mini en die STM32 L432KC werk. 'N Opmerklike detail is dat die bronkode vir die twee mikrobeheerders presies dieselfde is. Ek sal ook nie die pinning verander nie. Dis absoluut fantasties!

Stap 1: Inleiding

Inleiding
Inleiding

Die HT1621 LCD -skerm het 'n skerm wat algemeen gebruik word in multimeters, elektroniese weegskale, elektroniese horlosies, termometers en elektroniese meettoestelle.

• Dit het 6 syfers met 7 segmente

• Dit maak gebruik van 3-draads SPI-kommunikasie

• Dit het 'n agtergrond wat geskik is vir donker omgewings

• Die werkspanning is 4,7 ~ 5,2V

• Dit verbruik 4mA met 'n agtergrond

Let daarop dat dit meer as SES syfers, DRIE desimale punte en 'n batterymeter met DRIE mate bevat.

Stap 2: Biblioteek vir gebruik

Ons sal die ANXZHU github -gebruikersbiblioteek gebruik, wat redelik eenvoudig is. Dit kan gesien word in die oorspronklike weergawe in die onderstaande skakel:

github.com/anxzhu/segment-lcd-with-ht1621

Die biblioteeknaam is 'n bietjie vreemd, so ek het besluit om dit te hernoem (lêers, klasse, bouers, ens.). Die oorspronklike naam is "A6seglcd". Ek het hierdie naam vervang met "lcdlib".

Stap 3: Biblioteek

Voeg biblioteek "lcdlib" by.

Gaan na die skakel en laai die biblioteek af.

Pak die lêer uit en plak dit in die biblioteekmap van die Arduino IDE.

C: / Programlêers (x86) / Arduino / biblioteke

Stap 4: Demonstrasie

Demonstrasie
Demonstrasie

Arduino mega vergadering

Stap 5: Demonstrasie

Demonstrasie
Demonstrasie

SMT32 -samestelling

Stap 6: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Ek wil hier beklemtoon dat die STM32-L432KC nie 'n seriële USB-omskakelaar het nie. Dit het in plaas daarvan 'n volledige USB, wat STMicroelectronics ST-link-protokol gebruik. Dit is dus redelik gesofistikeerd en maak baie doeltreffende ontfouting moontlik as u IR of Microvision gebruik. En as 'n Arduino Core (MBED, met Microsoft se oorspronklike hulpmiddel), gebruik dit hoogs professionele samestellers. Moet ek nog iets sê?

Stap 7: Arduino Mega 2560 PRO MINI

Arduino Mega 2560 PRO MINI
Arduino Mega 2560 PRO MINI

Ek hou ook hiervan, want dit is 'n 'suiwer' en 'regte' Arduino. Dit is 'n Mega, met baie IO's. Maar dit is Mini, so dit pas oral. Ek hou oral van IO. Hiermee verbind ek graag Led, SPI, i2c, ens. In hierdie opsig is hierdie Mega wonderlik.

Stap 8: Montering

Vergadering
Vergadering

In ons vergadering is die ry van die manlike pen aan die binnekant, terwyl die vroulike pen aan die buitenste kant is, wat ons werk en verbinding met 'n protobord vergemaklik. Ons maak die SPI-verbinding, onthou dat die Arduino Mega en hierdie Arduino Nano-kloon dieselfde pinning het, wat die STM32-L432KC is.

Stap 9: Programmeer

Ons maak 'n baie eenvoudige program waar ons verskillende simbole (letters, syfers en punte) op die skerm sal skryf.

Onthou dat hierdie program beide op die Arduino Mega Pro Mini en die STM32 L432KC werk.

Stap 10: Biblioteke en veranderlikes

Ons sal dan die biblioteek wat verantwoordelik is vir kommunikasie insluit, en die beheer van die skerm vertoon. Die funksie "const char" stel 'n skikkingstabel bloot. Deur hierdie vektore verwys u na die karakter wat op die skerm gedruk word.

#include // biblioteca para control do display

lcdlib lcd; // instellings om te wys /*0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, b, C, c, d, E, F, H, h, L, n, N, P, r, t, U, -, bat, pf, '', */ const char num = {0x7D, 0x60, 0x3E, 0x7A, 0x63, 0x5B, 0x5F, 0x70, 0x7F, 0x7B, 0x77, 0x4F, 0x1D, 0x0E, 0x6E, 0x1F, 0x17, 0x67, 0x47, 0x0D, 0x46, 0x75, 0x37, 0x06, 0x0F, 0x6D, 0x02, 0x80, 0xFF, 0x00}; / *indeks num 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 */

Stap 11: Opstel

Om met die opstelling te begin, definieer ons die penne, maak die eerste opstelling en stel die skerm skoon. Ons het vasgestel dat die skerm 'Hallo' vertoon, en na 'n sekere vertraging word die skermboodskap uitgevee.

ongeldige opstelling () {lcd.run (2, 3, 4, 5); // [cs wr data led+] definição dos pinos lcd.conf (); // configuração inicial lcd.clr (); // limpa o display // escreve HELLO lcd.display (10, num [17]); lcd.display (8, num [15]); lcd.display (6, num [19]); lcd.display (4, num [19]); lcd.display (2, num [0]); // fim HELLO vertraging (1000); lcd.clr (); // limpa o display}

Stap 12: Lus

Hier skep ons 'n funksie genaamd "writeLoop", wat die woord LOOP op die skerm sal skryf, en dan al die simbole van ons skikking skryf. Ons het ook die "writeBattery" -funksie, wat die batterymerkers afdruk.

Uiteindelik het ons die 'lcd.dispnum' opdrag wat die drywende puntwaarde skryf.

Stap 13: Laai die lêers af

PDF

EK NEE

Aanbeveel: