INHOUDSOPGAWE:
2025 Outeur: John Day | [email protected]. Laas verander: 2025-01-13 06:56
Hallo, hier kan ek een van die belangrikste e -posse van die OLED -skerm gebruik. Ons kan dit eenvoudig vir u inhou, maar u kan ook die ARDUINO GUI vir CODEs en zum hochladen der Firmware gebruik.
Stap 1: Einstellen / Einrichten Der ARDUINO GUI
As erstes muss das ESP8266 Board in der ARDUINO GUI beskikbaar gemacht werden.
Dazu gehen wir in die Einstellungen (Datei Einstellungen / Bild 1) der GUI and tragen unter
"Zusätzliche Boardverwalter-URL's:"
ein (prent 2). Ons kan dit vir u makliker maak om na die passasier te gaan.
Ons kan ook die Passende Boardtreiber installeer
(Werkzeuge Board: Boardverwaltung / Bild 3)
- Dort im Suchfeld "esp8266" eintragen
- Dan "esp8266 by ESP8266 Community" uitgawe en die huidige weergawe installeer (foto 4)
- Die ARDUINO GUI kan nou begin word
- Danach das passende Board auswählen (z. B.: WeMos D1 R2 & mini)
Stap 2: I2C Schnittstelle Scannen
U kan ook 'n PIN-kode vir OLED-skerms sien om die I2C-snitstelle te sien. So kan ons ook nog 'n I2C-onderdele angeschlossen sind.
Den Sketch (Bild 1) auf den ESP Hochladen, den "Seriellen-Monitor" öffnen and auf die Ausgabe warten. Ons kan dit nie meer doen nie, maar ons kan ook weet watter apparaat u kan vind. (Foto 2 - DigitalPIN Scan)
Das Ergebnis merken.
In diesem Fall: SDA = D1: SCL = D2 bei Adresse 0x3c
Stap 3: Demo-Sketch Anpassen Und Auf Den ESP Hochladen
Dit is die kode vir die OLED-Display DEMO
Im 5. Abschnitt findet Ihr die Stelle an der der Code ggf. modifiziert werden muss.
Ook die Konfiguration für die I2C-Schnittstelle.
Ons kan ook hierdie kode vir meer inligting oor die gebruik van OLED's aanskaf.
/** * Die MIT -lisensie (MIT) * * Kopiereg (c) 2016 deur Daniel Eichhorn * * Toestemming word gratis verleen aan enige persoon wat 'n afskrif * van hierdie sagteware en gepaardgaande dokumentasie lêers (die "sagteware" verkry)), om die sagteware * sonder beperking te verhandel, insluitend sonder beperking die regte * om te gebruik, te kopieer, te verander, saam te smelt, te publiseer, te versprei, te onderlisensieer en/of te verkoop * kopieë van die sagteware, en om persone toe te staan aan wie die sagteware is * daarvoor ingerig, onderhewig aan die volgende voorwaardes: * * Bogenoemde kopieregkennisgewing en hierdie toestemmingskennisgewing sal ingesluit word in alle * afskrifte of aansienlike gedeeltes van die sagteware. * * DIE SOFTWARE WORD GESOEK "SOOS IS", SONDER GARANTIE VAN ENIGE Soorte, UITDRUKKIG OF * IMPLICIET, INGESLUIT, MAAR NIE BEPERK TOT DIE GARANTIES VAN VERKOOPBAARHEID, * GESKIKTIGHEID VIR 'N BESONDERE DOEL EN NONNFRINGEMENT. DIE * SKRYWERS OF COPYRIGHT -INHOUERS IS GEEN GEVAL AANSPREEKLIK AAN ENIGE EIS, SKADE OF ANDER * AANSPREEKLIKHEID NIE, OF DIE KONTRAK, SKADELING OF ANDERE STAAN, * BUITE OF IN AANSLUITING MET DIE SOFTWARE OF ANDER HANDELINGE IN DIE * Sagteware. * *
/ Sluit die korrekte vertoonbiblioteek in
// Vir 'n verbinding via I2C met behulp van Wire, sluit #include // in vir I2C Wire #include "SSD1306.h" // alias for `#include" SSD1306Wire.h "`
// Sluit persoonlike beelde in
#sluit "images.h" in
// Initialiseer die OLED -skerm met brzo_i2c
// D3 -> SDA // D5 -> SCL // SSD1306 -skerm (0x3c, D1, D2); of SSD1306 -skerm (0x3c, 5, 4); of SSD1306 -skerm (0x3c, GPIO5, GPIO4);
**************************************************************************************************
Daar kan PIN's vir die I2C -snitstelle gekonfigureer word
// Initialiseer die OLED -skerm met behulp van Wire -biblioteek
SSD1306 -skerm (0x3c, D1, D2);
***************************************************************************************************
#definieer DEMO_DURATION 3000
typedef void (*Demo) (void);
int demoMode = 0;
int teller = 1;
ongeldige opstelling () {
Serial.begin (9600); Serial.println ("OLED_DEMO"); Serial.println ("Begin die DEMO");
// Die initialisering van die UI sal ook die skerm begin.
display.init ();
display.flipScreenVertically ();
display.setFont (ArialMT_Plain_10);
}
leegte drawFontFaceDemo () {
// Font Demo1 Serial.println ("Font DEMO 1"); // skep meer lettertipes by https://oleddisplay.squix.ch/ display.setTextAlignment (TEXT_ALIGN_LEFT); display.setFont (ArialMT_Plain_10); display.drawString (0, 0, "ProMoScout"); display.setFont (ArialMT_Plain_16); display.drawString (0, 10, "ProMoScout"); display.setFont (ArialMT_Plain_24); display.drawString (0, 26, "ProMoScout"); }
leegte drawTextFlowDemo () {
Serial.println ("drawTextFlowDemo"); display.setFont (ArialMT_Plain_10); display.setTextAlignment (TEXT_ALIGN_LEFT); display.drawStringMaxWidth (0, 0, 128, "Robotte is / die toekoms en die toekoms, is nou. Maar moenie die natuur vergeet nie)); }
void drawTextAlignmentDemo () {
Serial.println ("drawTextAlignmentDemo"); // Teksbelyning demo display.setFont (ArialMT_Plain_10); // Schriftart und -größe einstellen
// Die koördinate definieer die linker beginpunt van die teks
display.setTextAlignment (TEXT_ALIGN_LEFT); // Text_Ausrichtung einstellen display.drawString (0, 10, "linksbelyn (0, 10)");
// Die koördinate definieer die middelpunt van die teks
display.setTextAlignment (TEXT_ALIGN_CENTER); display.drawString (64, 22, "middellyn (64, 22)");
// Die koördinate definieer die regterkant van die teks
display.setTextAlignment (TEXT_ALIGN_RIGHT); display.drawString (128, 33, "Regs in lyn (128, 33)"); }
leegte drawRectDemo () {
Serial.println ("drawRectDemo"); // Teken 'n pixel op die gegewe posisie vir (int i = 0; i <10; i ++) {display.setPixel (i, i); display.setPixel (10 - i, i); } display.drawRect (12, 12, 20, 20);
// Vul die reghoek
display.fillRect (14, 14, 17, 17);
// Trek 'n lyn horisontaal
display.drawHorizontalLine (0, 40, 20);
// Trek 'n lyn horisontaal
display.drawVerticalLine (40, 0, 20); }
leegte drawCircleDemo () {
Serial.println ("drawCircleDemo"); vir (int i = 1; i <8; i ++) {display.setColor (WIT); display.drawCircle (32, 32, i*3); as (i % 2 == 0) {display.setColor (SWART); } display.fillCircle (96, 32, 32 - i* 3); }}
void drawProgressBarDemo () {
Serial.println ("drawProgressBarDemo"); int vordering = (teller / 5) % 100; // teken die vorderingsbalk display.drawProgressBar (0, 32, 120, 10, progress);
// trek die persentasie as string
display.setTextAlignment (TEXT_ALIGN_CENTER); display.drawString (64, 15, String (progress) + "%"); }
Die volgende link kan 'n opmerking of 'n beeld of 'n logo vir ons gee, maar dit kan ook op die skerm vertoon word …
leegte drawImageDemo () {
Serial.println ("drawImageDemo"); // sien https://blog.squix.org/2015/05/esp8266-nodemcu-how… // oor hoe om xbm-lêers te skep display.drawXbm (34, 0, Logo_width, Logo_height, Logo_bits); }
Demo demos = {drawFontFaceDemo, drawTextFlowDemo, drawTextAlignmentDemo, drawRectDemo, drawCircleDemo, drawProgressBarDemo, drawImageDemo};
int demoLength = (sizeof (demos) / sizeof (Demo)); long timeSinceLastModeSwitch = 0;
leemte -lus () {
// maak die display display.clear () skoon; // teken die huidige demonstrasiemetode demo's [demoMode] ();
display.setTextAlignment (TEXT_ALIGN_RIGHT);
display.drawString (10, 128, String (millis ())); // skryf die buffer na die display display.display ();
if (millis () - timeSinceLastModeSwitch> DEMO_DURATION) {
demoMode = (demoMode + 1) % demoLength; timeSinceLastModeSwitch = millis (); } teller ++; vertraging (10); }
Stap 4: Tools, Links Und Herkunft/Literaturhinweis
Ek kan ook 'n algemene beskrywing van 'n ander kode hê.
Die Grundlagen für diese Anleitung habe ich gefunden unter:
www.instructables.com/id/ESP8266-I2C-PORT-…
github.com/ThingPulse/esp8266-oled-ssd1306…
Viele Grüße
McUtty