Авиагоризонт на TFT
Наклон рисуется линией горизонта на цветном экране: земля снизу, небо сверху, и всё это поворачивается вместе с датчиком.
Что на схеме
Плата ESP32 DevKit v1, к ней подключены:
- Акселерометр и гироскоп MPU6050 (I2C) —
imu1 - Дисплей ST7735 (SPI) —
tft1
Задействованы выводы платы: 3V3, GND, D21, D22, D18, D23, D5, D2, D4. Всего соединений на схеме: 11.
Библиотеки
Пример собирается с библиотеками:
- Adafruit MPU6050
- Adafruit Unified Sensor
- Adafruit BusIO
- Adafruit ST7735 and ST7789 Library
- Adafruit GFX Library
Они уже установлены на сервере сборки — отмечать их в проекте вручную не нужно, список приезжает вместе с примером.
Как это устроено в коде
Основное, чем пользуется скетч:
MPU6050— акселерометр и гироскоп по I²CAdafruit_ST7735— цветной дисплей по SPIconstrain()— зажимает значение в границахdelay()— пауза, на время которой ядро занято ожиданием
В скетче 39 строк; подключено заголовков: 2. Сам скетч открыт на соседней вкладке — его можно менять и запускать заново.
Что попробовать изменить
- Замените
delay()на счёт поmillis()— иloop()освободится для всего остального, что должно происходить одновременно. - Перенесите деталь на другой вывод — на схеме и в коде — и убедитесь, что пример работает так же.
- Нажмите «Сделать копию»: копия станет вашим проектом, и в ней можно менять что угодно.
Смотрите также
- DHT22: температура и влажность — Однопроводный протокол с собственным таймингом. Библиотека читает датчик не чаще раза в две секунды — быстрее он не отве…
- Сигнал о перегреве — Порог с гистерезисом поверх датчика: светодиод и зуммер срабатывают, когда температура выходит за границу.
- Минимум и максимум за сеанс — Накопление статистики без массива: достаточно двух переменных и первого замера.
- BME280: три величины сразу — Датчик отдаёт не градусы, а сырые числа и заводские поправки — считает библиотека. Пример показывает, что из этого получ…
- Высота по давлению — Барометрическая высота: считается от давления на уровне моря, и ошибка в этом одном числе смещает всю шкалу.
- Точка росы и запотевание — Точку росы датчик не измеряет — её считают из температуры и влажности. Формула Магнуса и проверка «стекло запотеет».
Сборка ещё не запускалась.
Печатайте в Serial числа — они станут графиком.
Serial.println(t); — один ряд,
Serial.printf("t:%.1f h:%.1f\n", t, h); — два с подписями.
Формат тот же, что понимает плоттер Arduino IDE.