Cat hungry.png
Здравствуйте! Собираем деньги на перевод материалов по электронике(https://www.allaboutcircuits.com/education/). Реквизиты указаны здесь.

Arduino:Примеры/Esplora TFT Graph

Материал из Онлайн справочника
Перейти к: навигация, поиск

Перевод: Максим Кузьмин (Cubewriter)
Перевел 2686 статей для сайта.

Контакты:

Проверка/Оформление/Редактирование: Мякишев Е.А.


Построение графика на TFT-экране Esplora [1]

Этот пример для Esplora (и подключенного к ней TFT-экрана Arduino) считывает данные о яркости, исходящие от встроенного светового датчика, а затем в графическом виде отображает их на экране. То есть этот пример аналогичен примеру «График», использующему последовательную передачу данных.

Необходимое оборудование

  • Плата Arduino Esplora;
  • TFT-экран Arduino;

Цепь

Esplora GLCDGraph.png

Подключите TFT-экран к сокету на Esplora, но так, чтобы надпись «SD Card» была вверху.

Код

Чтобы использовать экран, вам надо подключить библиотеки SPI и TFT. Также не забудьте о библиотеке Esplora.

  1. #include <Esplora.h>
  2. #include <TFT.h>
  3. #include <SPI.h>

Создаем переменную, которая будет хранить информацию о Х-оси графика. Мы будем увеличивать это значение при каждом проходе через цикл loop(). В блоке setup() инициализируем экран и окрашиваем фон в приятный цвет.

  1. int xPos = 0;
  2.  
  3. void setup(){
  4.   EsploraTFT.begin();
  5.   EsploraTFT.background(250,16,200);
  6. }

В блоке loop() считываем данные от светового датчика, а затем приспосабливаем их к высоте экрана.

  1. void loop(){
  2.   int sensor = Esplora.readLightSensor();
  3.   int graphHeight = map(sensor,0,1023,0,EsploraTFT.height());

Задаем цвет строки – он должен быть таким, чтобы контрастировать и (желательно) приятно сочетаться с фоновым цветом, который мы задали чуть ранее. Далее рисуем линию от нижней части экрана – ее длина будет зависеть от данных, считанных со светового датчика.

  1. EsploraTFT.stroke(250,180,10);
  2.   EsploraTFT.line(xPos, EsploraTFT.height() - graphHeight, xPos, EsploraTFT.height());

Перед закрытием loop() проверяем, не заскочил ли наш график за край экрана. Если да, стираем все и начинаем с нуля по оси X.

  1. if (xPos >= 160) {
  2.     xPos = 0;
  3.     EsploraTFT.background(250,16,200);
  4.   }
  5.   else {
  6.     xPos++;
  7.   }
  8.   delay(16);
  9. }

Весь скетч полностью – ниже:

  1. /*
  2. Построение графика на TFT-экране, подключенном к Esplora
  3.  
  4. Этот пример использует плату Esplora и TFT-экран Arduino.
  5. Он считывает данные, идущие от светового датчика,
  6. а затем в графическом виде выводит их на экран.
  7.  
  8. Этот код не защищен авторским правом.
  9.  
  10. Создан 15 апреля 2013 Скоттом Фитцджеральдом (Scott Fitzgerald)
  11.  
  12. http://www.arduino.cc/en/Tutorial/EsploraTFTGraph
  13. */
  14.  
  15. #include <Esplora.h>
  16. #include <TFT.h>  // библиотека LCD-экрана Arduino
  17. #include <SPI.h>
  18.  
  19. // Позиция линии на экране:
  20. int xPos = 0;
  21.  
  22. void setup() {
  23.  
  24.   // Инициализируем экран:
  25.   EsploraTFT.begin();
  26.  
  27.   // Очищаем экран, «заливая» его приятным цветом:
  28.   EsploraTFT.background(250, 16, 200);
  29. }
  30.  
  31. void loop() {
  32.  
  33.   // Считываем значение от светового датчика:
  34.   int sensor = Esplora.readLightSensor();
  35.   // Приспосабливаем данные от датчика к высоте экрана:
  36.   int graphHeight = map(sensor, 0, 1023, 0, EsploraTFT.height());
  37.  
  38.   // Рисуем линию контрастирующего цвета:
  39.   EsploraTFT.stroke(250, 180, 10);
  40.   EsploraTFT.line(xPos, EsploraTFT.height() - graphHeight, xPos, EsploraTFT.height());
  41.  
  42.   // Если график достигает края экрана, стираем его,
  43.   // а затем заново начинаем с другой стороны:
  44.   if (xPos >= 160) {
  45.     xPos = 0;
  46.     EsploraTFT.background(250, 16, 200);
  47.   } else {
  48.     // Увеличиваем позицию по горизонтали:
  49.     xPos++;
  50.   }
  51.  
  52.   delay(16);
  53. }

См.также

Внешние ссылки

  1. Arduino - Esplora TFT EtchASketch