===== Эксперимент 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'' — рисует линию произвольно направленности. Первые два параметра — координаты одного конца линии, третий и четвертый — координаты второго конца линии, пятый — цвет. ==== Дополнительное задание ==== - Нарисуй треугольник