⭐⭐⭐ Wyzwanie ⏱️ 30 minut

Czujnik parkowania deluxe

To luksusowa wersja czujnika parkowania! Pika szybciej, gdy jesteś bliżej. A ekran OLED pokazuje odległość w centymetrach. Jest też pasek. Robi się dłuższy, gdy jesteś bliżej.

Najpierw szybko się zaloguj. Potem twój projekt będzie od razu gotowy.

🧰 Czego potrzebujesz?

1× Arduino UNO
1× Czujnik odległości HC-SR04
1× Aktywny buzzer
1× Ekranik OLED 0,91"
🔌
Kabel USB + Przewody połączeniowe

🗺️ Schemat podłączenia

Poprowadź przewody od Arduino do każdej części. Kolory przewodów możesz wybrać samodzielnie.

Od Do
Arduino UNO · D9 Czujnik odległości HC-SR04 · Trig
Arduino UNO · D10 Czujnik odległości HC-SR04 · Echo
Arduino UNO · 5V Czujnik odległości HC-SR04 · Vcc
Arduino UNO · GND Czujnik odległości HC-SR04 · Gnd
Arduino UNO · D8 Aktywny buzzer · S
Arduino UNO · 5V Aktywny buzzer · +
Arduino UNO · GND Aktywny buzzer · -
Arduino UNO · A4 Ekranik OLED 0,91" · SDA
Arduino UNO · A5 Ekranik OLED 0,91" · SCL
Arduino UNO · 5V Ekranik OLED 0,91" · VCC
Arduino UNO · GND Ekranik OLED 0,91" · GND

🛠️ Tak to zbudujesz

  1. Podłącz HC-SR04: Trig do pin 9, Echo do pin 10, Vcc do 5V i Gnd do GND.
  2. Podłącz brzęczyk: S do pin 8, + do 5V i − do GND.
  3. Podłącz ekran OLED: SDA do A4, SCL do A5, VCC do 5V i GND do GND.
  4. Trzy części potrzebują 5V i GND. Użyj pasków + i − na swoim breadboard.

💻 Kod

// Czujnik parkowania deluxe
// Jak zwykły czujnik parkowania, ale teraz widzisz odległość też na ekranie OLED.

#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

const int TRIG_PIN = 9;     // Trig z HC-SR04 na pin 9
const int ECHO_PIN = 10;    // Echo z HC-SR04 na pin 10
const int BRZECZYK_PIN = 8; // S brzęczyka na pin 8

Adafruit_SSD1306 ekran(128, 32, &Wire, -1);  // OLED: SDA = A4, SCL = A5

// Mierzy odległość w centymetrach
long zmierzOdleglosc() {
  digitalWrite(TRIG_PIN, LOW);
  delayMicroseconds(2);
  digitalWrite(TRIG_PIN, HIGH);
  delayMicroseconds(10);
  digitalWrite(TRIG_PIN, LOW);
  long czas = pulseIn(ECHO_PIN, HIGH, 30000);
  if (czas == 0) return 999;   // Brak echa: nic blisko
  return czas / 58;
}

// Pokazuje dużą odległość na ekranie, z paskiem pod spodem
void pokazOdleglosc(long odleglosc) {
  ekran.clearDisplay();
  ekran.setTextSize(2);
  ekran.setCursor(0, 0);
  if (odleglosc >= 999) {
    ekran.print(F("---"));
  } else {
    ekran.print(odleglosc);
    ekran.print(F(" cm"));
  }
  // Pasek: im bliżej, tym dłuższy
  int dlugosc = map(constrain(odleglosc, 0, 100), 0, 100, 128, 0);
  ekran.fillRect(0, 24, dlugosc, 8, SSD1306_WHITE);
  ekran.display();
}

void setup() {
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(BRZECZYK_PIN, OUTPUT);
  ekran.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  ekran.setTextColor(SSD1306_WHITE);
}

void loop() {
  long odleglosc = zmierzOdleglosc();
  pokazOdleglosc(odleglosc);

  if (odleglosc < 5) {
    digitalWrite(BRZECZYK_PIN, HIGH);   // Bardzo blisko: jeden długi dźwięk
    delay(100);
  } else if (odleglosc < 50) {
    digitalWrite(BRZECZYK_PIN, HIGH);   // Krótkie piknięcie
    delay(50);
    digitalWrite(BRZECZYK_PIN, LOW);
    delay(odleglosc * 10);              // Bliżej = szybsze pikanie
  } else {
    digitalWrite(BRZECZYK_PIN, LOW);
    delay(100);
  }
}

🧠 Co robi kod?

  • zmierzOdleglosc() mierzy odległość w centymetrach za pomocą HC-SR04.
  • pokazOdleglosc() pokazuje dużą liczbę na ekranie i rysuje pasek przez fillRect().
  • Brzęczyk pika szybciej, gdy odległość jest mniejsza.

🎯 Spróbuj…

  • Pokaż "STOP!" na ekranie, gdy jesteś bliżej niż 5 cm
  • Pokaż odległość w metrach, gdy coś jest dalej niż 1 meter
  • Dodaj pierścień LED, który zmienia kolor z zielonego na czerwony

🚀 Zbuduj ten projekt z Codey: otwórz codey.online/pl/starter-kits/uno/projects/parking-sensor-deluxe i kliknij ZRÓB TO. Wtedy kod i schemat podłączenia będą od razu gotowe.

Najpierw szybko się zaloguj. Potem twój projekt będzie od razu gotowy.
⬇️ Pobierz tę stronę jako PDF 📚 Pobierz cały tutorial (PDF)

Codey Online to produkt od OTRONIC

Zbuduj swój projekt Arduino lub ESP32 z pomocą AI

Opisz, co chcesz zbudować. Codey Online napisze kod, narysuje schemat połączeń, skompiluje projekt i wgra go na płytkę bezpośrednio z przeglądarki.

Zacznij za darmo