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

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

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


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

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

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

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

Цепь

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

Код

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

#include <Esplora.h>
#include <TFT.h>
#include <SPI.h>

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

char tempPrintout[3];

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

void setup(void) {
  EsploraTFT.begin();
  EsploraTFT.background(0,0,0);

  EsploraTFT.stroke(200,20,180);
  EsploraTFT.setTextSize(2);
  EsploraTFT.text("Degrees in C :\n ",0,0);
  EsploraTFT.setTextSize(5);
}

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

void loop() {

  String temperature = String(Esplora.readTemperature(DEGREES_C));
  temperature.toCharArray(tempPrintout, 3);

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

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

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

delay(1000);
  EsploraTFT.stroke(0,0,0);
  EsploraTFT.text(tempPrintout, 0, 30);
}

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

/*
Отображение на TFT-экране Esplora данных от температурного датчика

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

Этот код не защищен авторским правом.

Создан 15 апреля 2013 Скоттом Фитцджеральдом (Scott Fitzgerald).

http://www.arduino.cc/en/Tutorial/EsploraTFTTemp
*/

// Подключаем необходимые библиотеки:
#include <Esplora.h>
#include <TFT.h>            // библиотека TFT-экрана Arduino
#include <SPI.h>

char tempPrintout[3];  // массив, в котором будет храниться температурная информация

void setup() {

  // Эта строка кода нужна в начале каждого скетча, использующего TFT-экран:
  EsploraTFT.begin();

  // Очищаем экран, заливая его черным цветом:
  EsploraTFT.background(0, 0, 0);

  // Цвет текста делаем фиолетовым:
  EsploraTFT.stroke(200, 20, 180);
  // Размер текста делаем «2»:
  EsploraTFT.setTextSize(2);
  // Показываем текст в верхнем левом углу экрана.
  // Эта надпись всю работу скетча будет оставаться неизменной:
  EsploraTFT.text("Degrees in C :\n ", 0, 0);  //  "Градусы в Цельсиях :\n "

  // Размер динамического текста будет «5»:
  EsploraTFT.setTextSize(5);
}

void loop() {

  // Считываем температуру в Цельсиях и сохраняем ее в строку:
  String temperature = String(Esplora.readTemperature(DEGREES_C));

  // Конвертируем строку в char-массив:
  temperature.toCharArray(tempPrintout, 3);

  // Делаем цвет текста белым:
  EsploraTFT.stroke(255, 255, 255);
  // Отображаем температуру строкой ниже статического текста:
  EsploraTFT.text(tempPrintout, 0, 30);

  delay(1000);
  // Стираем текст, чтобы при следующем проходе через цикл показать новый текст:
  EsploraTFT.stroke(0, 0, 0);
  EsploraTFT.text(tempPrintout, 0, 30);
}

См.также

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