Эксперимент 47. Графические примитивы

Чтобы освоить работу с дисплеем попробуем написать текст и нарисовать различные примитивы: линии, прямоугольники.

Схема эксперимента

Рисунок 1. Монтажная схема эксперимента для дисплея с 8 выводами

Рисунок 2. Монтажная схема эксперимента для дисплея с 11 выводами

Программный код эксперимента

Выведем на дисплей различные примитивы.

Exp47.ino
  1. #include <SPI.h>
  2. #include <Adafruit_ST7735.h>
  3.  
  4. #define PIN_CS 2
  5. #define PIN_DC 4
  6. #define PIN_RST 5
  7.  
  8. Adafruit_ST7735 tft = Adafruit_ST7735(PIN_CS, PIN_DC, PIN_RST);
  9.  
  10. void setup() {
  11. tft.initR(INITR_BLACKTAB);
  12. tft.setRotation(2);
  13.  
  14. // Заливка всего дисплея черным цветом
  15. tft.fillScreen(ST77XX_BLACK);
  16.  
  17. // Отображаем текст "Size 1" синим цветом, размером 1 с началом в точке с координатой 0, 0
  18. tft.setCursor(0, 0);
  19. tft.setTextColor(ST77XX_BLUE);
  20. tft.print("Size 1");
  21.  
  22. // Отображаем текст "Long text, Long text, Long text" красным цветом, размером 1 с началом в точке с координатой 0, 10.
  23. // Длинный текст автоматически переносится на новую строку
  24. tft.setCursor(0, 10);
  25. tft.setTextColor(ST77XX_RED);
  26. tft.print("Long text, Long text,Long text");
  27.  
  28. // Отображаем текст "Size 2" зеленым цветом, размером 2 с началом в точке с координатой 0, 30
  29. tft.setCursor(0, 30);
  30. tft.setTextColor(ST77XX_GREEN);
  31. tft.setTextSize(2);
  32. tft.print("Size 2");
  33.  
  34. // Отображаем текст "Size 4" голубым цветом, размером 4 с началом в точке с координатой 0, 50
  35. tft.setCursor(0, 50);
  36. tft.setTextColor(ST77XX_BLUE);
  37. tft.setTextSize(4);
  38. tft.print("Size4");
  39.  
  40. // Отображаем точку красным цветом с координатой 20, 80
  41. tft.drawPixel(20, 80, ST77XX_RED);
  42.  
  43. // Отображаем закрашенный прямоугольник фиолетовым цветом, началом в точке с координатой 30, 80, шириной 60 и высотой 10
  44. tft.fillRect(30, 80, 60, 10, ST77XX_MAGENTA);
  45.  
  46. // Отображаем горизонтальную линию синим цветом с началом в точке с координатой 20, 95 и шириной 60
  47. tft.drawFastHLine(20, 95, 60, ST77XX_BLUE);
  48.  
  49. // Отображаем вертикальную линию зеленого цвета с началом в точке 10, 95 и высотой 30
  50. tft.drawFastVLine(10, 95, 30, ST77XX_GREEN);
  51.  
  52. // Отображаем линию произвольной направленности красного цвета с началом в точке 15, 100 и концом в точке 100, 160
  53. tft.drawLine(15, 100, 100, 160, ST77XX_RED);
  54. }
  55.  
  56. void loop() {
  57. }

tft.fillScreen — очищает дисплей. Закрашивает его целиком одним цветом. Значение цвета передается в качестве параметра.

tft.setCursor — устанавливает виртуальный курсор для вывода текста. Координаты предаются в качестве параметров.

tft.setTextColor — устанавливает цвет текста. Цвет передается в качестве параметра.

tft.setTextSize — устанавливает размер текста. Размер передается в качестве параметра.

tft.print — выводит на дисплей текст переданный в качестве параметра..

tft.drawPixel — отображает точку на дисплее. Первые два параметра — координаты, третий — цвет.

tft.fillRect — рисует на дисплее прямоугольник. Первые два параметра — координаты угла, третий и четвертый — ширину и высоту прямоугольника, пятый — цвет.

tft.drawFastHLine — рисует горизонтальную линию. Первые два параметра — координаты левого конца линии, третий — ширина и четвертый — цвет линии.

tft.drawFastVLine — рисует вертикальную линию. Первые два параметра — координаты верхнего конца линии, третий — высота и четвертый — цвет линии.

tft.drawLine — рисует линию произвольно направленности. Первые два параметра — координаты одного конца линии, третий и четвертый — координаты второго конца линии, пятый — цвет.

Дополнительное задание

  1. Нарисуй треугольник