⇧
vadnica-logo
Editor Moj Blog Geselnik Finance Moje storitve O projektu Telegram O meni O meni

Projekt: Magično stikalo brez dotika

V tem projektu bomo uporabili infrardeči (IR) odbojni senzor TCRT5000 (oznaka na ploščici HW-006 v1.3). Namesto klasičnih gumbov bomo za preklop prikaza na zaslonu uporabili zamah z roko.

Tehnični opomnik

Navodila za vezavo

Povezava komponent na Arduino Nano ESP32:

  1. TFT VCC -> 3.3V
  2. TFT GND -> GND
  3. TFT SCL (SCK) -> D13
  4. TFT SDA (MOSI) -> D11
  5. TFT CS -> D10
  6. TFT DC -> D9
  7. TFT RES (RST) -> D8
  8. TCRT VCC -> 3.3V
  9. TCRT GND -> GND
  10. TCRT D0 (Digital Out) -> D4

Celotna koda projekta

Spodnja koda omogoča preklop med napisom "STATUS: OK" in opozorilom "ZAZNANO!", ko senzor zazna bližino.

// Projekt: Brezstično stikalo (TCRT5000 + TFT 2.0 SPI)
// Avtor: Borut Bukovnik - vadnica.org

#include <Adafruit_GFX.h>
#include <Adafruit_ST7789.h>

// Pini za TFT zaslon / Pins for TFT display
#define TFT_CS 10
#define TFT_DC 9
#define TFT_RST 8
#define IR_PIN 4 // Pin za IR senzor / Pin for IR sensor

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

void setup() {
    tft.init(240, 320);
    tft.setRotation(1);
    tft.fillScreen(ST77XX_BLACK);
    
    pinMode(IR_PIN, INPUT); // Nastavitev senzorja kot vhod / Set sensor as input
    
    tft.setTextColor(ST77XX_WHITE);
    tft.setTextSize(2);
    tft.setCursor(20, 20);
    tft.print("Senzor Bližine Aktiven");
}

void loop() {
    // Preberemo stanje (LOW pomeni zaznano bližino)
    int stanje = digitalRead(IR_PIN);
    
    tft.setCursor(50, 110);
    tft.setTextSize(4);
    
    if (stanje == LOW) {
        // Ovira zaznana / Obstacle detected
        tft.setTextColor(ST77XX_RED, ST77XX_BLACK);
        tft.print(" ZAZNANO! ");
    } else {
        // Pot prosta / Path clear
        tft.setTextColor(ST77XX_GREEN, ST77XX_BLACK);
        tft.print(" STATUS: OK ");
    }
    
    delay(100); // Hitra odzivnost / Fast responsiveness
}

Potreben material