Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot_c:exp46 [2024/11/30 20:02] – [Эксперимент 46. Подключаем TFT дисплей] labuser30 | products:laboratory_iot_c:exp46 [2024/12/07 17:50] (текущий) – [Программный код эксперимента] labuser30 | ||
---|---|---|---|
Строка 7: | Строка 7: | ||
</ | </ | ||
- | Управление матрицей кристаллов берет на себя встроенный в дисплей контроллер. А мы будем управлять этим контроллером. Для этого нам потребуется специальная библиотека. Установите библиотеку " | + | Управление матрицей кристаллов берет на себя встроенный в дисплей контроллер. А мы будем управлять этим контроллером. Для этого нам потребуется специальная библиотека. Установите библиотеку " |
- | + | {{ : | |
- | Как и в прошлый раз, в архиве находятся два варианта файлов — в виде исходный текстов (в папке py) и предварительно откомпилированные (в папке mpy). Мы рекомендуем загружать в микроконтроллер откомпилированные версии файлов, | + | |
Для обмена данными с дисплеем используется шина SPI. SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, | Для обмена данными с дисплеем используется шина SPI. SPI (англ. Serial Peripheral Interface, SPI bus — последовательный периферийный интерфейс, | ||
Строка 32: | Строка 31: | ||
Напишем приветственную надпись на дисплее. | Напишем приветственную надпись на дисплее. | ||
- | < | + | < |
- | from machine import Pin, SPI | + | #include <SPI.h> |
- | from tft import TFT_GREEN | + | #include < |
- | import font | + | |
- | _init() | + | |
- | dc = Pin(4, Pin.OUT) | + | #define PIN_CS |
- | cs = Pin(2, Pin.OUT) | + | #define PIN_DC |
- | rst = Pin(5, Pin.OUT) | + | #define PIN_RST |
- | spi = SPI(1, baudrate=40000000, polarity=0, phase=0) | + | Adafruit_ST7735 tft = Adafruit_ST7735(PIN_CS, |
- | tft = TFT_GREEN(128, 160, spi, dc, cs, rst, rotate=0) | + | void setup() { |
+ | | ||
+ | tft.setRotation(2); | ||
+ | tft.fillScreen(ST77XX_BLACK); | ||
+ | tft.setCursor(0, 0); | ||
+ | tft.setTextColor(ST77XX_WHITE); | ||
+ | tft.print(" | ||
+ | } | ||
- | tft.initr() | + | void loop() { |
- | + | } | |
- | tft.clear(tft.rgbcolor(0, | + | |
- | tft.text(0, | + | |
</ | </ | ||
Подключаем библиотеки для работы в портами ввода-вывода, | Подключаем библиотеки для работы в портами ввода-вывода, | ||
- | < | + | < |
- | from machine import Pin, SPI | + | #include <SPI.h> |
- | from tft import TFT_GREEN | + | #include < |
- | import font | + | |
</ | </ | ||
- | TFT дисплей не имеет встроенного знакогенератора, | + | TFT дисплей не имеет встроенного знакогенератора, |
Настраиваем выводы, | Настраиваем выводы, | ||
- | < | + | < |
- | dc = Pin(4, Pin.OUT) | + | #define PIN_CS |
- | cs = Pin(2, Pin.OUT) | + | #define PIN_DC |
- | rst = Pin(5, Pin.OUT) | + | #define PIN_RST |
</ | </ | ||
- | Настраиваем | + | Создаем |
- | < | + | < |
- | spi = SPI(1, baudrate=40000000, polarity=0, phase=0) | + | Adafruit_ST7735 tft = Adafruit_ST7735(PIN_CS, |
</ | </ | ||
- | Создаем | + | Вызываем |
- | <code python[enable_line_numbers=" | + | <code python[enable_line_numbers=" |
- | tft = TFT_GREEN(128, 160, spi, dc, cs, rst, rotate=0) | + | tft.initR(INITR_BLACKTAB); |
</ | </ | ||
- | Вызываем | + | Переворачиваем изображение. Если этого не сделать, изображение на дисплее для нас |
- | <code python[enable_line_numbers=" | + | <code python[enable_line_numbers=" |
- | tft.initr() | + | tft.setRotation(2); |
</ | </ | ||
- | Когда дисплей инициализирован мы можем управлять изображением на нем. Сначала закрасим его черным цветом, | + | Когда дисплей инициализирован мы можем управлять изображением на нем. Сначала закрасим его черным цветом, |
- | < | + | < |
- | tft.clear(tft.rgbcolor(0, 0, 0)) | + | tft.fillScreen(ST77XX_BLACK); |
- | tft.text(0,0,"Hello, World!", font.terminalfont, | + | |
+ | tft.setTextColor(ST77XX_WHITE); | ||
+ | tft.print(" | ||
</ | </ | ||
- | |||
- | Как мы уже знаем из [[products: | ||
- | |||
- | Для вывода текста используем метод '' | ||
- | * координата X | ||
- | * координата Y | ||
- | * строка для отображения | ||
- | * шрифт | ||
- | * цвет шрифта | ||
- | * размер шрифты | ||
Координата 0,0 находится в верхнем левом углу. Максимальная — в нижнем правом. | Координата 0,0 находится в верхнем левом углу. Максимальная — в нижнем правом. |