Съдържание:
- Стъпка 1: Библиотека
- Стъпка 2: Wemos Lolin ESP32 OLED
- Стъпка 3: Пример
- Стъпка 4: Монтаж
- Стъпка 5: Код
- Стъпка 6: Някои други интересни функции
Видео: ESP32 с дисплей Oled - лента за напредъка: 6 стъпки
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
ESP32, за който ще говорим днес, е този, който вече се предлага с вграден Display Oled. Тази функция прави живота ни много по -лесен, защото можем да имаме впечатление относно стойността на променливата, която се появява. Дори не е нужно да гледате прозорец за отстраняване на грешки. Освен това можете да сглобявате представителства и да рисувате диаграми на производителността, наред с други неща. Поради тези предимства считам този модел за фантастичен продукт и днес ще го програмираме с помощта на Arduino IDE.
Така че в това видео ще програмираме лента за напредък. Важно е да запомните, че ако вашият ESP32 няма дисплей, е възможно да го закупите отделно. Също така, ако никога не сте програмирали ESP32, ви предлагам да гледате това видео: ВИДЕО ВЪВЕДЕНИЕ В ESP32, което разглежда по -подробно темата.
Стъпка 1: Библиотека
За да използваме oled дисплея, трябва да конфигурираме библиотеката в Arduino IDE. За да направите това, изтеглете библиотеката чрез връзката.
Разархивирайте файла и го поставете в папката библиотеки на Arduino IDE.
C:/ProgramFiles (x86)/Arduino/библиотеки
Стъпка 2: Wemos Lolin ESP32 OLED
Wemos Lolin е името на този ESP. На изображението черната част е дисплеят и до устройството показваме целия извод. Както е показано, има няколко IO, които ни позволяват да включваме и изключваме различни елементи. В допълнение, този модел има последно поколение WiFi и Bluetooth.
Стъпка 3: Пример
Във видеото можете да видите готовия ни проект и как да използвате олеирания дисплей за показване на лента за напредък, контролирана от потенциометър.
Стъпка 4: Монтаж
За нашия монтаж използвах потенциометър от 10k и включих GPIO25 на курсора. Също така имаме 3v3 и GND, както можете да видите на фигурата по -долу. Захранването ще идва от самия USB.
Стъпка 5: Код
Първо добавяме библиотеката "SSD1306.h". С това ще получим достъп до олеирания дисплей. След това създаваме дисплей обект от типа SSD1306, който ще отговаря за контрола на съдържанието, показвано на олеирания дисплей.
#include "SSD1306.h" // псевдоним за #include "SSD1306Wire.h" // обективен контролер за показване на светодиоди /* 0x3c: é um identificador único para comunicação do display pino 5 e 4 são os de comunicação (SDA, SDC) */ SSD1306 екран (0x3c, 5, 4); // pino que ligamos o potenciometro #define PINO_POTENCIOMETRO 25 // използваме para fazer за contador de porcentagem int contador;
Настройвам
Във функцията setup () ще инициализираме нашия дисплей обект, за да можем да контролираме какво ще се показва. Чрез този обект ние също ще конфигурираме източника на писане за текстовете, които ще се показват. И накрая, зададохме щифта (по -специално щифта, където завъртяхме потенциометъра) на INPUT, за да прочете стойността.
void setup () {Serial.begin (115200); Serial.println (); Serial.println (); // Inicializa o objeto que controlará o que será exibido na tela screen.init (); // показване на 180º (deixa de ponta cabeça) // display.flipScreenVertical (); // конфигуриране на екран за "ArialMT_Plain_10" screen.setFont (ArialMT_Plain_10); // конфигурация за pino para fazer a leitura do potenciômetro. pinMode (PINO_POTENCIOMETRO, INPUT); }
Цикъл
Във функцията loop () ще прочетем текущата стойност на потенциометъра. Можем да забележим, че използваме функцията "map" скоро след четене на стойността, тъй като стойността за четене е твърде висока, за да се постави в лента за напредък, така че ще картографираме стойността в диапазона от 0 до 100.
void loop () {// да се направи доблест до потенциометър int valor = analogRead (PINO_POTENCIOMETRO); //Serial.println(valor); // mapeando o valor do potenciometro para o valor da barra de progresso // potenciometro faz a leitura do valor no intervalo de 0 a 4095 // a barra de progresso espera um valor entre 0 e 100 contador = map (доблест, 0, 4095, 0, 100); // limpa todo o display, apaga o contúdo da tela screen.clear (); // ++ брояч; // брояч> 100? брояч = 0: брояч = брояч; // десенха прогресивна лента drawProgressBar (); // exibe na tela o que foi configurado até então. screen.display (); забавяне (10); }
Във функцията "drawProgress ()" ще използваме стойността, прочетена от потенциометъра, която е записана в променливата "percProgress", за да зададете в лентата за напредъка. Също така ще поставим текст точно над лентата за напредък, указващ текущия процент.
// função para desenhar лента за напредък без displayvoid drawProgressBar () {Serial.print (">>"); Serial.println (contador); // десенха лента за напредък / * * drawProgressBar (x, y, ширина, височина, стойност); parametros (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: comprimento width da barra de progresso p4: height altura da barra de progresso p5: value valor que a barra de progresso deve assumir */ screen.drawProgressBar (10, 32, 100, 10, contador); // конфигурация за alinhamento do texto que será escrito // nesse caso alinharemos o texto ao centro screen.setTextAlignment (TEXT_ALIGN_CENTER); // escreve o texto de porcentagem / * * drawString (x, y, text); parametros (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: string texto que será exibido */ screen.drawString (64, 15, String (contador) + "%"); // се свързва с контакта, който е нулев, извиква се низ „valor mínimo“if (contador == 0) {screen.drawString (64, 45, „Valor mínimo“); } // се изпраща към contador está em 100, извиква низ "valor máximo" else if (contador == 100) {screen.drawString (64, 45, "Valor máximo"); }}
Стъпка 6: Някои други интересни функции
Дисплей
// поставя дисплея с главата надолу
void flipScreenVertical ();
Рисуване
// изтегля един пиксел от екрана
void setPixel (int16_t x, int16_t y);
// чертая линия
void drawLine (int16_t x0, int16_t y0, int16_t x1, int16_t y1);
// нарисуваме правоъгълник
void drawRect (int16_t x, int16_t y, int16_t ширина, int16_t височина);
// начертайте кръг
void drawCircle (int16_t x, int16_t y, int16_t радиус);
// попълване на кръг
void fillCircle (int16_t x, int16_t y, int16_t радиус);
// начертайте хоризонтална линия
void drawHorizontalLine (int16_t x, int16_t y, int16_t дължина);
// начертайте вертикална линия
void drawVerticalLine (int16_t x, int16_t y, int16_t дължина);
Текст
// задава изравняване на текста за запис
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
void setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Препоръчано:
ESP32 GPS тракер с OLED дисплей: 7 стъпки
ESP32 GPS Tracker с OLED дисплей: Това е GPS тракер, който показва всички позиционни данни на OLED дисплея. Бутон помага на потребителя да взаимодейства с потребителския интерфейс на OLED. Хей, какво става, момчета? Akarsh тук от CETech. Кодът предлага програма, управлявана от менюто, използваща вградения бутон
TTGO (цветен) дисплей с Micropython (TTGO T-дисплей): 6 стъпки
TTGO (цветен) дисплей с Micropython (TTGO T-дисплей): TTGO T-дисплейът е платка, базирана на ESP32, която включва 1,14 инчов цветен дисплей. Таблото може да бъде закупено за награда под 7 $ (включително корабоплаването, награда, видяна на banggood). Това е невероятна награда за ESP32, включително дисплей
I2C / IIC LCD дисплей - Конвертиране на SPI LCD към I2C LCD дисплей: 5 стъпки
I2C / IIC LCD дисплей | Конвертирайте SPI LCD към I2C LCD дисплей: използването на spi lcd дисплей се нуждае от твърде много връзки, което е наистина трудно да се направи, затова намерих модул, който може да преобразува i2c lcd в spi lcd, така че нека започнем
Регулатор на напрежение на платка с дисплей / регулатор на напрежение Com дисплей Para Placa De Ensaio: 8 стъпки
Регулатор на напрежение на платка с дисплей / регулатор на напрежение Com дисплей Para Placa De Ensaio: Придобийте необходимите компоненти, които са в прикачения списък (има връзки, за да купите или да видите техните характеристики). lá os links para poderem comprar ou ver as caracteristicas d
Как да направите часовник в реално време с помощта на Arduino и TFT дисплей - Arduino Mega RTC с 3,5 -инчов TFT дисплей: 4 стъпки
Как да си направим часовник в реално време, използвайки Arduino и TFT дисплей | Arduino Mega RTC с 3,5-инчов TFT дисплей: Посетете моя канал в Youtube. Въведение:- В този пост ще направя „Часовник в реално време“, използвайки 3,5-инчов TFT сензорен LCD, Arduino Mega 2560 и DS3231 RTC модул … .Преди да започнете … проверете видеоклипа от моя канал в YouTube .. Забележка:- Ако използвате Arduin