Tegning av en fremdriftslinje på OLED med ESPTOP 10 ved hjelp av Arduino IDE

Tegning av en fremdriftslinje på OLED med ESPTOP 10 ved hjelp av Arduino IDE
ESP32 er et IoT -basert kraftbeskyttelsesmikrokontrollertavle. ESP32 har alle disse funksjonene som et mikrokontrollertavle trenger. ESP32 med OLED kan vise forskjellige typer data i grafisk form. Her i denne artikkelen vil vi dekke kode for å vise fremdriftsstenger på en OLED -skjerm. Dette vil flytte fremgangen i sanntid i henhold til et fast intervall.

Denne leksjonen inkluderer følgende emner:

  • 1: Introduksjon til ESP32 OLED -skjerm
  • 2: Wiring OLED -skjermmodul til ESP32
  • 3: Installere nødvendige biblioteker
  • 4: Tegning av en fremdriftslinje på OLED -skjerm ved hjelp av Arduino IDE
  • 4.1: Kode
  • 4.2: Output

1: Introduksjon til ESP32 OLED -skjerm

En I2C OLED-skjerm er en type organisk lysemitterende diode (OLED) -skjerm som bruker den inter-integrerte krets (I2C) -protokollen for kommunikasjon. OLED-skjermer er kjent for sitt høye kontrastforhold, bred visningsvinkel og rask responstid, noe som gjør dem godt egnet for en rekke visningsapplikasjoner.

En I2C OLED -skjerm består vanligvis av en liten OLED -skjerm og en førerkrets som konverterer I2C -signalene til passende spenning og strømmer som trengs for å kjøre OLED -piksler.

Lysdioder inne i OLED -skjermen lyser opp pikslene som viser oss forskjellige bilder og tekst. Mens på den andre siden bruker LCD -skjermen en bakgrunnsbelysning for å belyse piksler. Lysstyrken til disse pikslene kan kontrolleres piksel av piksel.

Nå vil vi grensesnitt ESP32 med en OLED -skjerm.

2: Wiring OLED -skjermmodul til ESP32

OLED -skjermer jobber hovedsakelig med to kommunikasjonsprotokoller. Disse er I2C og SPI. Blant disse to SPI (seriell perifert grensesnitt) er raskere sammenlignet med I2C, men mesteparten av tiden er I2C OLED -skjerm foretrukket på grunn av et mindre antall ledninger.

I2C er en to-ledet seriell kommunikasjonsprotokoll som lar flere enheter dele et enkelt sett med data og klokkelinjer, noe som gjør det til et praktisk valg for å koble OLED-skjermer til mikrokontrollere og andre enheter

Å bruke I2C OLED To pinner SDA og SCL er nok til å vise bilder og tekst. Det gitte bildet viser ESP32 med 0.96-tommers (128 × 64 piksler) OLED-skjerm.

ESP32 PINS -forbindelse med OLED er som følger:

Siden vi har koblet ut ESP32 med en OLED -skjerm, vil vi nå installere de nødvendige bibliotekene i Arduino IDE, slik at vi kan komme videre med former som vises på OLED -skjermen.

3: Installere nødvendige biblioteker

For å vise bilder, må vi installere de nødvendige bibliotekene for OLED -skjerm i Arduino IDE. Uten å bruke disse bibliotekene kan ESP32 ikke vise grafikk på OLED.

Hovedsakelig brukes to biblioteker fra Adafruit: SSD1306 og GFX -bibliotek. Åpne først Arduino IDE og søk SSD1306 -biblioteket. Installer SSD1306 OLED -biblioteket av Adafruit. En annen måte å installere på kommer til å: Skisse> Inkluder bibliotek> Administrer biblioteker:

Nå installer GFX Bibliotek av Adafruit:

Nå har vi installert begge bibliotekene. Nå kan vi enkelt programmere ESP32 med en OLED -skjerm.

4: Tegning av en fremdriftslinje på OLED -skjerm ved hjelp av Arduino IDE

For å tegne en fremdriftslinje på en OLED -skjerm vil vi bruke vise.trekkprogressbar (20, 20, 100, 20, fremgang); funksjon.

Denne funksjonen tar 5 argumenter:

  • Senterets plassering med hensyn til x-koordinat
  • Senterets plassering med hensyn til y-koordinat
  • Tredje argument er bredden på stangen
  • Fjerde argument er høyden på fremdriftslinjen
  • Siste argument er den faktiske fremgangen som vi passerer en heltallverdi mellom 0 og 100

Etter å ha definert alle disse 5 parametrene, last opp koden til ESP32 -styret.

1: Kode

Åpne Arduino IDE, koble til ESP32 og laste opp kode:

Kode startet med å inkludere de nødvendige SSD1306 -bibliotekfilene. Etter det definerte vi I2C -adressen og I2C -pinnene for kommunikasjon.

Husk å sjekke I2C -adressen først før du definerer. For å sjekke I2C -adressen til en hvilken som helst enhet, laste opp koden gitt i opplæringen hvordan du skanner I2C -adressen i ESP32 ved hjelp av Arduino IDE.

Hvis du bruker mer enn en I2C -enhet med samme adresse, må du endre adressen til noen av dem først.

Neste i kode initialiserte vi OLED -skjermen og definerte en fremdriftsformel.

Fremdriftsformel vil beregne fremdriften og butikkverdien i global variabel fremgang. Vi oppsummerer ganske enkelt 10 til gjeldende fremdriftsverdi og får resten ved å dele den med 110 ved hjelp av moduloperatøren. Når fremdriftslinjen er fullført, vil vi ha 110%110 som gir oss 0. Dette starter automatisk linjen igjen fra null.

NESTE DrawProgressbar kalles, og denne funksjonen vil vise fremdriftslinjen i henhold til gjeldende verdi av variabel fremgang. Denne funksjonen vil ta 5 argumenter som forklart tidligere.

#include "SSD1306.h "
SSD1306 Display (0x3c, 21, 22);
int Progress = 0;
void setup ()
vise.i det();

void loop ()
vise.klar();
fremgang = (fremgang + 10) % 110;
vise.trekkprogressbar (20, 20, 100, 20, fremgang);
vise.vise();
forsinkelse (1000);

2: Output

Etter å ha lastet opp kode i ESP32 under utgangen vises på OLED -skjermen. Denne utgangen viser at fremdriftslinjen er på 10%, som er den opprinnelige settposisjonen:

Nå er fremdriftslinjen på 100%, noe som betyr at en viss oppgave er fullført:

Her er utgangstrinnene mellom 0% og 100%. Vi har satt fremdriftsintervallet til 10:

Konklusjon

Progress Bar er en flott måte å vise sanntids fremdrift av et prosjekt. Ved hjelp av OLED -skjermer med ESP32 kan vi ta sanntidsdata og vise dem over skjermen. Å bruke koden gitt noen av dataene kan være representert i form av fremdriftslinje.