Мазмұны:
- 1 -қадам: Кітапхана
- 2 -қадам: Wemos Lolin ESP32 OLED
- 3 -қадам: Мысал
- 4 -қадам: құрастыру
- 5 -қадам: код
- 6 -қадам: Кейбір басқа қызықты функциялар
Бейне: OSP дисплейі бар - прогресс жолағы: 6 қадам
2024 Автор: John Day | [email protected]. Соңғы өзгертілген: 2024-01-30 10:26
Біз бүгін сөйлесетін ESP32-бұл орнатылған Display Oled-пен бірге келеді. Бұл функция біздің өмірімізді айтарлықтай жеңілдетеді, өйткені бізде пайда болатын айнымалының мәні туралы әсер болуы мүмкін. Түзету терезесіне қараудың қажеті жоқ. Сондай -ақ, сіз басқа нәрселермен қатар презентациялар жинап, өнімділік диаграммаларын сала аласыз. Осы артықшылықтардың арқасында мен бұл модельді керемет өнім деп санаймын және біз оны бүгін Arduino IDE көмегімен бағдарламалаймыз.
Сонымен, бұл бейнеде біз прогресс жолағын бағдарламалаймыз. Есте сақтау керек, егер сіздің ESP32 дисплейіңіз жоқ болса, оны бөлек сатып алуға болады. Сонымен қатар, егер сіз ешқашан ESP32 бағдарламасын жасамаған болсаңыз, мен сізге мына бейнені қарауды ұсынамын: тақырыппен толығырақ айналысатын ESP32 -ге ВИДЕО КІРІСПЕ.
1 -қадам: Кітапхана
Оледті дисплейді пайдалану үшін бізге кітапхананы Arduino IDE -де конфигурациялау қажет. Ол үшін кітапхананы сілтеме арқылы жүктеңіз.
Файлды ашыңыз және оны Arduino IDE кітапханалар қалтасына қойыңыз.
C:/ProgramFiles (x86)/Arduino/кітапханалары
2 -қадам: Wemos Lolin ESP32 OLED
Wemos Lolin - бұл ESP атауы. Суретте қара бөлік - бұл дисплей, ал құрылғының жанында біз түйреуіштің барлығын көрсетеміз. Көрсетілгендей, әр түрлі элементтерді қосуға және өшіруге мүмкіндік беретін бірнеше ИО бар. Сонымен қатар, бұл модельде соңғы буын WiFi мен Bluetooth бар.
3 -қадам: Мысал
Бейнеде сіз біздің дайын жобаны және потенциометрмен басқарылатын прогресс жолағын көрсету үшін жабық дисплейді қалай қолдануға болатынын көре аласыз.
4 -қадам: құрастыру
Біздің жиналыс үшін мен 10k потенциометрді қолдандым, мен GPIO25 курсорды қостым. Бізде 3v3 және GND бар, оны төмендегі суреттен көріп отырсыз. Қуат USB -ден келеді.
5 -қадам: код
Алдымен біз «SSD1306.h» кітапханасын қосамыз. Осының арқасында біз жабық дисплейге қол жеткіземіз. Содан кейін біз SSD1306 түріндегі дисплей объектісін жасаймыз, ол дисплейде көрсетілген мазмұнды басқаруға жауап береді.
#include «SSD1306.h» // «SSD1306Wire.h» қосылуының бүркеншік аты // led /* 0x3c дисплейінің дисплейі: 5 -тен 4 -ке дейінгі қашықтықты көрсету (SDA, SDC)) */ SSD1306 экраны (0x3c, 5, 4); // pino que ligamos o potenciometro #define PINO_POTENCIOMETRO 25 // пайдалану шарттары мен міндеттері;
Орнату
Setup () функциясында біз дисплей объектісін инициализациялаймыз, сонда біз не көрсетілетінін басқара аламыз. Бұл нысан арқылы біз көрсетілетін мәтіндердің жазу көзін де конфигурациялаймыз. Ақырында, біз мәнді оқу үшін түйреуішті (дәлірек айтқанда, біз потенциометрді бұрған істікті) INPUT күйіне қойдық.
void setup () {Serial.begin (115200); Serial.println (); Serial.println (); // Экранға кіруге рұқсат етілмеген жағдайда, экранда қарау.init (); // 180 ° дисплейі (deixa de ponta cabeça) // display.flipScreenVertically (); // configure a fonte de escrita «ArialMT_Plain_10» screen.setFont (ArialMT_Plain_10); // конфигурациялау үшін потенциалды пайдалану қажет. pinMode (PINO_POTENCIOMETRO, INPUT); }
Цикл
Цикл () функциясында біз ағымдағы потенциометрдің мәнін оқимыз. Біз «карта» функциясын мәнді оқығаннан кейін көп ұзамай қолдана алатынымызды байқай аламыз, себебі оқу мәні прогресс жолағына қою үшін тым жоғары, сондықтан біз 0 -ден 100 -ге дейінгі аралықта болатын мәнді салыстырамыз.
void loop () {// leitura do valor do potenciometro 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 a a 4095 // a barra de progresso espera um valor entre 0 e 100 contador = map (valor, 0, 4095), 0, 100); // limpa todo o display, apala o contúdo da tela screen.clear (); // ++ есептегіш; // есептегіш> 100? есептегіш = 0: есептегіш = есептегіш; // прогресс жолағының тартылуы drawProgressBar (); // мүмкін болған кезде конфигурация жасаңыз. screen.display (); кешіктіру (10); }
«DrawProgress ()» функциясында біз «percProgress» айнымалысында сақталатын потенциометрден оқылатын мәнді прогресс жолағына орнату үшін қолданамыз. Сондай -ақ, ағымдағы пайызды көрсете отырып, прогресс жолағының үстіне мәтін орналастырамыз.
// funcão para desenhar прогресс жолағы displayVoid drawProgressBar () {Serial.print («>>»); Serial.println (contador); // прогресс жолағы / * * drawProgressBar (x, y, ені, биіктігі, мәні); parametros (p): p1: x coordenada X жоқ plano cartesiano p2: y координада Y жоқ plano cartesiano p3: ені құрамы бар4 де прогресс p4: биіктік альтура да барра де прогресс p5: мәні бар және барысы де прогреске жетеді */ screen.drawProgressBar (10, 32, 100, 10, contador); // конфигурация немесе мәтінді өзгерту // экранда экранды өзгерту.setTextAlignment (TEXT_ALIGN_CENTER); // escreve o texto de porcentagem / * * drawString (x, y, мәтін); parametros (p): p1: x координада X жоқ plano cartesiano p2: y координатасы Y жоқ планеталық карт3 p3: жол мәтіні/ экран.drawString (64, 15, String (contador) + «%»); // нөлге тең болса, «valor mínimo» жолын шығарыңыз, егер (contador == 0) {screen.drawString (64, 45, «Valor mínimo»); } // se o contador está em 100, if «contor == 100» {screen.drawString (64, 45, «Valor máximo») «valor máximo» жолын шығарыңыз; }}
6 -қадам: Кейбір басқа қызықты функциялар
Дисплей
// дисплейді төңкеріп қояды
void flipScreenVertically ();
Сурет салу
// экраннан бір пиксель шығарады
жарамсыз setPixel (int16_t x, int16_t y);
// сызық салу
жарамсыз 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
жарамсыз setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Ұсынылған:
Жыпылықтайтын диод жолағы бар Bluetooth динамигі: 5 қадам
Жыпылықтайтын диодты жолақтары бар Bluetooth динамигі: Сәлем достар … Мен фортепианода ойнауды шештім, мен YouTube -тен іздедім, оқулықтар тауып, Дмитрий Шостаковичтің (Вальс No 2) бөлігін жүктедім, оны тыңдауға кеңес беремін. оған (тыңдамағандар үшін) және отырды
Жеңіл жарықдиодты мерекелік жарық шоуы: қыста сиқыршылар - FastLED және Arduino оқулығы бар WS2812B жарықдиодты жолағы: 6 қадам
Жеңіл жарықдиодты мерекелік жарық шоуы: қыста сиқыршылар | FastLED және Arduino оқулығы бар WS2812B жарық диодты жолағы: Мен бұл мерекелік жарық шоуын кез келген жерде көрсету үшін құрастырдым және бағдарламаладым. Мен бір пиксель тығыздығы 30 пиксель/ метр болатын бір WS2812B жолақты қолдандым. Мен 5 метрді қолданғандықтан, менде барлығы 150 жарық диоды болды. Мен кодты қарапайым етіп сақтадым, сондықтан кез келген адам WS2812 -ді қолдана бастады
ESP8266 бар WiFi басқарылатын RGB жарықдиодты жолағы: 5 қадам
ESP8266 көмегімен WiFi басқарылатын RGB светодиодты жол: WiFi арқылы басқарылатын жарықдиодты шамдарды жасау. Менде Рождестволық жарық диодты жолақ бар, сондықтан мен оны ESP8266 -ға қайта өңдеймін, бұл жарықдиодты WiFi арқылы басқаруға мүмкіндік береді. ESP8266 веб -сервер бола алады, бұл
Жарық диодты жолағы мен жарық диодты схемасы бар супер эффектілер: 11 қадам
Жарық диодты жолағы мен жарық диодты схемасы бар супер эффектілер: Сәлем досым, мен бүгін жарық диодты және жарықдиодты жарық диодтары бар супер эффект шамдарының тізбегін жасаймын
Arduino мен TFT дисплейі арқылы нақты уақытты қалай жасауға болады - 3,5 дюймдік TFT дисплейі бар Arduino Mega RTC: 4 қадам
Arduino мен TFT дисплейі көмегімен нақты уақытты қалай жасауға болады | 3,5 дюймдік TFT дисплейі бар Arduino Mega RTC: Менің Youtube каналыма кіріңіз. Кіріспе:- Бұл жазбада мен 3,5 дюймдік TFT сенсорлы СКД, Arduino Mega көмегімен «Нақты уақыттағы сағат» жасаймын. 2560 және DS3231 RTC модулі… .Бастамас бұрын… бейнесін менің YouTube каналымнан қараңыз .. Ескерту:- Егер сіз Arduin қолдансаңыз