⭐⭐⭐ Wyzwanie ⏱️ 30 minut

Automatyczny szlaban

To sprytna wersja szlabanu! Czujnik odległości widzi, że zbliża się auto. Wtedy brzęczyk piszczy, a szlaban sam się otwiera. Auto odjechało? Wtedy znów się zamyka.

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× Serwomotor SG90
1× Aktywny buzzer
🔌
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 · D5 Serwomotor SG90 · PWM
Arduino UNO · 5V Serwomotor SG90 · VCC
Arduino UNO · GND Serwomotor SG90 · GND
Arduino UNO · D8 Aktywny buzzer · S
Arduino UNO · 5V Aktywny buzzer · +
Arduino UNO · GND Aktywny buzzer · -

🛠️ Tak to zbudujesz

  1. Podłącz HC-SR04: Trig do pinu 9, Echo do pinu 10, Vcc do 5V i Gnd do GND.
  2. Podłącz servo: pomarańczowy do pinu 5, czerwony do 5V i brązowy do GND.
  3. Podłącz brzęczyk: S do pinu 8, + do 5V i − do GND.
  4. Przyklej słomkę albo patyczek po lodach do servo jako szlaban i ustaw czujnik przed nim.

💻 Kod

// Automatyczny szlaban
// Czy jedzie auto (coś bliżej niż 15 cm)? Wtedy brzęczyk piszczy i szlaban się otwiera.

#include <Servo.h>

const int TRIG_PIN = 9;       // Trig z HC-SR04 na pinie 9
const int ECHO_PIN = 10;      // Echo z HC-SR04 na pinie 10
const int SERVO_PIN = 5;      // Pomarańczowy/żółty przewód servo na pinie 5
const int BRZECZYK_PIN = 8;   // S brzęczyka na pinie 8
const int BLISKO = 15;        // Od tej odległości (cm) szlaban się otwiera

const int ZAMKNIETE = 0;      // Kąt, gdy szlaban jest zamknięty
const int OTWARTE = 90;       // Kąt, gdy szlaban jest otwarty

Servo szlaban;

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;
  return czas / 58;
}

void setup() {
  Serial.begin(9600);
  pinMode(TRIG_PIN, OUTPUT);
  pinMode(ECHO_PIN, INPUT);
  pinMode(BRZECZYK_PIN, OUTPUT);
  szlaban.attach(SERVO_PIN);
  szlaban.write(ZAMKNIETE);
}

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

  if (odleglosc < BLISKO) {
    Serial.println(F("Auto! Szlaban otw."));
    digitalWrite(BRZECZYK_PIN, HIGH);   // Krótki pisk
    delay(100);
    digitalWrite(BRZECZYK_PIN, LOW);

    szlaban.write(OTWARTE);
    delay(1000);
    // Zostaje otwarty, póki auto tam stoi
    while (zmierzOdleglosc() < BLISKO) {
      delay(200);
    }
    delay(2000);                      // Jeszcze chwilę czekamy, aż auto naprawdę odjedzie
    szlaban.write(ZAMKNIETE);
    Serial.println(F("Szlaban zamk."));
  }
  delay(100);
}

🧠 Co robi kod?

  • HC-SR04 cały czas mierzy odległość. Bliżej niż 15 cm? To znaczy, że stoi tam auto.
  • Brzęczyk krótko piszczy, a servo obraca się na 90 stopni: otwarte.
  • Dopóki auto tam stoi, szlaban zostaje otwarty. Potem czekamy 2 sekundy i szlaban się zamyka.

🎯 Spróbuj…

  • Policz, ile aut przejechało, i pokaż to w monitorze szeregowym
  • Dodaj czerwoną i zieloną LED jako światła przy szlabanie
  • Niech szlaban otwiera się tylko wtedy, gdy naciśniesz też przycisk

🚀 Zbuduj ten projekt z Codey: otwórz codey.online/pl/starter-kits/uno/projects/automatic-barrier 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