===== Эксперимент 47. Графические примитивы =====
Чтобы освоить работу с дисплеем попробуем написать текст и нарисовать различные примитивы: линии, прямоугольники.
==== Схема эксперимента ====
{{ :products:esp-iot:exp23_mont.png?direct&600 |}}
//Рисунок 1. Монтажная схема эксперимента для дисплея с 8 выводами//
{{ :products:esp-iot:exp23_mont_11pin.png?direct&600 |}}
//Рисунок 2. Монтажная схема эксперимента для дисплея с 11 выводами//
==== Программный код эксперимента ====
Выведем на дисплей различные примитивы.
#include
#include
#define PIN_CS 2
#define PIN_DC 4
#define PIN_RST 5
Adafruit_ST7735 tft = Adafruit_ST7735(PIN_CS, PIN_DC, PIN_RST);
void setup() {
tft.initR(INITR_BLACKTAB);
tft.setRotation(2);
// Заливка всего дисплея черным цветом
tft.fillScreen(ST77XX_BLACK);
// Отображаем текст "Size 1" синим цветом, размером 1 с началом в точке с координатой 0, 0
tft.setCursor(0, 0);
tft.setTextColor(ST77XX_BLUE);
tft.print("Size 1");
// Отображаем текст "Long text, Long text, Long text" красным цветом, размером 1 с началом в точке с координатой 0, 10.
// Длинный текст автоматически переносится на новую строку
tft.setCursor(0, 10);
tft.setTextColor(ST77XX_RED);
tft.print("Long text, Long text,Long text");
// Отображаем текст "Size 2" зеленым цветом, размером 2 с началом в точке с координатой 0, 30
tft.setCursor(0, 30);
tft.setTextColor(ST77XX_GREEN);
tft.setTextSize(2);
tft.print("Size 2");
// Отображаем текст "Size 4" голубым цветом, размером 4 с началом в точке с координатой 0, 50
tft.setCursor(0, 50);
tft.setTextColor(ST77XX_BLUE);
tft.setTextSize(4);
tft.print("Size4");
// Отображаем точку красным цветом с координатой 20, 80
tft.drawPixel(20, 80, ST77XX_RED);
// Отображаем закрашенный прямоугольник фиолетовым цветом, началом в точке с координатой 30, 80, шириной 60 и высотой 10
tft.fillRect(30, 80, 60, 10, ST77XX_MAGENTA);
// Отображаем горизонтальную линию синим цветом с началом в точке с координатой 20, 95 и шириной 60
tft.drawFastHLine(20, 95, 60, ST77XX_BLUE);
// Отображаем вертикальную линию зеленого цвета с началом в точке 10, 95 и высотой 30
tft.drawFastVLine(10, 95, 30, ST77XX_GREEN);
// Отображаем линию произвольной направленности красного цвета с началом в точке 15, 100 и концом в точке 100, 160
tft.drawLine(15, 100, 100, 160, ST77XX_RED);
}
void loop() {
}
''tft.fillScreen'' — очищает дисплей. Закрашивает его целиком одним цветом. Значение цвета передается в качестве параметра.
''tft.setCursor'' — устанавливает виртуальный курсор для вывода текста. Координаты предаются в качестве параметров.
''tft.setTextColor'' — устанавливает цвет текста. Цвет передается в качестве параметра.
''tft.setTextSize'' — устанавливает размер текста. Размер передается в качестве параметра.
''tft.print'' — выводит на дисплей текст переданный в качестве параметра..
''tft.drawPixel'' — отображает точку на дисплее. Первые два параметра — координаты, третий — цвет.
''tft.fillRect'' — рисует на дисплее прямоугольник. Первые два параметра — координаты угла, третий и четвертый — ширину и высоту прямоугольника, пятый — цвет.
''tft.drawFastHLine'' — рисует горизонтальную линию. Первые два параметра — координаты левого конца линии, третий — ширина и четвертый — цвет линии.
''tft.drawFastVLine'' — рисует вертикальную линию. Первые два параметра — координаты верхнего конца линии, третий — высота и четвертый — цвет линии.
''tft.drawLine'' — рисует линию произвольно направленности. Первые два параметра — координаты одного конца линии, третий и четвертый — координаты второго конца линии, пятый — цвет.
==== Дополнительное задание ====
- Нарисуй треугольник