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

Arduino:Примеры/TFTColorPicker

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

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

Контакты:

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


Изменение цвета фона на TFT-экране Arduino [1]

GLCD colorDemo.png

Это пример для TFT-экрана Arduino, который считывает данные от трех потенциометров, а затем использует их для изменения цвета экрана.

Для обработки цвета на этом дисплее используются 8-битные числа (0-255), но библиотека перестраивает их под 5-битные (32 уровня; для красного и синего цветов) и 6-битные (64 уровня; для зеленого).

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

  • Плата Arduino Uno;
  • TFT-экран Arduino;
  • Макетная плата Breadboard;
  • Провода-перемычки;
  • Три потенциометра на 10 кОм;

Цепь

Подключите контакты с питанием и «землей» к макетной плате.

GLCD1 text1.png

Подключите потенциометры к макетной плате: их боковые контакты к «земле» и питанию, а центральные – к 0-ому, 1-ому и 2-ому аналоговым контактам.

GLCD picker2.png

Подключите TFT-экран к макетной плате. Подключить его нужно той стороной, где находятся стрелочка и маленькая голубая полоска. Также обратите внимание на ориентацию экрана. На этих рисунках он подсоединен вверх тормашками.

GLCD picker3.png

Контакты BL и +5V подключите к питанию, а GND – к «земле». CS-LD подключите к 10-ому контакту, DC – к 9-ому, RESET – к 8-ому, MOSI – к 11-ому, а SCK – к 13-ому. В случае с Leonardo вам надо будет использовать другие контакты, читайте об этом на странице о TFT-экране или в коде ниже.

GTFT picker large.png

Код

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

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

Определяем контакты, которые будем использовать для управления экрана, а после этого создаем экземпляр класса TFT под названием TFTscreen. Будем использовать его всякий раз, когда нам надо будет работать с экраном.

  1. #define cs   10
  2. #define dc   9  
  3. #define rst  8  
  4.  
  5. TFT TFTscreen = TFT(cs, dc, rst);

В секции setup() инициализируем экран и очищаем фон. Также запускаем последовательную передачу данных.

  1. void setup() {
  2.   Serial.begin(9600);
  3.   TFTscreen.begin();
  4.   TFTscreen.background(255, 255, 255);
  5. }

В секции loop() считываем данные от потенциометров, а затем подгоняем их к диапазону 0-255. Далее при помощи функции background() задаем цвет фона и выводим преобразованные значения на Serial Monitor.

  1. void loop() {
  2.  
  3.   int redVal = map(analogRead(A0), 0, 1023, 0, 255);
  4.   int greenVal = map(analogRead(A1), 0, 1023, 0, 255);
  5.   int blueVal = map(analogRead(A2), 0, 1023, 0, 255);
  6.  
  7.   TFTscreen.background(redVal, greenVal, blueVal);
  8.  
  9.   Serial.print("background(");
  10.   Serial.print(redVal);
  11.   Serial.print(" , ");
  12.   Serial.print(greenVal);
  13.   Serial.print(" , ");
  14.   Serial.print(blueVal);
  15.   Serial.println(")");
  16.  
  17.   delay(33);
  18.  
  19. }

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

  1. /*
  2. Изменение цвета фона на TFT-экране Arduino
  3.  
  4. Этот пример для TFT-экрана Arduino считывает данные с потенциометров,
  5. подключенных к 0-ому, 1-ому и 2-ому аналоговым контактам,
  6. а затем использует эти значения, чтобы поменять цвет экрана.
  7.  
  8. Этот код не защищен авторским правом.
  9.  
  10. Создан 15 апреля 2013 Скоттом Фитцджеральдом (Scott Fitzgerald).
  11.  
  12. http://www.arduino.cc/en/Tutorial/TFTColorPicker
  13. */
  14.  
  15. // Определяем контакты для Arduino Uno:
  16. #define cs   10
  17. #define dc   9
  18. #define rst  8
  19.  
  20. // Определяем контакты для Arduino Leonardo (чтобы использовать, раскомментируйте):
  21. // #define cs   7
  22. // #define dc   0
  23. // #define rst  1
  24.  
  25. #include <TFT.h>  // библиотека TFT-экрана Arduino
  26. #include <SPI.h>
  27.  
  28. TFT TFTscreen = TFT(cs, dc, rst);
  29.  
  30. void setup() {
  31.   // Запускаем последовательную передачу данных:
  32.   Serial.begin(9600);
  33.  
  34.   // Инициализируем дисплей:
  35.   TFTscreen.begin();
  36.  
  37.   // Делаем фон белым:
  38.   TFTscreen.background(255, 255, 255);
  39.  
  40. }
  41.  
  42. void loop() {
  43.  
  44.   // Считываем значения от потенциометров и приспосабливаем их к диапазону 0-255:
  45.   int redVal = map(analogRead(A0), 0, 1023, 0, 255);
  46.   int greenVal = map(analogRead(A1), 0, 1023, 0, 255);
  47.   int blueVal = map(analogRead(A2), 0, 1023, 0, 255);
  48.  
  49.   // Заливаем фон в соответствии с этими преобразованными значениями:
  50.   TFTscreen.background(redVal, greenVal, blueVal);
  51.  
  52.   // Отправляем эти значения на Serial Monitor:
  53.   Serial.print("background(");  //  "Фон("
  54.   Serial.print(redVal);
  55.   Serial.print(" , ");
  56.   Serial.print(greenVal);
  57.   Serial.print(" , ");
  58.   Serial.print(blueVal);
  59.   Serial.println(")");
  60.  
  61.   // Немного ждем:
  62.   delay(33);
  63.  
  64. }

См.также

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

  1. Arduino - TFT Color Picker