Isi kandungan:
- Bekalan
- Langkah 1: Membina Litar
- Langkah 2: Pendawaian dan Pemasangan
- Langkah 3: Kodnya
- Langkah 4: Hasil
Video: Kit Lampu Depan Motosikal DIY Givi V56 Dengan Isyarat Bersepadu: 4 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:09
Sebagai penunggang motosikal, saya terlalu biasa diperlakukan seperti saya tidak kelihatan di jalan raya. Satu perkara yang selalu saya tambahkan pada basikal saya adalah kotak atas yang biasanya mempunyai lampu bersepadu. Saya baru-baru ini menaik taraf basikal baru dan membeli kotak Givi V56 Monokey kerana mempunyai banyak ruang untuk item. Kotak ini mempunyai tempat untuk kit lampu kilang yang terdiri daripada dua jalur LED untuk setiap sisi. Masalahnya ialah kit ini berharga $ 70 dan hanya brek. Terdapat kit aftermarket yang mungkin melakukan perkara yang serupa dan mungkin lebih mudah dipasang, tetapi harganya naik hingga $ 150. Sebagai orang yang bijak dan mencari alasan untuk mencuba jalur LED yang dapat diatasi, saya memutuskan untuk membuat sistem bersepadu yang bukan hanya akan mempunyai lampu brek, tetapi lampu jalan (menyala setiap kali bergerak), isyarat belok, dan lampu bahaya. Hanya untuk melihatnya, saya bahkan menambah urutan permulaan…. kerana saya boleh. Perhatikan bahawa ini memerlukan banyak kerja walaupun saya mempunyai banyak perkara yang perlu difikirkan. Walaupun berjaya, saya agak gembira dengan keadaannya. Semoga ini akhirnya berguna kepada orang lain.
Operasi asas bagaimana sistem ini berfungsi ialah unit Arduino mencari isyarat pada pin: lampu brek, lampu putar kiri, dan lampu belok kanan. Untuk membaca isyarat 12 volt dari motosikal, saya menggunakan optoisolator untuk menukar isyarat 12V menjadi isyarat 5V yang boleh dibaca oleh Arduino. Kod kemudian menunggu salah satu isyarat ini kemudian mengeluarkan arahan ke jalur LED menggunakan perpustakaan FastLED. Itulah asasnya, sekarang untuk mengetahui butirannya.
Bekalan
Ini adalah perkara yang saya gunakan kerana sebahagian besar saya sudah membuat mereka terbaring. Jelas, mereka boleh ditukar mengikut keperluan:
- Arduino - Saya menggunakan nano untuk pertimbangan ukuran tetapi anda boleh menggunakan apa sahaja yang anda rasa selagi anda mempunyai lima pin untuk digunakan.
- Pengatur 5V - Saya menggunakan L7805CV yang mampu 1.5 amp. Projek ini akan menggunakan 0.72 amp untuk LED ditambah kuasa untuk nano, jadi 1.5 berfungsi dengan baik untuk projek ini.
- Kapasitor - anda memerlukan satu 0.33 uF dan satu 0.1 uF agar pengatur voltan dapat beroperasi dengan baik.
- Optoisolator 3x - untuk melakukan penukaran isyarat dari 12V hingga 5V. Saya menggunakan jenis PC817X yang hanya mempunyai empat pin yang kita perlukan.
- Perintang - anda memerlukan dua jenis, tiga dari setiap jenis. Yang pertama perlu cukup untuk mengurangkan arus melalui LED IR optoisolator. Anda memerlukan sekurang-kurangnya 600 ohm, tetapi 700 adalah idea yang lebih baik untuk menangani perubahan voltan pada motosikal. Yang lain perlu berada di antara 10k dan 20k untuk isyarat pantas di sisi optoisolator yang lain.
- Papan prototaip - Saya mempunyai beberapa yang cukup kecil untuk dimasukkan ke dalam kotak projek kecil dengan sedikit pemotongan.
- Kotak projek - cukup besar untuk memuatkan komponen, tetapi cukup kecil agar senang dipasang.
- Wire - Saya menggunakan wayar ethernet Cat 6 kerana saya banyak menggunakannya. Ini mempunyai lapan wayar semua kod warna yang membantu dengan semua sambungan yang berbeza dan ukuran yang cukup besar untuk menangani undian semasa.
- Palam - di mana sahaja anda mahu sistem mudah ditanggalkan. Saya menggunakan palam kalis air untuk membiarkan kotak atas dikeluarkan dan menangani hujan atau air yang menimpanya. Saya juga memerlukan palam yang lebih kecil untuk jalur LED sehingga saya tidak perlu menggerudi lubang besar.
- Ikatan pita zip dan pelekat tali leher untuk menahan semuanya di tempatnya.
- Kecilkan bungkus untuk merapatkan sambungan.
Langkah 1: Membina Litar
Jelas sekali, jika anda mengikuti pembinaan saya, anda tidak perlu melalui jumlah ujian yang saya lakukan. Perkara pertama yang saya lakukan adalah memastikan kod saya berfungsi dan saya dapat mendapat isyarat daripada optoisolator serta mengawal jalur LED dengan betul. Perlu beberapa saat untuk mengetahui cara terbaik untuk memasang pin isyarat ke pengasing tetapi melalui percubaan dan ralat, saya dapati orientasi yang betul. Saya hanya menggunakan papan prototaip standard kerana saya hanya membina satu dan memikirkan corak jejak memerlukan lebih banyak masa daripada yang sepatutnya. Bahagian atas papan litar kelihatan hebat, tetapi bahagian bawahnya kelihatan seperti sedikit kekacauan, tetapi sekurang-kurangnya berfungsi.
Reka bentuk asas bermula dengan memasukkan kuasa 12V dari sumber yang dihidupkan (wayar yang hanya menyala ketika motosikal dihidupkan). Gambar rajah pendawaian dapat membantu mencari wayar ini. Ini dimasukkan ke satu sisi pengatur voltan. Kapasitor 0.33 uF mengikat input ini ke tanah pada pengatur voltan yang kemudian menyalurkan kembali ke tanah pada motosikal. Keluaran pengatur voltan akan mempunyai kapasitor 0.1uF yang diikat ke tanah. Kapasitor ini membantu melancarkan voltan dari pengatur. Sekiranya anda tidak dapat menemukannya dalam gambar papan litar, ia berada di bawah pengatur voltan. Dari sana, garis 5V menuju ke Vin di Arduino, ke pin kuasa yang akan memberi makan jalur LED, dan dua sisi Sumber optoisolator yang akan masuk ke pin Arduino yang memberikan isyarat 5V yang diperlukan.
Bagi optoisolator, ada dua sisi: satu dengan LED IR dan yang lain dengan transistor dengan dan pengesan IR. Kami mahu menggunakan sisi LED IR untuk mengukur isyarat 12V. Oleh kerana LED mempunyai voltan hadapan 1.2V, kita memerlukan perintang had semasa dalam siri. 12V - 1.2V = 10.8V dan untuk menyalakan LED pada 18 mA (saya selalu suka menjalankan kurang dari 20 mA atas sebab sepanjang hayat), anda memerlukan perintang R = 10.8V / 0.018A = 600 ohm. Voltan pada kenderaan juga cenderung naik lebih tinggi, berpotensi hingga 14V, jadi lebih baik merancangnya, kira-kira 710 ohm, walaupun 700 lebih masuk akal. Keluaran untuk sisi LED kemudian disalurkan ke tanah. Untuk sisi output optoisolator, input akan menggunakan isyarat 5V dari pengatur maka output akan menyambung ke perintang lain sebelum turun ke tanah. Perintang ini hanya perlu sekitar 10k - 20k ohm, sekurang-kurangnya itulah yang ditunjukkan oleh lembaran data saya. Ini akan memberi pengukuran isyarat yang cepat kerana kita tidak berhadapan dengan persekitaran yang bising. Output ke pin Arduino akan turun antara perintang dan output optoisolator sehingga ketika isyarat mati pin rendah dan ketika isyarat di pin tinggi.
Lampu jalur LED mempunyai tiga wayar yang berkaitan dengannya: Daya, tanah, dan data. Kuasa perlu 5V. Projek ini menggunakan 12 LED keseluruhan (walaupun saya mempunyai lebih banyak LED pada jalur tetapi saya hanya menggunakan setiap LED ketiga) dan masing-masing memerlukan 60mA apabila cahaya putih digunakan pada kecerahan penuh. Ini memberikan sejumlah 720 mA. Kami berada dalam kuasa output untuk pengatur voltan, jadi kami bagus. Pastikan wayar adalah tolok yang cukup besar untuk mengendalikan kuasa, saya menggunakan wayar ethernet Cat gauge 24 gauge. Kawat Ethernet adalah sesuatu yang saya duduki dan ia mempunyai 8 wayar berkod warna sehingga berfungsi dengan baik untuk projek ini. Satu-satunya kabel yang perlu pergi ke kotak atas adalah kuasa dan tanah (yang kedua-duanya berpisah antara jalur) dan dua baris data (satu untuk setiap jalur).
Pendawaian selebihnya menyambung ke pin di arduino dan memberinya kuasa. Pin yang digunakan untuk projek ini adalah seperti berikut:
- Vin - disambungkan ke 5V
- Gnd - disambungkan ke tanah
- Pin2 - disambungkan ke garis data jalur kiri
- Pin3 - disambungkan ke garis data jalur kanan
- Pin4 - disambungkan ke isyarat Brek dari optoisolator
- Pin5 - disambungkan ke isyarat belok kiri dari optoisolator
- Pin6 - disambungkan ke isyarat belok kanan dari optoisolator
Langkah 2: Pendawaian dan Pemasangan
Setelah litar dibina, tiba masanya untuk memasangkannya ke tempatnya. Dengan menggunakan skema pendawaian untuk basikal anda, anda perlu mencari yang berikut:
- Bekalan kuasa bertukar
- Tanah
- Isyarat Brek Masuk
- Isyarat Pusing Kiri Masuk
- Isyarat Pusing Kanan Masuk
Untuk saya, ada satu palam yang mempunyai semua ini, jadi saya baru menggunakannya. Dengan masa yang cukup, saya mungkin dapat menemui gaya palam yang sama dan hanya membuat modul pemalam, tetapi saya tidak melakukannya, jadi saya baru saja mengeluarkan penebat di tempat dan menyolder wayar baru ke dalamnya. Saya menggunakan palam pada sambungan yang disambungkan ini supaya saya dapat melepaskan yang lain sekiranya saya perlukan pada masa akan datang. Dari situ saya meletakkan Arduino, yang kini berada di dalam kotak projek tertutup, di bawah tempat saya meletakkannya. Kabel keluaran kemudian berjalan di sepanjang bingkai rak ke palam kalis air, kemudian memasuki kotak dan berjalan di sepanjang belakang ke penutup di mana ia terpecah untuk setiap sisi. Kabel berjalan di sepanjang bahagian dalam penutup ke titik di mana sambungan untuk LED berada. Kawat itu dipasang di tempatnya menggunakan ikatan zip yang dilekatkan pada pelekap tali leher kelas luar dengan sokongan pelekat. Anda boleh mendapatkannya di bahagian pemasangan kabel di kedai pembaikan rumah
Saya menggunakan dua palam mini JST pada jalur LED kerana saya memerlukan palam yang cukup kecil untuk melalui lubang diameter minimum dan kerana saya ingin memastikan terdapat cukup wayar untuk menangani keperluan semasa. Sekali lagi, ia mungkin berlebihan dan saya tidak mempunyai palam kecil dengan tiga wayar yang berguna. Lubang di dalam kotak untuk melintasi wayar jalur cahaya ditutup rapat agar air tidak keluar. Mengenai kedudukan jalur LED, kerana terdapat sedikit ketidakcocokan dalam jarak (ada jarak jarak antara 1 - 1,5 mm antara lubang di reflektor dan LED) saya meletakkannya sehingga mereka akan membelah perbezaan antara LED dan lubang sebanyak mungkin. Saya kemudian menggunakan lem panas untuk meletakkannya di tempat dan sealant untuk menutup sepenuhnya kawasan tersebut. Jalur LED sendiri kalis air, jadi tidak ada masalah jika basah. Walaupun nampaknya banyak pemasangan, ini menjadikan sistem lebih mudah dikeluarkan pada masa akan datang atau mengganti bahagian yang diperlukan kerana ia mungkin berlaku.
Langkah 3: Kodnya
Kod sumber saya mestilah di awal Instructable ini. Saya selalu mengulas kod saya supaya lebih mudah difahami di kemudian hari. Penafian: Saya bukan penulis kod profesional. Kod itu ditulis dengan kaedah yang lebih mudah untuk dilakukan terlebih dahulu dan beberapa penambahbaikan telah dibuat, tetapi saya tahu ia boleh lebih halus. Saya juga menggunakan fungsi kelewatan () untuk masa yang tidak sesuai. Walau bagaimanapun, isyarat yang diterima unit ini bukanlah isyarat pantas jika dibandingkan, jadi saya masih dibenarkan membenarkannya menggunakan sesuatu seperti milis (). Saya juga seorang ayah dan suami yang sangat sibuk sehingga menghabiskan masa untuk memperbaiki sesuatu yang akhirnya tidak akan mengubah fungsinya tidak termasuk dalam senarai.
Untuk projek ini, hanya diperlukan satu perpustakaan iaitu perpustakaan FastLED. Ini mempunyai semua kod untuk mengawal jalur LED jenis WS2811 / WS2812B. Dari sana, saya akan merangkumi fungsi asas yang akan digunakan.
Yang pertama selain daripada definisi standard adalah menyatakan dua jalur anda. Anda akan menggunakan kod berikut untuk setiap jalur:
FastLED.addLeds (leds [0], NUM_LEDS);
Garis kod ini menetapkan Pin 2 mendefinisikan jalur ini sebagai jalur 0 dengan bilangan LED yang ditentukan oleh NUM_LEDS pemalar, yang dalam kes saya ditetapkan menjadi 16. Untuk menentukan jalur kedua, 2 akan menjadi 3 (untuk pin3) dan jalur tersebut akan dilabelkan jalur 1.
Baris seterusnya yang penting adalah definisi warna.
leds [0] [1] = Color_high CRGB (r, g, b);
Garis kod ini digunakan walaupun dalam penampilan yang berbeza (kebanyakan saya menggunakan pemalar). Pada dasarnya, kod ini menghantar nilai ke setiap saluran LED (merah, hijau, biru) yang menentukan setiap kecerahan. Nilai kecerahan dapat ditentukan oleh angka 0 - 255. Dengan mengubah tahap kecerahan untuk setiap saluran, anda dapat menentukan warna yang berbeza. Untuk projek ini, saya mahukan warna putih agar cahaya sepantas mungkin. Jadi satu-satunya perubahan yang saya lakukan adalah menetapkan tahap kecerahan sama di ketiga-tiga saluran.
Kumpulan kod seterusnya digunakan untuk menyalakan setiap lampu secara individu. Perhatikan bahawa untuk setiap jalur, setiap LED mempunyai alamat yang bermula pada 0 untuk yang paling dekat dengan sambungan garis data hingga LED nombor tertinggi yang anda minus 1. Contohnya, ini adalah 16 jalur LED, jadi yang tertinggi adalah 16 - 1 = 15. Sebabnya adalah kerana LED pertama dilabelkan 0.
untuk (int i = NUM_LEDS-1; i> -1; i = i - 3) {// Ini akan mengubah cahaya untuk setiap LED ketiga dari yang terakhir ke yang pertama. leds [0] = Warna_lambat; // Tetapkan jalur 0 warna LED ke warna yang dipilih. leds [1] = Warna_lambat; // Tetapkan jalur 1 warna LED ke warna yang dipilih. FastLED.show (); // Tunjukkan warna yang ditetapkan. leds [0] = CRGB:: Hitam; // Matikan warna yang ditetapkan dalam persiapan untuk warna berikutnya. leds [1] = CRGB:: Hitam; kelewatan (150); } FastLED.show (); // Tunjukkan warna yang ditetapkan.
Cara kod ini berfungsi ialah pemboleh ubah (i) digunakan dalam gelung untuk sebagai alamat LED yang kemudian dirujuk ke jumlah penuh LED (NUM_LEDS). Sebabnya adalah kerana saya mahu lampu menyala di hujung jalur dan bukannya di awal. Tetapan dikeluarkan ke kedua jalur (leds [0] dan leds [1]) kemudian perintah untuk menunjukkan perubahan dikeluarkan. Selepas itu lampu ini dimatikan (CRGB:: Black) dan lampu seterusnya menyala. Rujukan Black adalah warna tertentu di perpustakaan FastLED jadi saya tidak perlu mengeluarkan 0, 0, 0 untuk setiap saluran walaupun mereka akan melakukan perkara yang sama. Gelung For memajukan 3 LED pada satu masa (i = i-3) kerana saya hanya menggunakan setiap LED lain. Menjelang akhir gelung ini, urutan cahaya akan beralih dari satu LED ke yang berikutnya dengan hanya satu lampu per jalur, semacam kesan Knight Rider. Sekiranya anda ingin menyalakan setiap lampu sehingga bar terbentuk, anda hanya akan melepaskan garis yang mematikan LED yang berlaku pada set kod seterusnya dalam program ini.
untuk (int i = 0; i <dim; i ++) {// Pudar lampu dengan cepat ke tahap cahaya berjalan. rt = rt + 1; gt = gt + 1; bt = bt + 1; untuk (int i = 9; i <NUM_LEDS; i = i +3) {// Ini akan menyalakan tiga lampu terakhir untuk lampu kedudukan. leds [0] = CRGB (rt, gt, bt); // Tetapkan jalur 0 warna LED ke warna yang dipilih. leds [1] = CRGB (rt, gt, bt); // Tetapkan jalur 1 warna LED ke warna yang dipilih. } FastLED.show (); kelewatan (3); }
Contoh terakhir kod yang saya gunakan untuk LED adalah gelung pudar. Di sini, saya menggunakan slot sementara untuk kecerahan untuk setiap saluran (rt, gt, bt) dan menambahnya dengan 1 dengan kelewatan antara setiap tayangan untuk mencapai penampilan yang saya mahukan. Perhatikan juga bahawa kod ini hanya mengubah tiga LED terakhir kerana ini semakin pudar di lampu berjalan sehingga saya bermula pada 9 dan bukan 0.
Selebihnya kod LED adalah lelaran dari ini. Semua yang lain difokuskan untuk mencari isyarat pada tiga wayar yang berbeza. Kawasan gelung () kod mencari lampu brek, yang akan berkelip sekali sebelum tetap hidup (ini boleh disesuaikan jika dikehendaki) atau mencari isyarat putaran. Untuk kod ini, kerana saya tidak menganggap lampu belok kiri dan kanan akan menyala pada masa yang sama untuk bahaya, saya mempunyai kod untuk mencari salah satu yang pertama, kemudian setelah sedikit kelewatan saya memeriksa untuk melihat apakah keduanya menunjukkan lampu bahaya menyala. Bahagian yang sukar saya ada ialah isyarat putar kerana cahaya akan padam untuk beberapa tempoh jadi bagaimana saya memberitahu perbezaan antara isyarat yang masih menyala tetapi dalam tempoh mati dan isyarat yang dibatalkan? Apa yang saya buat ialah melaksanakan loop tertunda yang diatur untuk berlanjutan lebih lama daripada kelewatan antara flash signal. Sekiranya isyarat putaran masih dihidupkan, maka gelung isyarat akan berterusan. Sekiranya isyarat tidak menyala semula apabila penundaan berakhir, maka ia kembali ke permulaan gelung (). Untuk menyesuaikan panjang kelewatan, ubah nombor untuk cahaya malarDelay ingat untuk setiap 1 dalam cahayaTunda kelewatan berubah sebanyak 100ms.
manakala (digitalRead (leftTurn) == RENDAH) {untuk (int i = 0; i <lightDelay; i ++) {leftTurnCheck (); jika (digitalRead (leftTurn) == TINGGI) {leftTurnLight (); } kelewatan (100); } untuk (int i = 0; i <NUM_LEDS; i = i +3) {// Ini akan mengubah cahaya untuk setiap LED ketiga dari yang terakhir ke yang pertama. leds [0] = CRGB (0, 0, 0); // Tetapkan jalur 0 warna LED ke warna yang dipilih. } untuk (int i = 9; i <NUM_LEDS; i = i +3) {// Ini akan menyiapkan lampu berjalan yang hanya menggunakan tiga yang terakhir. leds [0] = Warna_lambat; // Tetapkan jalur 0 warna LED ke warna yang dipilih. } FastLED.show (); // Tetapan output kembali; // Setelah isyarat putaran tidak lagi aktif, kembali ke gelung. }
Semoga kod selebihnya dapat dijelaskan sendiri. Ini hanya sekumpulan pengulangan memeriksa dan bertindak berdasarkan isyarat.
Langkah 4: Hasil
Bahagian yang menakjubkan ialah sistem ini berfungsi pada kali pertama saya memasangnya ke basikal. Sekarang, untuk bersikap adil saya sangat mengujinya di bangku simpanan sebelum ini, tetapi saya masih mengharapkan adanya masalah atau penyesuaian. Ternyata saya tidak perlu membuat penyesuaian pada kod dan juga sambungannya. Seperti yang anda lihat dalam video, sistem berjalan mengikut urutan permulaan (yang tidak perlu anda miliki), kemudian secara default menjadi lampu jalan. Selepas itu ia mencari brek dalam keadaan ini akan menyalakan semua LED ke kecerahan penuh dan menyalakannya sekali sebelum menyala sehingga brek dilepaskan. Apabila isyarat putaran digunakan, saya membuat kesan tatal untuk sisi yang belokan ditunjukkan dan sisi lain akan menjadi lampu berjalan atau lampu brek jika menyala. Lampu bahaya hanya akan berkelip tepat pada waktunya dengan lampu yang lain.
Mudah-mudahan dengan lampu tambahan ini, saya akan lebih kelihatan oleh orang lain. Sekurang-kurangnya, ini adalah tambahan yang bagus untuk menjadikan kotak saya lebih menonjol daripada yang lain semasa menyediakan utiliti. Saya harap projek ini berguna untuk orang lain walaupun mereka tidak berfungsi dengan pencahayaan kotak atas motosikal. Terima kasih!
Disyorkan:
Lampu Ekor Motosikal Dengan Blinkers Bersepadu Menggunakan LED yang Boleh Diprogramkan: 4 Langkah
Lampu Ekor Motosikal Dengan Blinkers Bersepadu Menggunakan LED yang Dapat Diprogramkan: Helo! Ini adalah DIY yang mudah untuk membuat Lampu Ekor RGB yang boleh diprogramkan khas (dengan pemutus / penunjuk bersepadu) untuk motosikal anda atau mungkin apa-apa menggunakan WS2812B (led yang boleh diatasi secara individu) dan Arduinos . Terdapat 4 mod cahaya
3 CHANNEL AUDIO MIXER Bersepadu dengan Pemancar Radio FM: 19 Langkah (dengan Gambar)
3 CHANNEL AUDIO MIXER Bersepadu dengan Pemancar Radio FM: Hai semua, dalam artikel ini saya akan menyusun anda untuk membina 3 CHANNEL AUDIO MIXER anda sendiri yang disatukan dengan pemancar radio FM
Cara Memasang HID [Kit Penukaran Lampu Depan] DIY pada Trak Lampu Depan Ram Quad 2012: 10 Langkah
Cara Memasang HID [Kit Penukaran Lampu Depan] DIY pada Trak Lampu Depan Ram Quad 2012: Helo semua! Saya akhirnya " mendapat satu lagi " tutorial menyembunyikan lampu depan kereta untuk anda, kali ini dan kit penukaran HID mengenai cara Memasang BFxenon HID pada trak Lampu depan Ram Quad 2012. SANGAT MUDAH =] Saya harap anda semua seronok
Modulator Lampu Arduino untuk Keselamatan Motosikal: 20 Langkah (dengan Gambar)
Arduino Headlight Modulator untuk Keselamatan Motosikal: Motosikal sukar dilihat di jalan raya terutamanya kerana lebarnya hanya satu perempat dari sebuah kereta atau trak. Sejak tahun 1978 di Amerika Syarikat, pengeluar motosikal dikehendaki menjadikan motosikal lebih kelihatan dengan memasang lampu depan
Lampu Depan Basikal LED 20W Dengan Penglihatan Sisi: 10 Langkah (dengan Gambar)
Lampu Depan Basikal LED 20W Dengan Penglihatan Sisi: Lampu basikal ini menggunakan dua LED Cree XPL putih dan mempunyai LED ambar yang menghadap 0 dan 45 ° untuk penglihatan siang hari dan sisi. Ini mempunyai corak yang berbeza untuk keadaan yang berbeza, mod peningkatan 3 minit, mod tidur, dan monitor bateri. Ia juga mempunyai mod padat