Logo

Projekt: Moderna TFT digitalna ura

V tem projektu bomo nadgradili klasično uro. Uporabili bomo Arduino Nano ESP32, ki ponuja ogromno hitrosti, in TFT 2.0" SPI zaslon za barvni izpis časa. Za natančnost še vedno skrbi modul DS3231.

Tehnični opomnik

Navodila za vezavo

Povezava komponent na Arduino Nano ESP32:

Celotna koda projekta

Za delovanje potrebujete knjižnici Adafruit GFX in Adafruit ST7789 ter RTClib. Koda je optimizirana za hitro osveževanje le tistih delov zaslona, kjer se čas dejansko spremeni.

// Digitalna ura: Nano ESP32 + TFT 2.0 SPI (ST7789) + RTC DS3231
// Avtor: Borut Bukovnik - vadnica.org

#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>
#include <Wire.h>
#include "RTClib.h"

// Pini za TFT 2.0 SPI
#define TFT_CS 10
#define TFT_DC 9
#define TFT_RST 8

Adafruit_ST7789 tft = Adafruit_ST7789(TFT_CS, TFT_DC, TFT_RST);
RTC_DS3231 rtc;

void setup() {
  tft.init(240, 320);
  tft.setRotation(1);
  tft.fillScreen(ST77XX_BLACK);
  
  if (!rtc.begin()) {
    tft.setTextColor(ST77XX_RED);
    tft.print("RTC ni najden!");
    while (1);
  }

  tft.setTextColor(ST77XX_CYAN);
  tft.setTextSize(3);
  tft.setCursor(20, 20);
  tft.print("DIGITALNA URA");
}

void loop() {
  DateTime now = rtc.now();
  
  tft.setTextSize(5);
  tft.setCursor(50, 100);
  
  // Izpis časa s črnim ozadjem (prepreči utripanje)
  tft.setTextColor(ST77XX_YELLOW, ST77XX_BLACK);
  
  char buffer[9];
  sprintf(buffer, "%02d:%02d:%02d", now.hour(), now.minute(), now.second());
  tft.print(buffer);

  tft.setTextSize(2);
  tft.setCursor(80, 180);
  tft.setTextColor(ST77XX_WHITE, ST77XX_BLACK);
  tft.print(now.day());
  tft.print(". ");
  tft.print(now.month());
  tft.print(". ");
  tft.print(now.year());

  float temp = rtc.getTemperature();
  tft.setCursor(20, 200);
  tft.setTextSize(2);
  tft.setTextColor(ST77XX_GREEN, ST77XX_BLACK);
  tft.print("Temp: ");
  tft.print(temp);
  tft.print(" C");

  delay(1000);
}
Projekt: Moderna TFT digitalna ura

Potreben material

Hvala za obisk! Dodajam politiko zasebnosti.

© 2024 Vse pravice pridržane.

Vam je koda pomagala? Če želite podpreti moj trud pri pripravi vodičev in vzdrževanju strani, mi lahko namenite donacijo za kavo.