⭐⭐ Początkujący plus
⏱️ 20 minut
Czujnik parkowania
Zbudujesz czujnik parkowania, tak jak w aucie. Im bliżej jesteś czujnika, tym szybciej piszczy brzęczyk. Bardzo blisko? Wtedy słychać jeden długi dźwięk.
🧰 Czego potrzebujesz?
🗺️ 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 · - |
🛠️ Tak to zbudujesz
- Podłącz HC-SR04: Trig do pin 9, Echo do pin 10, Vcc do 5V i Gnd do GND.
- Podłącz brzęczyk: S do pin 8, + do 5V i − do GND.
- Użyj pasków + i − na swoim breadboard do 5V i GND.
💻 Kod
// Czujnik parkowania
// Im bliżej jesteś czujnika, tym szybciej piszczy brzęczyk. Tak jak w aucie!
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
void setup() {
Serial.begin(9600);
pinMode(TRIG_PIN, OUTPUT);
pinMode(ECHO_PIN, INPUT);
pinMode(BRZECZYK_PIN, OUTPUT);
}
// Mierzy odległość w centymetrach
long zmierzOdleglosc() {
digitalWrite(TRIG_PIN, LOW);
delayMicroseconds(2);
digitalWrite(TRIG_PIN, HIGH); // Wyślij krótki dźwięk (którego nie słyszysz)
delayMicroseconds(10);
digitalWrite(TRIG_PIN, LOW);
long czas = pulseIn(ECHO_PIN, HIGH, 30000); // Ile trwa powrót echa?
if (czas == 0) return 999; // Brak echa: nic nie ma w pobliżu
return czas / 58; // Przelicz czas na centymetry
}
void loop() {
long odleglosc = zmierzOdleglosc();
Serial.print(F("Odległość: "));
Serial.print(odleglosc);
Serial.println(F(" cm"));
if (odleglosc < 5) {
digitalWrite(BRZECZYK_PIN, HIGH); // Bardzo blisko: jeden długi ton
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 = krótsza przerwa = szybsze piszczenie
} else {
digitalWrite(BRZECZYK_PIN, LOW); // Daleko: cisza
delay(100);
}
}
🧠 Co robi kod?
zmierzOdleglosc()wysyła dźwięk i mierzy, jak długo trwa powrót echa. Potem przeliczamy to na centymetry.- Dalej niż 50 cm: brzęczyk jest cicho.
- Bliżej: przerwa między piknięciami robi się krótsza. Poniżej 5 cm piszczy bez przerwy.
🎯 Spróbuj…
- Niech czujnik parkowania zacznie piszczeć już od 1 meter
- Dodaj czerwoną LED, która zaświeci, gdy jest za blisko
- Pokaż odległość w monitorze szeregowym, z paseczkiem z gwiazdek
🚀 Zbuduj ten projekt z Codey: otwórz codey.online/pl/starter-kits/uno/projects/parking-sensor i kliknij ZRÓB TO. Wtedy kod i schemat podłączenia będą od razu gotowe.
Codey Online to produkt od OTRONIC