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

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

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

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

Контакты:

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


Отображение температуры на TFT-экране Esplora[1]

Этот пример для платы Esplora (и подключенного к ней TFT-экрана Arduino) считывает температуру со встроенного теплового датчика, а затем показывает ее на TFT-экране Arduino.

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

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

Цепь

Esplora GLCDTemp.png

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

Код

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

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

Чтобы обновлять текст на экране, нам надо создать char-массив, который будет хранить динамический контент.

  1. char tempPrintout[3];

В блоке setup() инициализируем экран и очищаем фон. В функции stroke() задаем цвет шрифта, а затем пишем на экране статическую надпись – в данном случае «Degrees in C :» (т.е. «Градусы в Цельсиях: ». Она не будет меняться на протяжении всей работы скетча и расположится в верхней части экрана. Перед тем, как перейти к loop(), задаем размер текста – так, чтобы температурная надпись была четко различимой.

  1. void setup(void) {
  2.   EsploraTFT.begin();
  3.   EsploraTFT.background(0,0,0);
  4.  
  5.   EsploraTFT.stroke(200,20,180);
  6.   EsploraTFT.setTextSize(2);
  7.   EsploraTFT.text("Degrees in C :\n ",0,0);
  8.   EsploraTFT.setTextSize(5);
  9. }

В секции loop() при помощи функции Esplora.readTemperature(DEGREES_C) считываем данные о температуре (в Цельсиях), а затем сохраняем их в строку. Далее конвертируем содержимое строки в char-массив – глобальный массив, который вы объявили в начале скетча.

  1. void loop() {
  2.  
  3.   String temperature = String(Esplora.readTemperature(DEGREES_C));
  4.   temperature.toCharArray(tempPrintout, 3);

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

  1. EsploraTFT.stroke(255,255,255);
  2.   EsploraTFT.text(tempPrintout, 0, 30);

Ждем секунду, а затем стираем только что написанный текст – чтобы обновить данные при следующем проходе через loop().

  1. delay(1000);
  2.   EsploraTFT.stroke(0,0,0);
  3.   EsploraTFT.text(tempPrintout, 0, 30);
  4. }

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

  1. /*
  2. Отображение на TFT-экране Esplora данных от температурного датчика
  3.  
  4. Это пример для платы Esplora и TFT-экрана Arduino.
  5. Он считывает температуру со встроенного теплового датчика Esplora,
  6. а затем показывает ее на подключенном к Esplora TFT-экране,
  7. обновляя данные каждую секунду.
  8.  
  9. Этот код не защищен авторским правом.
  10.  
  11. Создан 15 апреля 2013 Скоттом Фитцджеральдом (Scott Fitzgerald).
  12.  
  13. http://www.arduino.cc/en/Tutorial/EsploraTFTTemp
  14. */
  15.  
  16. // Подключаем необходимые библиотеки:
  17. #include <Esplora.h>
  18. #include <TFT.h>            // библиотека TFT-экрана Arduino
  19. #include <SPI.h>
  20.  
  21. char tempPrintout[3];  // массив, в котором будет храниться температурная информация
  22.  
  23. void setup() {
  24.  
  25.   // Эта строка кода нужна в начале каждого скетча, использующего TFT-экран:
  26.   EsploraTFT.begin();
  27.  
  28.   // Очищаем экран, заливая его черным цветом:
  29.   EsploraTFT.background(0, 0, 0);
  30.  
  31.   // Цвет текста делаем фиолетовым:
  32.   EsploraTFT.stroke(200, 20, 180);
  33.   // Размер текста делаем «2»:
  34.   EsploraTFT.setTextSize(2);
  35.   // Показываем текст в верхнем левом углу экрана.
  36.   // Эта надпись всю работу скетча будет оставаться неизменной:
  37.   EsploraTFT.text("Degrees in C :\n ", 0, 0);  //  "Градусы в Цельсиях :\n "
  38.  
  39.   // Размер динамического текста будет «5»:
  40.   EsploraTFT.setTextSize(5);
  41. }
  42.  
  43. void loop() {
  44.  
  45.   // Считываем температуру в Цельсиях и сохраняем ее в строку:
  46.   String temperature = String(Esplora.readTemperature(DEGREES_C));
  47.  
  48.   // Конвертируем строку в char-массив:
  49.   temperature.toCharArray(tempPrintout, 3);
  50.  
  51.   // Делаем цвет текста белым:
  52.   EsploraTFT.stroke(255, 255, 255);
  53.   // Отображаем температуру строкой ниже статического текста:
  54.   EsploraTFT.text(tempPrintout, 0, 30);
  55.  
  56.   delay(1000);
  57.   // Стираем текст, чтобы при следующем проходе через цикл показать новый текст:
  58.   EsploraTFT.stroke(0, 0, 0);
  59.   EsploraTFT.text(tempPrintout, 0, 30);
  60. }

См.также

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

  1. Arduino - Esplora TFT Temperature Display