Inhoudsopgave:

Efficiënt en goedkoop: weergeven met STM32L4 - Ajarnpa
Efficiënt en goedkoop: weergeven met STM32L4 - Ajarnpa

Video: Efficiënt en goedkoop: weergeven met STM32L4 - Ajarnpa

Video: Efficiënt en goedkoop: weergeven met STM32L4 - Ajarnpa
Video: Uitgelicht | Efficiënt omgaan met energie door accupakket voor zonnepanelen 2024, November
Anonim
Image
Image
Invoering
Invoering

Vandaag zullen we het hebben over drie onderwerpen waar ik absoluut dol op ben: een LCD-scherm dat weinig energie verbruikt, STM32 met Core Arduino en Arduino Mega Pro Mini. Dit is een onfeilbaar trio voor het internet der dingen. Ik zal je dan kennis laten maken met het zescijferige LCD-scherm van de HT1621 en een voorbeeldbesturing maken met een code die werkt op zowel de Arduino Mega Pro Mini als de STM32 L432KC. Opmerkelijk detail is dat de broncode van de twee microcontrollers exact hetzelfde is. Ik zal de pinning ook niet veranderen. Het is absoluut fantastisch!

Stap 1: Inleiding

Invoering
Invoering

Het HT1621 LCD-scherm heeft een scherm dat veel wordt gebruikt in multimeters, elektronische weegschalen, elektronische klokken, thermometers en elektronische meetapparatuur.

• Het heeft 6 cijfers met 7 segmenten

• Het maakt gebruik van 3-draads SPI-communicatie

• Het heeft een achtergrondverlichting die geschikt is voor donkere omgevingen

• Zijn bedrijfsspanning is 4,7 ~ 5,2V

• Het verbruikt 4mA met een achtergrondverlichting

Merk op dat het meer dan ZES cijfers, DRIE decimalen en een batterijmeter met DRIE balken heeft.

Stap 2: Bibliotheek voor gebruik

We zullen de ANXZHU github-gebruikersbibliotheek gebruiken, wat vrij eenvoudig is. Het is te zien in de originele versie in de onderstaande link:

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

De naam van de bibliotheek is een beetje vreemd, dus besloot ik de naam ervan te wijzigen (bestanden, klassen, builders, enz.). De oorspronkelijke naam is "A6seglcd". Ik heb deze naam vervangen door "lcdlib".

Stap 3: Bibliotheek

Bibliotheek "lcdlib" toevoegen.

Open de link en download de bibliotheek.

Pak het bestand uit en plak het in de bibliothekenmap van de Arduino IDE.

C: / Programmabestanden (x86) / Arduino / bibliotheken

Stap 4: Demonstratie

Demonstratie
Demonstratie

Arduino mega-assemblage

Stap 5: Demonstratie

Demonstratie
Demonstratie

SMT32-assemblage:

Stap 6: STM32 NUCLEO-L432KC

STM32 NUCLEO-L432KC
STM32 NUCLEO-L432KC

Ik wil hier benadrukken dat de STM32-L432KC geen seriële USB-converter heeft. In plaats daarvan heeft het een volledige USB, die het STMicroelectronics ST-link-protocol gebruikt. Het is dus behoorlijk geavanceerd en maakt zeer efficiënte foutopsporing mogelijk als u IR of Microvision gebruikt. En omdat het een Arduino Core is (MBED, met behulp van de native tool van Microsoft), gebruikt het zeer professionele compilers. Moet ik nog iets zeggen?

Stap 7: Arduino Mega 2560 PRO MINI

Arduino Mega 2560 PRO MINI
Arduino Mega 2560 PRO MINI

Ik ben hier ook dol op, omdat het een "pure" en "echte" Arduino is. Het is een Mega, met veel IO's. Maar het is Mini, dus het past overal. Ik hou overal van IO. Hiermee koppel ik graag Led, SPI, i2c, etc. Wat dat betreft is deze Mega prachtig.

Stap 8: Montage

samenkomst
samenkomst

In onze montage bevindt de rij van de mannelijke pin zich aan de binnenkant, terwijl de vrouwelijke pin zich aan de buitenkant bevindt, wat ons werk en de verbinding met een protoboard vergemakkelijkt. We maken de SPI-verbinding en onthouden dat de Arduino Mega en deze Arduino Nano-kloon dezelfde pinning hebben, namelijk de STM32-L432KC.

Stap 9: Programmeren

We zullen een heel eenvoudig programma maken, waarbij we verschillende symbolen (letters, cijfers en punten) op het display zullen schrijven.

Onthoud dat dit programma werkt op zowel de Arduino Mega Pro Mini als de STM32 L432KC.

Stap 10: Bibliotheken en variabelen

We nemen dan de bibliotheek op die verantwoordelijk is voor communicatie en instantiëren de besturing van het display. De functie "const char" onthult een matrixtabel. Via deze vectoren maakt u de referentie van het teken dat op het scherm wordt afgedrukt.

#include //biblioteca para controle do display

lcd-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 }; /*index 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: Installatie

Om Setup te starten, definiëren we de pinnen, voeren we de eerste installatie uit en stellen we de schermreiniging in. We hebben vastgesteld dat het display 'Hallo' weergeeft en na een bepaalde vertraging wordt het displaybericht gewist.

void setup(){ lcd.run(2, 3, 4, 5); //[cs wr data led+] definitie van pinos lcd.conf(); //configuração initieel lcd.clr(); //limpa o display //escreve HELLO lcd.display (10, num [17]); lcd.display(8, aantal[15]); lcd.display(6, aantal[19]); lcd.display(4, aantal[19]); lcd.display(2, num[0]); //fim HELLO vertraging (1000); lcd.clr(); //limpa o weergave}

Stap 12: Loop

Hier creëren we een functie genaamd "writeLoop", die het woord LOOP op het scherm zal schrijven en vervolgens alle symbolen van onze array zal schrijven. We hebben ook de functie "writeBattery", die de batterijmarkeringen afdrukt.

Ten slotte hebben we de opdracht "lcd.dispnum" die de drijvende-kommawaarde schrijft.

Stap 13: Download de bestanden

PDF

INO

Aanbevolen: