Показаны различия между двумя версиями страницы.
Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
products:laboratory_iot_c:exp49 [2024/12/13 13:34] – labuser30 | products:laboratory_iot_c:exp49 [2024/12/13 15:23] (текущий) – [Программный код эксперимента] labuser30 | ||
---|---|---|---|
Строка 18: | Строка 18: | ||
==== Программный код эксперимента ==== | ==== Программный код эксперимента ==== | ||
- | < | + | < |
- | from machine import Pin, SPI | + | #include <SPI.h> |
- | from tft import TFT_GREEN | + | #include < |
- | import font | + | #include " |
- | import time | + | |
- | _init() | + | |
- | machine.freq(160000000) | + | |
+ | #define PIN_CS | ||
+ | #define PIN_DC | ||
+ | #define PIN_RST 5 | ||
- | dc | + | Adafruit_ST7735 tft = Adafruit_ST7735(PIN_CS, |
- | cs = Pin(2, Pin.OUT) | + | LittleFS_ImageReader reader; |
- | rst = Pin(5, Pin.OUT) | + | |
- | spi = SPI(1, baudrate=40000000, | + | void setup() { |
- | tft = TFT_GREEN(128, 160, spi, dc, cs, rst, rotate=0) | + | |
+ | LittleFS.begin(); | ||
+ | | ||
+ | tft.setRotation(2); | ||
+ | |||
+ | tft.fillScreen(tft.color565(255, 251, 240)); | ||
+ | reader.drawBMP("/ | ||
- | tft.initr(tft.BGR) # tft.initr(tft.RGB) #Если вместо синего цвета отображается красный, а вместо красного синий | + | |
- | tft.clear(tft.rgbcolor(255,251,240)) | + | |
- | tft.draw_bmp(0,0,' | + | |
+ | tft.print(" | ||
+ | tft.setCursor(41, 125); | ||
+ | tft.print(":" | ||
+ | | ||
+ | tft.print(" | ||
+ | tft.setTextSize(2); | ||
+ | tft.setCursor(88, 132); | ||
+ | tft.print(":" | ||
+ | tft.setCursor(98, 132); | ||
+ | tft.print(" | ||
+ | } | ||
- | fontcolor = tft.rgbcolor(39,40,51) | + | void loop() { |
- | + | } | |
- | tft.text(5, 125, ' | + | |
- | tft.text(41, | + | |
- | tft.text(55, | + | |
- | tft.text(90, | + | |
- | tft.text(98, | + | |
</ | </ | ||
Этот код выводит интерфейс секундомера. | Этот код выводит интерфейс секундомера. | ||
- | Этой строкой мы переключаем | + | Задаем |
- | < | + | < |
- | machine.freq(160000000) | + | #define PIN_CS |
+ | #define PIN_DC | ||
+ | #define PIN_RST 5 | ||
</ | </ | ||
- | Настройка выводов | + | Cоздаем объекты |
- | < | + | < |
- | dc | + | Adafruit_ST7735 tft = Adafruit_ST7735(PIN_CS, |
- | cs = Pin(2, Pin.OUT) | + | LittleFS_ImageReader reader; |
- | rst = Pin(5, Pin.OUT) | + | |
</ | </ | ||
- | Настраиваем аппаратный | + | Этой |
- | < | + | < |
- | spi = SPI(1, baudrate=40000000, | + | |
- | tft = TFT_GREEN(128, | + | |
</ | </ | ||
- | Инициализируем дисплей, | + | Инициализируем |
- | < | + | заливаем его фоновым цветом и отображаем картинку с секундомером. |
- | tft.initr(tft.BGR) # tft.initr(tft.RGB) #Если вместо синего цвета отображается красный, | + | < |
- | tft.clear(tft.rgbcolor(255, | + | |
- | tft.draw_bmp(0, | + | tft.initR(INITR_BLACKTAB); |
+ | tft.setRotation(2); | ||
</ | </ | ||
- | Объявляем переменную с цветом | + | Закрашиваем дисплей RBG цветом, получая нужное значение с помощью метода '' |
- | < | + | < |
- | fontcolor = tft.rgbcolor(39,40,51) | + | tft.fillScreen(tft.color565(255, 251, 240)); |
+ | tft.draw_bmp(0, | ||
</ | </ | ||
- | Отображаем | + | Задаем |
- | < | + | < |
- | tft.text(5, 125, ' | + | tft.setTextColor(tft.color565(39, 40, 51)); |
+ | tft.setTextSize(3); | ||
</ | </ | ||
- | Отображаем | + | Отображаем часы, |
- | < | + | < |
- | tft.text(41, 125, ":" | + | tft.setCursor(8, 125); |
+ | tft.print(" | ||
+ | tft.setCursor(41, 125); | ||
+ | tft.print(":" | ||
+ | tft.setCursor(55, 125); | ||
+ | tft.print(" | ||
</ | </ | ||
- | Подобным образом отображаем | + | Уменьшаем размер шрифта, |
- | < | + | < |
- | tft.text(55, 125, ' | + | tft.setTextSize(2); |
- | tft.text(90, 130, ":" | + | tft.setCursor(88, 132); |
- | tft.text(98, 132, ' | + | tft.print(":" |
+ | tft.setCursor(98, 132); | ||
+ | tft.print(" | ||
+ | } | ||
</ | </ | ||