Arduino:Примеры/TFTColorPicker: различия между версиями
Myagkij (обсуждение | вклад) м (Замена текста — «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS">» на «<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS" enclose="div">») |
Нет описания правки |
||
Строка 41: | Строка 41: | ||
Чтобы использовать экран, сначала подключаем библиотеки '''SPI''' и '''TFT'''. | Чтобы использовать экран, сначала подключаем библиотеки '''SPI''' и '''TFT'''. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
#include <SPI.h> | #include <SPI.h> | ||
#include <TFT.h> | #include <TFT.h> | ||
Строка 48: | Строка 48: | ||
Определяем контакты, которые будем использовать для управления экрана, а после этого создаем экземпляр класса '''TFT''' под названием '''TFTscreen'''. Будем использовать его всякий раз, когда нам надо будет работать с экраном. | Определяем контакты, которые будем использовать для управления экрана, а после этого создаем экземпляр класса '''TFT''' под названием '''TFTscreen'''. Будем использовать его всякий раз, когда нам надо будет работать с экраном. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
#define cs 10 | #define cs 10 | ||
#define dc 9 | #define dc 9 | ||
Строка 58: | Строка 58: | ||
В секции setup() инициализируем экран и очищаем фон. Также запускаем последовательную передачу данных. | В секции setup() инициализируем экран и очищаем фон. Также запускаем последовательную передачу данных. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
void setup() { | void setup() { | ||
Serial.begin(9600); | Serial.begin(9600); | ||
Строка 68: | Строка 68: | ||
В секции loop() считываем данные от потенциометров, а затем подгоняем их к диапазону '''0-255'''. Далее при помощи функции background() задаем цвет фона и выводим преобразованные значения на '''Serial Monitor'''. | В секции loop() считываем данные от потенциометров, а затем подгоняем их к диапазону '''0-255'''. Далее при помощи функции background() задаем цвет фона и выводим преобразованные значения на '''Serial Monitor'''. | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
void loop() { | void loop() { | ||
Строка 92: | Строка 92: | ||
Весь код полностью – ниже: | Весь код полностью – ниже: | ||
<syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS | <syntaxhighlight lang="c" line="GESHI_NORMAL_LINE_NUMBERS|GESHI_FANCY_LINE_NUMBERS"> | ||
/* | /* | ||
Изменение цвета фона на TFT-экране Arduino | Изменение цвета фона на TFT-экране Arduino |
Версия от 18:20, 14 мая 2023
Содержание | Знакомство с Arduino | Продукты | Основы | Справочник языка Arduino | Примеры | Библиотеки | Хакинг | Изменения | Сравнение языков Arduino и Processing |
Изменение цвета фона на TFT-экране Arduino [1]
Это пример для TFT-экрана Arduino, который считывает данные от трех потенциометров, а затем использует их для изменения цвета экрана.
Для обработки цвета на этом дисплее используются 8-битные числа (0-255), но библиотека перестраивает их под 5-битные (32 уровня; для красного и синего цветов) и 6-битные (64 уровня; для зеленого).
Необходимое оборудование
- Плата Arduino Uno;
- TFT-экран Arduino;
- Макетная плата Breadboard;
- Провода-перемычки;
- Три потенциометра на 10 кОм;
Цепь
Подключите контакты с питанием и «землей» к макетной плате.
Подключите потенциометры к макетной плате: их боковые контакты к «земле» и питанию, а центральные – к 0-ому, 1-ому и 2-ому аналоговым контактам.
Подключите TFT-экран к макетной плате. Подключить его нужно той стороной, где находятся стрелочка и маленькая голубая полоска. Также обратите внимание на ориентацию экрана. На этих рисунках он подсоединен вверх тормашками.
Контакты BL и +5V подключите к питанию, а GND – к «земле». CS-LD подключите к 10-ому контакту, DC – к 9-ому, RESET – к 8-ому, MOSI – к 11-ому, а SCK – к 13-ому. В случае с Leonardo вам надо будет использовать другие контакты, читайте об этом на странице о TFT-экране или в коде ниже.
Код
Чтобы использовать экран, сначала подключаем библиотеки SPI и TFT.
#include <SPI.h>
#include <TFT.h>
Определяем контакты, которые будем использовать для управления экрана, а после этого создаем экземпляр класса TFT под названием TFTscreen. Будем использовать его всякий раз, когда нам надо будет работать с экраном.
#define cs 10
#define dc 9
#define rst 8
TFT TFTscreen = TFT(cs, dc, rst);
В секции setup() инициализируем экран и очищаем фон. Также запускаем последовательную передачу данных.
void setup() {
Serial.begin(9600);
TFTscreen.begin();
TFTscreen.background(255, 255, 255);
}
В секции loop() считываем данные от потенциометров, а затем подгоняем их к диапазону 0-255. Далее при помощи функции background() задаем цвет фона и выводим преобразованные значения на Serial Monitor.
void loop() {
int redVal = map(analogRead(A0), 0, 1023, 0, 255);
int greenVal = map(analogRead(A1), 0, 1023, 0, 255);
int blueVal = map(analogRead(A2), 0, 1023, 0, 255);
TFTscreen.background(redVal, greenVal, blueVal);
Serial.print("background(");
Serial.print(redVal);
Serial.print(" , ");
Serial.print(greenVal);
Serial.print(" , ");
Serial.print(blueVal);
Serial.println(")");
delay(33);
}
Весь код полностью – ниже:
/*
Изменение цвета фона на TFT-экране Arduino
Этот пример для TFT-экрана Arduino считывает данные с потенциометров,
подключенных к 0-ому, 1-ому и 2-ому аналоговым контактам,
а затем использует эти значения, чтобы поменять цвет экрана.
Этот код не защищен авторским правом.
Создан 15 апреля 2013 Скоттом Фитцджеральдом (Scott Fitzgerald).
http://www.arduino.cc/en/Tutorial/TFTColorPicker
*/
// Определяем контакты для Arduino Uno:
#define cs 10
#define dc 9
#define rst 8
// Определяем контакты для Arduino Leonardo (чтобы использовать, раскомментируйте):
// #define cs 7
// #define dc 0
// #define rst 1
#include <TFT.h> // библиотека TFT-экрана Arduino
#include <SPI.h>
TFT TFTscreen = TFT(cs, dc, rst);
void setup() {
// Запускаем последовательную передачу данных:
Serial.begin(9600);
// Инициализируем дисплей:
TFTscreen.begin();
// Делаем фон белым:
TFTscreen.background(255, 255, 255);
}
void loop() {
// Считываем значения от потенциометров и приспосабливаем их к диапазону 0-255:
int redVal = map(analogRead(A0), 0, 1023, 0, 255);
int greenVal = map(analogRead(A1), 0, 1023, 0, 255);
int blueVal = map(analogRead(A2), 0, 1023, 0, 255);
// Заливаем фон в соответствии с этими преобразованными значениями:
TFTscreen.background(redVal, greenVal, blueVal);
// Отправляем эти значения на Serial Monitor:
Serial.print("background("); // "Фон("
Serial.print(redVal);
Serial.print(" , ");
Serial.print(greenVal);
Serial.print(" , ");
Serial.print(blueVal);
Serial.println(")");
// Немного ждем:
delay(33);
}