Iklan
Anda dapat melakukan segala macam hal dengan LED berkedip, dan dalam proyek sederhana ini, kami akan membuat perangkat kecil yang menerangi pesan di udara ketika Anda melambaikannya ke depan dan ke belakang. Ini lebih mudah daripada yang Anda pikirkan, dan total biaya komponen di bawah $ 5.
Proyek ini menggunakan ilusi optik yang disebut ketekunan penglihatan untuk membuat teks muncul di udara. Anda mungkin menemukan fenomena ini ketika seseorang menggerakkan sparkler yang menyala dengan cepat di malam hari. Kami akan menggunakan Arduino dan beberapa LED untuk meniru efek ini. Proyek ini mudah dibangun, dengan beberapa komponen dan sedikit penyolderan (meskipun jika Anda ingin beberapa tips untuk memulai dengan solder Anda periksa panduan ini Pelajari Cara Menyolder, dengan Tip dan Proyek Sederhana IniApakah Anda sedikit terintimidasi oleh pemikiran besi panas dan logam cair? Jika Anda ingin mulai bekerja dengan elektronik, Anda harus belajar menyolder. Biarkan kami membantu. Baca lebih banyak ).
Anda akan perlu
- Arduino (saya menggunakan Nano $ 2 karena ringkas dan murah, tetapi model apa pun harusnya baik-baik saja).
- 5x LED merah.
- 5x 220 Ohm resistor.
- 1x Dudukan baterai 9v.
- 1x saklar Rocker.
- 1x bagian protoboard.
- Perumahan untuk produk jadi (saya menggunakan kotak kardus kecil dicat hitam).
Anda juga akan membutuhkan besi solder dan beberapa solder untuk menyatukan semuanya.
Sementara opsional, beberapa sumbu solder bisa sangat berguna jika Anda melakukan kesalahan penyolderan. Sebuah papan tempat memotong roti dan beberapa kabel hookup juga berguna untuk menguji sirkuit Anda.
Pengkabelan
Pengkabelan tidak bisa lebih sederhana. Pertama, pasang Arduino, LED, dan resistor Anda seperti yang ditunjukkan pada diagram ini.
Pin D2 hingga D6 masing-masing resistor, yang melekat pada anoda positif (kaki panjang) dari masing-masing LED. Katoda terhubung ke ground, yang menghubungkan kembali ke Arduino. Ketika selesai, tampilannya akan seperti ini:
Itu dia: sirkuit kami selesai! Kami akan menambahkan rumah baterai dan beralih ke nanti, tetapi hanya ini yang perlu kita uji apakah berfungsi.
Kode
Sekarang pasang Arduino Anda ke komputer dan buka IDE Arduino. Jika Anda baru menggunakan Arduino dan ingin panduan yang baik untuk memulai, Link ini Memulai Dengan Arduino: A Beginner's GuideArduino adalah platform prototipe elektronik sumber terbuka yang didasarkan pada perangkat keras dan lunak yang fleksibel dan mudah digunakan. Ini ditujukan untuk seniman, perancang, penggemar, dan siapa pun yang tertarik untuk menciptakan objek atau lingkungan interaktif. Baca lebih banyak akan berguna.
Buka sketsa baru dan salin kode ini di. Kode diubah dari proyek ini dan Anda dapat mengunduhnya secara penuh di intisari ini.
// berapa lama masing-masing pimpinan tetap menyala. int delayTime = 1; // berapa lama antara masing-masing int charBreak = 3; // berapa lama menunggu setelah pesan selesai sebelum berulang. int resetTime = 20; int LED1 = 2; int LED2 = 3; int LED3 = 4; int LED4 = 5; int LED5 = 6; pengaturan batal () { pinMode (LED1, OUTPUT); pinMode (LED2, OUTPUT); pinMode (LED3, OUTPUT); pinMode (LED4, OUTPUT); pinMode (LED5, OUTPUT); } int a [] = {1, 6, 26, 6, 1}; int b [] = {31, 21, 21, 10, 0}; int c2 [] = {14, 17, 17, 10, 0}; int d [] = {31, 17, 17, 14, 0}; int e [] = {31, 21, 21, 17, 0}; int f [] = {31, 20, 20, 16, 0}; int g [] = {14, 17, 19, 10, 0}; int h [] = {31, 4, 4, 4, 31}; int i [] = {0, 17, 31, 17, 0}; int j [] = {0, 17, 30, 16, 0}; int k [] = {31, 4, 10, 17, 0}; int l [] = {31, 1, 1, 1, 0}; int m [] = {31, 12, 3, 12, 31}; int n [] = {31, 12, 3, 31, 0}; int o [] = {14, 17, 17, 14, 0}; int p [] = {31, 20, 20, 8, 0}; int q [] = {14, 17, 19, 14, 2}; int r [] = {31, 20, 22, 9, 0}; int s [] = {8, 21, 21, 2, 0}; int t [] = {16, 16, 31, 16, 16}; int u [] = {30, 1, 1, 30, 0}; int v [] = {24, 6, 1, 6, 24}; int w [] = {28, 3, 12, 3, 28}; int x [] = {17, 10, 4, 10, 17}; int y [] = {17, 10, 4, 8, 16}; int z [] = {19, 21, 21, 25, 0}; int eos [] = {0, 1, 0, 0, 0}; int excl [] = {0, 29, 0, 0, 0}; int ques [] = {8, 19, 20, 8, 0}; int space [] = {0, 0, 0, 0, 0}; batal displayLine (garis int) { int myline; myline = line; if (myline> = 16) {digitalWrite (LED1, HIGH); myline- = 16;} else {digitalWrite (LED1, LOW);} if (myline> = 8) {digitalWrite (LED2, HIGH); myline- = 8;} else {digitalWrite (LED2, LOW);} if (myline> = 4) {digitalWrite (LED3, HIGH); myline- = 4;} else {digitalWrite (LED3, LOW);} if (myline> = 2) {digitalWrite (LED4, HIGH); myline- = 2;} else {digitalWrite (LED4, LOW);} if (myline> = 1) {digitalWrite (LED5, HIGH); myline- = 1;} else {digitalWrite (LED5, LOW);} } membatalkan displayChar (char c) { if (c == 'a') {for (int i = 0; saya <5; i ++) {displayLine (a [i]); delay (delayTime);} displayLine (0);} if (c == 'b') {for (int i = 0; saya <5; i ++) {displayLine (b [i]); delay (delayTime);} displayLine (0);} if (c == 'c2') {for (int i = 0; saya <5; i ++) {displayLine (c2 [i]); delay (delayTime);} displayLine (0);} if (c == 'd') {for (int i = 0; saya <5; i ++) {displayLine (d [i]); delay (delayTime);} displayLine (0);} if (c == 'e') {for (int i = 0; saya <5; i ++) {displayLine (e [i]); delay (delayTime);} displayLine (0);} if (c == 'f') {for (int i = 0; saya <5; i ++) {displayLine (f [i]); delay (delayTime);} displayLine (0);} if (c == 'g') {for (int i = 0; saya <5; i ++) {displayLine (g [i]); delay (delayTime);} displayLine (0);} if (c == 'h') {for (int i = 0; saya <5; i ++) {displayLine (h [i]); delay (delayTime);} displayLine (0);} if (c == 'i') {for (int it = 0; itu <5; itu ++) {displayLine (i [it]); delay (delayTime);} displayLine (0);} if (c == 'j') {for (int i = 0; saya <5; i ++) {displayLine (j [i]); delay (delayTime);} displayLine (0);} if (c == 'k') {for (int i = 0; saya <5; i ++) {displayLine (k [i]); delay (delayTime);} displayLine (0);} if (c == 'l') {for (int i = 0; saya <5; i ++) {displayLine (l [i]); delay (delayTime);} displayLine (0);} if (c == 'm') {for (int i = 0; saya <5; i ++) {displayLine (m [i]); delay (delayTime);} displayLine (0);} if (c == 'n') {for (int i = 0; saya <5; i ++) {displayLine (n [i]); delay (delayTime);} displayLine (0);} if (c == 'o') {for (int i = 0; saya <5; i ++) {displayLine (o [i]); delay (delayTime);} displayLine (0);} if (c == 'p') {for (int i = 0; saya <5; i ++) {displayLine (p [i]); delay (delayTime);} displayLine (0);} if (c == 'q') {for (int i = 0; saya <5; i ++) {displayLine (q [i]); delay (delayTime);} displayLine (0);} if (c == 'r') {for (int i = 0; saya <5; i ++) {displayLine (r [i]); delay (delayTime);} displayLine (0);} if (c == 's') {for (int i = 0; saya <5; i ++) {displayLine (s [i]); delay (delayTime);} displayLine (0);} if (c == 't') {for (int i = 0; saya <5; i ++) {displayLine (t [i]); delay (delayTime);} displayLine (0);} if (c == 'u') {for (int i = 0; saya <5; i ++) {displayLine (u [i]); delay (delayTime);} displayLine (0);} if (c == 'v') {for (int i = 0; saya <5; i ++) {displayLine (v [i]); delay (delayTime);} displayLine (0);} if (c == 'w') {for (int i = 0; saya <5; i ++) {displayLine (w [i]); delay (delayTime);} displayLine (0);} if (c == 'x') {for (int i = 0; saya <5; i ++) {displayLine (x [i]); delay (delayTime);} displayLine (0);} if (c == 'y') {for (int i = 0; saya <5; i ++) {displayLine (y [i]); delay (delayTime);} displayLine (0);} if (c == 'z') {for (int i = 0; saya <5; i ++) {displayLine (z [i]); delay (delayTime);} displayLine (0);} if (c == '!') {for (int i = 0; saya <5; i ++) {displayLine (excl [i]); delay (delayTime);} displayLine (0);} if (c == '?') {for (int i = 0; saya <5; i ++) {displayLine (ques [i]); delay (delayTime);} displayLine (0);} if (c == '.') {for (int i = 0; saya <5; i ++) {displayLine (eos [i]); delay (delayTime);} displayLine (0);} if (c == '') {for (int i = 0; saya <5; i ++) {displayLine (spasi [i]); delay (delayTime);} displayLine (0);} delay (charBreak); } membatalkan displayString (karakter *) {for (int i = 0; i <= strlen (s); i ++) {displayChar (s [i]); } } void loop () {// Ubah teks di dalam sini untuk mengubah teks yang ditampilkan. // Pastikan untuk menyimpan tanda kurung dan tanda kutip. displayString (".. hello ..."); keterlambatan (40); }
Simpan sketsa dan unggah ke papan Anda. Jika Anda mendapatkan kesalahan, pastikan Anda memilih board dan port com yang benar. LED Anda akan mulai berkedip. Jika tidak, periksa semua koneksi Anda di papan tempat memotong roti Anda. Bilangan bulat yang dideklarasikan pada awal kode menentukan seberapa cepat teks ditampilkan. Semakin tinggi angkanya, semakin cepat Anda perlu melambaikan perangkat. Saya menemukan bahwa angka yang digunakan di sini berfungsi dengan baik.
Sekarang lakukan tes cepat. Putuskan sambungan Arduino Anda dari kabel USB, dan pasang dudukan baterai Anda ke pin VIN dan GND arduino Anda
Sekarang Anda dapat memindahkannya, hati-hati mencoba mengayunkan LED di depan Anda. Anda akan melihat beberapa huruf terbentuk di udara asalkan cukup gelap di sekitar Anda. Saya menemukan itu membantu mengatur ponsel saya untuk menangkap ini.
Berhasil! Sekarang untuk membuatnya sedikit lebih permanen.
Setrika siap!
Letakkan papan Arduino Anda, resistor, dan LED di protoboard Anda seperti ini:
Anda tentu saja dapat membuat tata letak sekompak yang Anda inginkan, selama rangkaian tetap sama. Pastikan Anda meninggalkan setidaknya satu baris kontak protoboard di setiap sisi Arduino Anda untuk komponen dan catu daya. Jika Anda seorang pemula dalam bidang elektronik, berikut adalah beberapa tips hebat untuk Anda Elektronik Pemula: 10 Keterampilan yang Harus Anda KetahuiBanyak dari kita bahkan belum pernah menyentuh besi solder - tetapi membuat sesuatu bisa sangat bermanfaat. Berikut ini sepuluh keterampilan elektronik DIY paling dasar untuk membantu Anda memulai. Baca lebih banyak .
Kami akan menyolder katoda LED bersama dalam satu garis untuk membuat landasan bersama, sama seperti yang kami lakukan ketika kami membuatnya Matriks LED Tingkatkan Karangan Bunga Natal Anda Dengan Motion LED Matrix yang DiaktifkanKarangan bunga Natal DIY ini menggunakan matriks Arduino dan LED untuk menghasilkan tampilan cahaya menakjubkan yang akan mengesankan teman dan keluarga Anda. Baca lebih banyak .
Lipat setiap katoda sehingga tumpang tindih dengan katoda berikutnya, dan patri mereka untuk membuat satu garis yang tidak terputus. Sekarang kita perlu menyolder anoda kita ke kaki resistor di sebelahnya. Saya menemukan cara termudah untuk melakukan ini adalah menyolder setiap kaki ke bantalan masing-masing, dan kemudian menempatkan Setrika di antara mereka untuk memanaskan kedua sendi, sebelum akhirnya menambahkan lebih banyak solder untuk menjembatani kesenjangan antara mereka.
Periksa setiap koneksi untuk melihat apakah sudah terpasang dengan kuat, dan kemudian gunakan pemotong kawat untuk memotong kelebihan kaki dari resistor dan LED.
Sekarang untuk mengulangi tugas yang sama, tetapi kali ini menghubungkan ujung resistor kita ke kaki Arduino. Ini adalah bagian yang paling rumit dari penyolderan. Setiap resistor banyak menempel pada pin Arduino sendiri atau rangkaian tidak akan bekerja seperti yang seharusnya. Saya membuat beberapa kesalahan di sini dan harus menggunakan sumbu solder untuk menghapus solder yang tidak diinginkan beberapa kali.
Setelah Anda membuat semua koneksi yang benar, periksa dua kali tidak ada yang tumpang tindih dengan tetangga mereka. Jika Anda memiliki akses ke multimeter di sini, Anda dapat menggunakan mode kontinuitas untuk memeriksa setiap pin hanya memiliki garis yang tidak terputus untuk resistor itu. Jika Anda baru saja mendapatkan multimeter, ada panduan memulai yang bagus dalam artikel ini. 7 Keterampilan DIY Tech untuk Mengajari Anak-Anak Anda, Karena Sekolah Tidak Akan Baca lebih banyak
Setelah Anda memeriksa setiap koneksi, potong panjang kelebihan dari kaki resistor
Menambahkan Daya
Sekarang jalankan sepotong kawat dari pin GND Arduino Anda ke lubang di sebelah tempat jalur katoda solder Anda berakhir, dan letakkan kabel hitam tempat baterai Anda di sebelahnya.
Sekarang solder kawat ke pin GND, cara yang sama kami lakukan dengan resistor, dan solder kedua kabel ke ujung garis katoda untuk menciptakan landasan bersama untuk rangkaian.
Terakhir, pasang kabel ke pin VIN arduino Anda, dan pasang sakelar di antara kabel itu dan paket baterai. Permintaan maaf untuk sakelar yang tertutup lem panas di foto ini, saya harus membongkar mesin yang sudah jadi untuk memotret tahap ini!
Setelah semuanya disolder bersama, masukkan baterai dan jentik sakelar. Selamat! Sirkuit selesai. Jika Anda tidak melihat apa pun yang menyala, periksa setiap sambungan solder dengan hati-hati untuk melihat di mana mungkin ada istirahat atau korsleting.
Lampiran
Sekarang kita membuatnya berfungsi, mari kita taruh di dalam kotak. Di sini kotak kardus yang dicat digunakan, meskipun Anda bisa membuat sesuatu yang lebih permanen menggunakan kotak yang dibeli di toko hobi, atau bahkan kotak tupperware lama. Untuk kredibilitas tambahan, Anda bahkan dapat mencetak 3D sendiri salah satu printer 3D murah ini. 5 Printer 3D Murah yang Sebenarnya Dapat Anda Beli Hari IniBeberapa tahun yang lalu, bahkan printer 3D termurah dengan harga mendekati $ 1.000 - sekarang Anda bisa mendapatkan printer 3D berkualitas dengan harga $ 400. Baca lebih banyak
Kurangi protoboard Anda menjadi ukuran dengan mencetaknya dan dengan hati-hati mengambil bagian yang tidak Anda butuhkan.
Tempatkan sirkuit Anda di dalam selungkup Anda, dan tandai di mana LED dan sakelar perlu ditusuk. Anda juga dapat menandai di mana konektor USB pada papan Arduino memenuhi tepian sehingga Anda dapat menyambungkannya untuk mengubah teks tanpa membuka kotak. Bor atau potong lubang yang Anda butuhkan ke dalam selungkup.
Sekarang tambahkan sedikit lem panas ke tepi LED dan tempelkan di tempatnya. Aku menempelkan sepon spons di bawah sirkuit sehingga itu akan duduk pas di dalam kotak. Pasang sakelar Anda ke kasing. Saya menggunakan lem panas, meskipun sekrup atau baut akan membuat koneksi yang lebih kuat. Anda juga bisa menempelkan tempat baterai ke bagian belakang papan sirkuit untuk menghentikannya bergerak di dalam saat item sedang digunakan, tetapi pastikan bahwa kontak logam pada kasing tidak menyentuh salah satu sambungan solder Anda!
Pekerjaan Dilakukan!
Tutup kandang Anda, dan Anda selesai! Untuk mengubah teks, pasang kabel USB Anda ke papan Arduino, dan ubah teks di dalam tanda kurung displayString dalam lingkaran metode. Temukan tempat yang gelap, dan bersenang-senang!
Sudahkah Anda membuat mesin POV sebelumnya dan tahu cara meningkatkan desainnya? Apakah Anda berencana membangunnya sendiri? Ceritakan tentang proyek Anda di komentar di bawah, kami ingin mendengarnya!
Ian Buckley adalah jurnalis lepas, musisi, pemain dan produser video yang tinggal di Berlin, Jerman. Ketika dia tidak menulis atau di atas panggung, dia mengutak-atik elektronik atau kode DIY dengan harapan menjadi ilmuwan gila.