Оглавление:
- Шаг 1. Библиотека
- Шаг 2: Wemos Lolin ESP32 OLED
- Шаг 3: Пример
- Шаг 4: Сборка
- Шаг 5: Код
- Шаг 6: некоторые другие интересные функции
Видео: ESP32 с дисплеем Oled - индикатор выполнения: 6 шагов
2024 Автор: John Day | [email protected]. Последнее изменение: 2024-01-30 11: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. На изображении черная часть - это дисплей, а рядом с устройством мы отображаем всю распиновку. Как показано, есть несколько вводов-выводов, которые позволяют нам включать и выключать различные элементы. Кроме того, в этой модели есть WiFi и Bluetooth последнего поколения.
Шаг 3: Пример
На видео вы можете увидеть наш готовый проект и то, как использовать OLED-дисплей для отображения индикатора выполнения, управляемого потенциометром.
Шаг 4: Сборка
Для нашей сборки я использовал потенциометр 10k, и я включил GPIO25 курсора. У нас также есть 3v3 и GND, как вы можете видеть на рисунке ниже. Питание будет поступать от самого USB.
Шаг 5: Код
Сначала мы добавляем библиотеку «SSD1306.h». После этого мы получим доступ к OLED-дисплею. После этого мы создаем экранный объект типа SSD1306, который будет отвечать за управление контентом, отображаемым на OLED-дисплее.
#include "SSD1306.h" // псевдоним для #include "SSD1306Wire.h" // объект, управляющий отображением светодиода / * 0x3c: пользовательский идентификатор для связи для отображения pino 5 и 4 são os de comunicação (SDA, SDC) * / Экран SSD1306 (0x3c, 5, 4); // pino que ligamos o Potenciometro #define PINO_POTENCIOMETRO 25 // использовать для fazer или contador de porcentagem int contador;
Настраивать
В функции setup () мы инициализируем наш экранный объект, чтобы мы могли контролировать, что будет отображаться. Через этот объект мы также настроим источник записи для отображаемых текстов. И, наконец, мы устанавливаем вывод (в частности, вывод, на котором мы поворачивали потенциометр) на ВХОД, чтобы прочитать значение.
void setup () {Serial.begin (115200); Serial.println (); Serial.println (); // Инициализация объекта управления объектом на теле screen.init (); // изображение на 180º (deixa de ponta cabeça) // display.flipScreenVertical (); // настраиваем фоновый рисунок "ArialMT_Plain_10" screen.setFont (ArialMT_Plain_10); // configura o pino for fazer a leitura do Potenciômetro. pinMode (PINO_POTENCIOMETRO, ВХОД); }
Петля
В функции loop () мы прочитаем текущее значение потенциометра. Мы можем заметить, что мы используем функцию «map» вскоре после считывания значения, потому что считанное значение слишком велико для отображения индикатора выполнения, поэтому мы сопоставим значение в диапазоне от 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 0 a 4095 // a barra de progresso espera um valor entre 0 e 100 contador = map (valor, 0, 4095, 0, 100); // вывод на экран, вывод на экран screen.clear (); // ++ counter; // счетчик> 100? счетчик = 0: счетчик = счетчик; // десенха индикатора выполнения drawProgressBar (); // Exibe na tela o que foi configurado até então. screen.display (); задержка (10); }
В функции «drawProgress ()» мы будем использовать значение, считываемое с потенциометра, которое сохраняется в переменной «percProgress» для установки на индикаторе выполнения. Мы также разместим текст прямо над индикатором выполнения, показывающий текущий процент.
// функция отображения индикатора выполнения no displayvoid drawProgressBar () {Serial.print (">>"); Serial.println (contador); // десенха индикатора выполнения / * * drawProgressBar (x, y, width, height, value); параметры (p): p1: x coordenada X no plano cartesiano p2: y coordenada Y no plano cartesiano p3: width comprimento 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); // Настройка или изменение текстового сообщения // Необязательный текст или центральный экран screen.setTextAlignment (TEXT_ALIGN_CENTER); // перевод текста / * * drawString (x, y, text); параметры (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) + "%"); // se o contador está em zero, вывести строку "valor mínimo" if (contador == 0) {screen.drawString (64, 45, "Valor mínimo"); } // se o 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 width, int16_t height);
// нарисовать круг
void drawCircle (int16_t x, int16_t y, int16_t radius);
// закрашиваем круг
void fillCircle (int16_t x, int16_t y, int16_t radius);
// рисуем горизонтальную линию
void drawHorizontalLine (int16_t x, int16_t y, int16_t length);
// рисуем вертикальную линию
void drawVerticalLine (int16_t x, int16_t y, int16_t length);
Текст
// задает выравнивание текста для записи
// TEXT_ALIGN_LEFT, TEXT_ALIGN_CENTER, TEXT_ALIGN_RIGHT, TEXT_ALIGN_CENTER_BOTH
недействительным setTextAlignment (OLEDDISPLAY_TEXT_ALIGNMENT textAlignment);
Рекомендуемые:
Развлечения с OLED-дисплеем и Arduino: 12 шагов (с изображениями)
Удовольствие от OLED-дисплея и Arduino: я уверен, что вы наверняка слышали о технологии OLED-дисплеев. Он относительно новый и предлагает лучшее качество, чем старые ЖК-дисплеи. В этом руководстве мы хотим рассмотреть шаги, необходимые для отображения данных на одном из наиболее распространенных одиночных ко
GPS-трекер ESP32 с OLED-дисплеем: 7 шагов
ESP32 GPS-трекер с OLED-дисплеем: это GPS-трекер, который отображает все данные о местоположении на OLED-дисплее. Кнопка помогает пользователю взаимодействовать с пользовательским интерфейсом на OLED-экране. Эй, как дела, ребята? Акарш здесь от CETech. Код предлагает программу, управляемую меню, с помощью встроенной кнопки
Простая метеостанция своими руками с DHT11 и OLED-дисплеем: 8 шагов
Простая метеостанция своими руками с DHT11 и OLED-дисплеем: в этом уроке мы узнаем, как создать простую метеостанцию с использованием Arduino, датчика DHT11, OLED-дисплея и Visuino для отображения температуры и влажности. Посмотрите демонстрационное видео
Как управлять I2C Oled-дисплеем с помощью Arduino: 9 шагов (с изображениями)
Как управлять дисплеем I2C Oled с помощью Arduino: это очень простое руководство по управлению дисплеем I2C Oled с помощью Arduino Если вам нравится это руководство, подпишитесь на мой канал https://www.youtube.com/ZenoModiff
Диалоговое окно настройки выполнения: 8 шагов
Диалоговое окно «Настройка выполнения»: используйте средство взлома ресурсов, чтобы настроить компьютер, в частности диалоговое окно «Выполнить». Сделайте свой компьютер таким же крутым, как вы, и научитесь чему-то в процессе