Код (C++): #include <SPI.h> #include <nRF24L01.h> #include <RF24.h> #include <Adafruit_GFX.h> // Libreria de graficos #include <Adafruit_TFTLCD.h> // Libreria de LCD TFT 2/4 RF24 radio(1, 10); const uint64_t pipe = 0xE8E8F0F0E1LL; // Pines de conexion del LCD #define LCD_CS A3 // Chip Select - Pin analogico 3 #define LCD_CD A2 // Command/Data - Pin Analogico 2 #define LCD_WR A1 // LCD Write - Pin Analogico 1 #define LCD_RD A0 // LCD Read - Pin Analogico 0 #define LCD_RESET A4 // LCD Reset - Pin Analogico 4 Adafruit_TFTLCD tft(LCD_CS, LCD_CD, LCD_WR, LCD_RD, LCD_RESET); // Instancia del LCD #define BLACK 0x0000 // Определим цвета, чтобы обратиться к ним с вашим именем #define RED 0xF800 // вместо того чтобы использовать шестнадцатеричный код. #define GREEN 0x07E0 #define WHITE 0xFFFF #define BLUE 0x001F #define CYAN 0x07FF #define YELLOW 0xFFE0 #define MAGENTA 0xF81F void setup(void) { tft.begin(0x9325); // Нициализация адреса контроллера // Адреса контролеров: 0x9325, 0x9328,0x7575, 0x9341, 0x8357, // 0x0154,0x9488 tft.fillScreen(BLACK); // Очистка в черный цвет экран Serial.begin(9600); Serial.println("Temperature Starting....."); Serial.println("com"); radio.begin(); radio.openReadingPipe(1, pipe); radio.startListening(); } void loop(void) { tft.setRotation(1); tft.setCursor(20, 42); tft.setTextSize(3); tft.setTextColor(GREEN); if (radio.available()) { float temperature = 0; radio.read(&temperature, sizeof(float)); Serial.print("Temperature : "); Serial.println(temperature); tft.setRotation(1); tft.setCursor(20, 42); tft.setTextSize(3); tft.setTextColor(GREEN); tft.print("Temp = "); tft.println(temperature); tft.setRotation(1); tft.setCursor(230, 42); tft.setTextSize(3); tft.setTextColor(color, bkColor); tft.print("C"); delay(10000); } //else { //tft.setRotation(1); //tft.setCursor(230, 42); //tft.setTextSize(4); //tft.setTextColor(RED); //tft.print("XXX"); } } скетч для дистанционного приема температуры. Работает, но данные температуры на TFT накладываются друг на друга. По серийному порту нормально. Я так понимаю необходимо прописать обновление данных предварительно удалив старые. Скетч собирал по крупинкам )). Тяжело дается наука. Подскажите, что не так ?
По-видимому так - установить различные цвета текста и фона Код (C++): tft.setTextColor(color, bkColor); При несовпадении цветов print закрашивает все точки знакоместа - см. Код (C++): Adafruit_GFX::drawChar(int16_t x, int16_t y, unsigned char c, uint16_t color, uint16_t bg, uint8_t size) Если новая выводимая строка короче предыдущей, явно стирать остаток старой (выводить пробелы).
Вам нужно вызывать функцию очистки экрана. А чтобы наука давалась, нужно заниматься наукой, а не копированием обрывков чужих работ без понимания.