Logo

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
}
Detektor bližine

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.