Tentang proyek ini
Ini adalah sensor parkir garasi menggunakan LED RGB yang dapat dialamatkan untuk memberikan umpan balik kepada pengemudi kendaraan saat mereka mendekati dan akhirnya mencapai posisi berhenti (parkir). Lihat video beraksi:
Saya merancang ini di sekitar beberapa bahan setengah bulat berdiameter 1/2" akrilik yang saya miliki (dipotong menjadi 20-7/16") untuk digunakan sebagai lensa yang juga berfungsi untuk menyatukan bagian-bagian yang pas. Ini dapat dengan mudah dibeli di internet dengan harga sekitar $0,66 per kaki, namun, saya juga menyertakan model lensa yang dapat dicetak dalam segmen menggunakan filamen bening.
LANGKAH 1
Siapkan strip LED (strip LED WS2812b yang dapat dialamatkan secara individual dengan panjang 1 meter LED RGB Smart Pixel 30 strip). Potong Strip menjadi dua (2) 15 segmen LED dan solder mengarah ke setiap segmen di awal setiap strip. Panah di titik strip 'JAUH' dari tempat yang dibutuhkan petunjuk.
LANGKAH 2
Pasang semua bagian rel (satu Rel Luar, dan dua segmen Rel Dalam per sisi) dengan kasing di tengah.
LANGKAH 3
Masukkan kabel dari strip LED ke dalam kotak di setiap sisi, dan rekatkan dengan selotip. Catatan strip LED akan berhenti sekitar 1/2" dari setiap ujung rel Luar
LANGKAH 4
Geser Lens ke setiap ujungnya hingga ke dalam casing untuk mengunci semua pas di tempatnya. Jika menggunakan lensa cetak, akan ada 4 yang dibutuhkan untuk setiap sisi. Mereka dimaksudkan untuk menjembatani area yang pas.
LANGKAH 5
Pasang rakitan dengan penutup ujung ke papan pendukung (saya menggunakan 1/2" mdf yang dipotong menjadi 2" lebar 45-1/8"). Pasang rakitan menggunakan kepala panci kecil atau sekrup kepala datar (catatan:lakukan tidak menggunakan kepala bulat, jika tidak kabel USB tidak akan masuk ke dalam slot nanti jika diperlukan untuk memprogram ulang parameter.)
LANGKAH 6
Pasang kabel elektronik. Perhatikan letak kapasitor. Kapasitor diperlukan untuk mencegah lonjakan tegangan dari suplai. Sebuah resistor digunakan pada kabel sinyal (pin 7) untuk LED, dan dioda digunakan pada Arduino (V+) untuk mencegah umpan balik tegangan jika USB dimasukkan tanpa catu daya menyala. Tanpa dioda, Arduino akan mencoba mensuplai tegangan ke LED, menyebabkan arus berlebih melalui tegangan on-board yang diatur. Dioda dan resistor disolder sejajar dengan kabel, dan ditutup dengan pipa heat shrink. Kasing perlu dibor dari luar dekat bawah di bawah Arduino untuk memberi makan kabel dari catu daya. Saya tidak mendesain ini menjadi model, karena ukurannya akan tergantung jenis kawat apa yang digunakan. Saya merekomendasikan 18/2 kawat digunakan. Saya menggunakan kabel bel pintu dan memasang konektor di luar casing.
LANGKAH 7
Gunakan sekrup 2.5mm untuk menahan Arduino, dan selesaikan koneksi kabel ke Arduino. Ujung penahan menonjol ke dalam lubang persegi pada kasing. Saya melepas pin terluar pada Arduino (tidak digunakan) untuk mempermudah pemasangan.
LANGKAH 8
Gunakan sekrup 2.5mm untuk memasang detektor ultrasonik (HC-SR02) untuk menutup dengan menahan. Sambungan solder lengkap ke sensor. CATATAN:pastikan kabel menghadap ke tengah sensor agar tidak mengganggu dinding samping saat merakit.
LANGKAH 9
Pasang penutup ke casing dengan sekrup 3 mm.
LANGKAH 10
Program Arduino menggunakan kode di bawah ini. Perbarui pustaka IDE Anda dengan 'FastLED' dan 'QuickStats' sebelum mengkompilasi program Anda. Catatan:Sesuaikan parameter untuk 'startdistance' (titik di mana sensor akan mendeteksi pendekatan kendaraan terlebih dahulu, serta 'stopdistance' (tempat parkir terakhir kendaraan). Rentang sensor adalah 3 cm hingga 400 sentimeter, jadi parameter start dan stop harus berada dalam jarak batas ini.
LANGKAH 11
Pada pembuka pintu garasi, pasang adaptor soket lampu dengan stopkontak terpasang. Colokkan catu daya 5VDC Anda ke saluran ini, dan jalankan ke unit bar lampu. Bar lampu hanya akan menyala dari waktu pintu terbuka sampai lampu pintu mati. Ini mencegah bilah lampu agar tidak selalu menyala.
Kode
Kode ArduinoArduino
/** Sensor Parkir Garasi - Diterbitkan oleh Bob Torrence*/#include #include QuickStats stats; //inisialisasi instance kelas ini// mendefinisikan pin#define LED_PIN 7#define NUM_LEDS 15const int trigPin =9;const int echoPin =10;// mendefinisikan variabelCRGB leds[NUM_LEDS];float duration;float Durationarray[15]; int jarak;int jarak berhenti=115; //posisi parkir dari sensor (CENTIMTER)int startdistance=400; //jarak dari sensor untuk mulai memindai saat mobil masuk(CENTTIMETERS) int increment=((startdistance-stopdistance)/15);void setup() {pinMode(trigPin, OUTPUT); // Menetapkan trigPin sebagai OutputpinMode(echoPin, INPUT); // Menetapkan echoPin sebagai InputFastLED.addLeds(leds, NUM_LEDS);Serial.begin(9600); // Memulai komunikasi serial}void loop() { for (int i=0;i<=14;i++){// Menghapus trigPindigitalWrite(trigPin, LOW);delayMicroseconds(2);// Menyetel trigPin ke HIGH status selama 10 mikro detikdigitalWrite(trigPin, HIGH);delayMicroseconds(10);digitalWrite(trigPin, LOW);// Membaca echoPin, mengembalikan waktu tempuh gelombang suara dalam mikrodetikdurationarray[i] =pulseIn(echoPin, HIGH);distance=durasiarray[i]*0.034/2;Serial.print(jarak);Serial.print(" "); } durasi =(stats.median(durationarray,15));// Menghitung jarakdistance=durasi*0.034/2;// Mencetak jarak pada Serial MonitorSerial.print("Distance:");Serial.println(distance); if (jarak=stopdistance+kenaikan*14){ for (int i =0; i <=14; i++) { leds[i] =CRGB ( 0, 255,0); } FastLED.show(); delay(50);}}
Suku cadang dan penutup khusus
Skema
- Diperbarui 4-21-19 untuk mengoreksi arah Dioda