Innholdsfortegnelse:

Effektivt og billig: Skjerm med STM32L4: 13 trinn
Effektivt og billig: Skjerm med STM32L4: 13 trinn

Video: Effektivt og billig: Skjerm med STM32L4: 13 trinn

Video: Effektivt og billig: Skjerm med STM32L4: 13 trinn
Video: 40 полезных автотоваров с Aliexpress, которые упростят жизнь любому автовладельцу #4 2024, Juli
Anonim
Image
Image
Introduksjon
Introduksjon

I dag skal vi snakke om tre emner som jeg absolutt elsker: en LCD -skjerm som bruker lite energi, STM32 med Core Arduino og Arduino Mega Pro Mini. Dette er en ufeilbarlig trio for tingenes internett. Jeg vil deretter introdusere deg for HT1621 sekssifret LCD-skjerm og lage en eksempelkontroll med en kode som fungerer på både Arduino Mega Pro Mini og STM32 L432KC. En bemerkelsesverdig detalj er at kildekoden for de to mikrokontrollerne er nøyaktig den samme. Jeg vil ikke endre pinnen heller. Det er helt fantastisk!

Trinn 1: Introduksjon

Introduksjon
Introduksjon

HT1621 LCD -skjermen har en skjerm som vanligvis brukes i multimeter, elektroniske vekter, elektroniske klokker, termometre og elektroniske måleenheter.

• Den har 6 sifre med 7 segmenter

• Den bruker 3-leder SPI-kommunikasjon

• Den har en bakgrunnsbelysning som er egnet for mørke omgivelser

• Driftsspenningen er 4,7 ~ 5,2V

• Den bruker 4 mA med bakgrunnsbelysning

Vær oppmerksom på at den har mer enn SES sifre, TRE desimaltegn og en batterimåler med TRE søyler.

Trinn 2: Bibliotek for bruk

Vi vil bruke ANXZHU github brukerbibliotek, som er ganske enkelt. Den kan sees i den originale versjonen i lenken nedenfor:

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

Navnet på biblioteket er litt rart, så jeg bestemte meg for å gi nytt navn til det (filer, klasser, byggere osv.). Det opprinnelige navnet er "A6seglcd". Jeg erstattet dette navnet med "lcdlib".

Trinn 3: Bibliotek

Legg til bibliotek "lcdlib".

Gå til lenken og last ned biblioteket.

Pakk ut filen og lim den inn i bibliotekmappen i Arduino IDE.

C: / Program Files (x86) / Arduino / libraries

Trinn 4: Demonstrasjon

Demonstrasjon
Demonstrasjon

Arduino mega montering

Trinn 5: Demonstrasjon

Demonstrasjon
Demonstrasjon

SMT32 montering

Trinn 6: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Jeg vil her markere at STM32-L432KC ikke har en seriell USB-omformer. I stedet har den en full USB, som bruker STMicroelectronics ST-link-protokoll. Dermed er det ganske sofistikert og muliggjør svært effektiv feilsøking hvis du bruker IR eller Microvision. Og som en Arduino Core (MBED, ved hjelp av Microsofts opprinnelige verktøy), bruker den svært profesjonelle kompilatorer. Trenger jeg å si noe annet?

Trinn 7: Arduino Mega 2560 PRO MINI

Arduino Mega 2560 PRO MINI
Arduino Mega 2560 PRO MINI

Jeg elsker også dette, ettersom det er en "ren" og "ekte" Arduino. Det er en Mega, med mange IOer. Men det er Mini, så det passer hvor som helst. Jeg liker IO overalt. Med dette liker jeg å koble til Led, SPI, i2c, etc. I så måte er denne Mega fantastisk.

Trinn 8: Montering

montering
montering

I vår samling er raden med hannpinnen på innsiden, mens hunnpinnen er på den ytterste siden, noe som letter arbeidet og forbindelsen med et protoboard. Vi oppretter SPI-tilkoblingen, husker at Arduino Mega og denne Arduino Nano-klonen har den samme festingen, som er STM32-L432KC.

Trinn 9: Program

Vi skal lage et veldig enkelt program, hvor vi skriver forskjellige symboler (bokstaver, tall og punkter) på displayet.

Husk at dette programmet fungerer på både Arduino Mega Pro Mini og STM32 L432KC.

Trinn 10: Biblioteker og variabler

Vi vil deretter inkludere biblioteket som er ansvarlig for kommunikasjon og øyeblikkelig kontrollere kontrollen av skjermen. "Const char" -funksjonen avslører en matrisetabell. Det er gjennom disse vektorene du vil referere til tegnet som skrives ut på displayet.

#include // biblioteca para control do display

lcdlib lcd; // instancia do controlador do display /*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}; / *indeksnummer 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 */

Trinn 11: Oppsett

For å starte oppsettet, definerer vi pinnene, gjør det første oppsettet og setter skjermrensingen. Vi bestemte at displayet viser "Hei", og etter en viss forsinkelse blir meldingen på displayet slettet.

ugyldig oppsett () {lcd.run (2, 3, 4, 5); // [cs wr data led+] definição dos pinos lcd.conf (); // konfiguraçã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 forsinkelse (1000); lcd.clr (); // limpa o display}

Trinn 12: Sløyfe

Her lager vi en funksjon kalt "writeLoop", som vil skrive ordet LOOP på displayet, og deretter skrive alle symbolene i matrisen vår. Vi har også "writeBattery" -funksjonen, som skriver ut batterimarkørene.

Til slutt har vi kommandoen "lcd.dispnum" som skriver flytende verdi.

Trinn 13: Last ned filene

PDF

INO

Anbefalt: