Потенциометр и график
Аналоговый вход: показываем значение и график на экране.
Аналоговый вход измеряет напряжение от 0 до 3,3 В и выдаёт число от 0 до 4095. Для аналоговых измерений подходят выводы GPIO0–GPIO4.
#include <U8g2lib.h>
#include <Wire.h>
// Встроенный экран 0.42": контроллер SSD1306, видимая область 72×40.
// Аргументы: поворот, вывод сброса (нет), SCL = GPIO6, SDA = GPIO5.
U8G2_SSD1306_72X40_ER_F_HW_I2C u8g2(U8G2_R0, U8X8_PIN_NONE, 6, 5);
const int POT = 3;
uint8_t history[72]; // последние 72 значения для графика
void setup() {
u8g2.begin();
}
void loop() {
int value = analogRead(POT); // 0..4095
// сдвигаем график влево и добавляем новую точку
memmove(history, history + 1, sizeof(history) - 1);
history[71] = map(value, 0, 4095, 0, 27);
u8g2.clearBuffer();
u8g2.setFont(u8g2_font_6x10_tf);
u8g2.setCursor(0, 9);
u8g2.print(value);
u8g2.drawFrame(30, 2, 42, 7); // шкала
u8g2.drawBox(31, 3, map(value, 0, 4095, 0, 40), 5);
for (int i = 0; i < 72; i++) {
u8g2.drawPixel(i, 39 - history[i]);
}
u8g2.sendBuffer();
delay(30);
}Подавайте на выводы не больше 3,3 В. 5 В может повредить чип.
Не используйте для аналоговых датчиков GPIO2, GPIO8 и GPIO9: это «загрузочные» выводы, и внешняя схема на них может помешать плате запуститься.