Isi kandungan:
- Langkah 1: Pengawal
- Langkah 2: Membungkus Pokok
- Langkah 3: Jangan Lupakan Bintang di Atas
- Langkah 4: Mencuba
Video: Pokok Spiral LED: 4 Langkah (dengan Gambar)
2024 Pengarang: John Day | [email protected]. Diubah suai terakhir: 2024-01-30 11:07
Saya suka semua jenis jalur LED. Saya membuat cahaya pelangi yang bagus dengan mereka. Malah yang tidak dapat dihubungi berguna. Saya telah membuat lampu luar payung pasar yang terang dengan melekatkannya pada tulang rusuk unbrella sehingga ketika pokok spiral saya meletup, saya memutuskan untuk membungkus panjang jalur yang dipimpin di sekelilingnya.
Langkah 1: Pengawal
Saya memutuskan untuk menggunakan led RGB yang tidak dapat diatasi. Ini bermakna saya boleh mempunyai kesan yang diprogramkan tetapi semua led berubah warna secara serentak. Ini juga bermaksud pengawal diperlukan. Saya mungkin menggunakan arduino uno dan melakukan ujian awal menggunakan perisai RGB tetapi akhirnya menggunakan papan tunggal khusus dengan cip Atmega328 yang kosong. Hanya perlu menukar programmer sasaran dan memprogramkan chip secara langsung.
Saya mempunyai banyak papan yang tersisa dari projek lampu yang lain. Jangan ragu untuk menggunakan alat kawalan dalam talian yang murah seperti yang saya pakai pada payung saya sebagai gantinya.
Saya akhirnya menggunakan demo crossfade yang perlahan sebagai asas pokok.
/ ** Kod untuk 3 LED silang, merah, hijau dan biru (RGB) * Untuk membuat pudar, anda perlu melakukan dua perkara: * 1. Huraikan warna yang ingin anda paparkan * 2. Senaraikan pesanan yang anda mahukan mereka memudar * * MENJELASKAN WARNA: * Warna hanyalah susunan tiga peratus, 0-100, * mengawal LED merah, hijau dan biru * * Merah adalah LED merah sepenuhnya, biru dan hijau mati * int merah = {100, 0, 0} * Dim red putih adalah ketiga LED pada 30% * int dimWhite = {30, 30, 30} * dll * * Beberapa warna biasa disediakan di bawah, atau buat warna anda sendiri * * DAFTAR PESANAN: * Di bahagian utama program, anda perlu menyenaraikan urutan * yang anda mahu warna muncul, misalnya * crossFade (merah); * crossFade (hijau); * crossFade (biru); * * Warna-warna itu akan muncul dalam urutan itu, memudar dari * satu warna dan ke warna berikutnya * * Selain itu, ada 5 tetapan pilihan yang dapat Anda sesuaikan: * 1. Warna awal diatur ke hitam (sehingga warna pertama memudar dalam), tetapi * anda boleh menetapkan warna awal menjadi warna lain * 2. Gelung dalaman berjalan selama 1020 interaksi; pemboleh ubah 'tunggu' * menetapkan jangka masa jangka masa satu crossfade. Secara teori, * 'tunggu' 10 ms harus membuat crossFade ~ 10 saat. Dalam praktik *, fungsi lain yang dilakukan kod ini perlahan * hingga ~ 11 saat di papan saya. YMMV. * 3. Sekiranya 'ulangan' diatur ke 0, program akan dilambung selama-lamanya. * jika diatur ke angka, ia akan mengulangi bilangan kali, * kemudian berhenti pada warna terakhir dalam urutan. (Tetapkan 'kembali' ke 1, * dan buat warna terakhir menjadi hitam jika anda mahu ia pudar di akhir.) * 4. Terdapat pemboleh ubah 'tahan' pilihan, yang melewati program * untuk 'tahan' milisaat ketika warna selesai, * tetapi sebelum warna seterusnya bermula. * 5. Tetapkan bendera DEBUG ke 1 jika anda mahu output debug * dihantar ke monitor bersiri. * * Program dalaman tidak rumit, tetapi * agak cerewet - cara kerja dalaman dijelaskan * di bawah gelung utama. * * April 2007, Clay Shirky *
/ Pengeluaran
int grnPin = 9; // LED hijau, disambungkan ke pin digital 10 int redPin = 10; // LED Merah, disambungkan ke pin digital 9 int bluPin = 11; // LED biru, disambungkan ke pin digital 11
// Susunan warna
int hitam [3] = {0, 0, 0}; int putih [3] = {100, 100, 100}; int merah [3] = {100, 0, 0}; int hijau [3] = {0, 100, 0}; int biru [3] = {0, 0, 100}; int kuning [3] = {40, 95, 0}; int dimWhite [3] = {30, 30, 30}; // dan lain-lain.
// Tetapkan warna awal
int redVal = hitam [0]; int grnVal = hitam [1]; int bluVal = hitam [2];
int menunggu = 3; // Kelewatan crossFade dalaman 10ms; meningkat untuk pudar yang lebih perlahan
int tahan = 0; // Tahan pilihan apabila warna selesai, sebelum crossFade int DEBUG = 0 seterusnya; // Kaunter DEBUG; jika ditetapkan ke 1, akan menulis kembali nilai melalui int int loopCount = 60; // Berapa kerapkah laporan DEBUG? ulangan int = 0; // Berapa kali kita mesti melancarkan sebelum berhenti? (0 tanpa henti) int j = 0; // Loop counter untuk diulang
// Memulakan pemboleh ubah warna
int prevR = redVal; int prevG = grnVal; int prevB = bluVal;
// Siapkan output LED
batal persediaan () {pinMode (redPin, OUTPUT); // menetapkan pin sebagai output pinMode (grnPin, OUTPUT); pinMode (bluPin, OUTPUT);
if (DEBUG) {// Sekiranya kita ingin melihat nilai untuk debug…
Serial.begin (9600); // … sediakan siri ouput}}
// Program utama: senaraikan urutan crossfades
gelung kosong () {crossFade (merah); crossFade (hijau); crossFade (biru); crossFade (kuning);
jika (ulangi) {// Adakah kita mengulangi sebilangan kali yang terbatas?
j + = 1; if (j> = ulangi) {// Adakah kita masih ada? jalan keluar (j); // Jika ya, berhenti. }}}
/ * DI BAWAH LINE INI ADALAH MATI - ANDA TIDAK PERLU MENGUBAH INI UNTUK DASAR
* * Program ini berfungsi seperti ini: * Bayangkan crossfade yang menggerakkan LED merah dari 0-10, * hijau dari 0-5, dan biru dari 10 hingga 7, dalam * sepuluh langkah. * Kami ingin mengira 10 langkah dan meningkatkan atau * menurunkan nilai warna dengan kenaikan yang sama rata. * Bayangkan a + menunjukkan kenaikan nilai dengan 1, dan - * sama dengan menurunkannya. Pudar 10 langkah kami akan kelihatan seperti: * * 1 2 3 4 5 6 7 8 9 10 * R + + + + + + + + + + * G + + + + + * B - - - * * Merah naik dari 0 hingga 10 dalam sepuluh langkah, hijau dari * 0-5 dalam 5 langkah, dan biru jatuh dari 10 hingga 7 dalam tiga langkah. * * Dalam program sebenarnya, peratusan warna ditukar menjadi * 0-255 nilai, dan ada 1020 langkah (255 * 4). * * Untuk mengetahui seberapa besar langkah yang harus ada di antara satu-atau-ke-bawah dari salah satu nilai LED, kami memanggil calculepep (), * yang mengira jurang mutlak antara nilai-nilai awal dan akhir, * dan kemudian membahagikan jurang itu dengan 1020 untuk menentukan ukuran langkah * antara penyesuaian nilai. * /
int calculateStep (int prevValue, int endValue) {
int step = endValue - prevValue; // Apakah jurang keseluruhan? if (langkah) {// Sekiranya bukan sifar, langkah = 1020 / langkah; // bahagikan dengan 1020} langkah kembali; }
/ * Fungsi seterusnya adalah calculVal. Apabila nilai gelung, i, * mencapai ukuran langkah yang sesuai untuk salah satu warna *, ia menambah atau menurunkan nilai warna itu dengan 1. * (R, G, dan B masing-masing dikira secara berasingan.) * /
int calculateVal (langkah int, int val, int i) {
if ((step) && i% step == 0) {// Sekiranya langkah tidak sifar dan waktunya untuk menukar nilai, jika (langkah> 0) {// tambah nilai jika langkah positif… val + = 1; } lain jika (langkah 255) {val = 255; } lain jika (val <0) {val = 0; } pulangan val; }
/ * crossFade () menukar warna peratusan menjadi a
* Julat 0-255, kemudian gelung 1020 kali, periksa untuk melihat apakah * nilainya perlu dikemas kini setiap kali, kemudian tulis * nilai warna ke pin yang betul. * /
kekosongan crossFade (warna int [3]) {
// Tukar ke 0-255 int R = (warna [0] * 255) / 100; int G = (warna [1] * 255) / 100; int B = (warna [2] * 255) / 100;
int stepR = hitungLangkah (prevR, R);
int stepG = hitungLangkah (prevG, G); int stepB = hitungLangkah (prevB, B);
untuk (int i = 0; i <= 1020; i ++) {redVal = calculVal (stepR, redVal, i); grnVal = calculVal (stepG, grnVal, i); bluVal = calculVal (stepB, bluVal, i);
analogWrite (redPin, redVal); // Tuliskan nilai semasa ke pin LED
analogWrite (grnPin, grnVal); analogWrite (bluPin, bluVal);
kelewatan (tunggu); // Jeda untuk 'tunggu' milisaat sebelum meneruskan gelung
if (DEBUG) {// Jika kita ingin output bersiri, cetak di
if (i == 0 atau i% loopCount == 0) {// permulaan, dan setiap loopCount kali Serial.print ("Loop / RGB: #"); Cetakan bersiri (i); Cetakan bersiri ("|"); Serial.print (redVal); Cetakan bersiri ("/"); Serial.print (grnVal); Cetakan bersiri ("/"); Serial.println (bluVal); } DEBUG + = 1; }} // Kemas kini nilai semasa untuk gelung seterusnya prevR = redVal; prevG = grnVal; prevB = bluVal; kelewatan (tahan); // Jeda untuk pilihan 'tunggu' milisaat sebelum meneruskan gelung}
Langkah 2: Membungkus Pokok
Saya menggunakan jalur kalis air kerana ini akan berada di luar rumah. Mereka melekat sendiri tetapi saya dengan cepat menindaklanjuti ikatan wayar untuk memastikan mereka tetap bertahan. Hack yang mudah dan senang. Keupayaan daya umpan jalur menjadikannya mudah untuk memasukkan bekalan kuasa ke bahagian bawah dan mengeluarkan kuasa dari bahagian atas ke bintang.
Langkah 3: Jangan Lupakan Bintang di Atas
Untuk bintang saya menggunakan sepasang cip 10W untuk mendapat perhatian. Saya menyoldernya ke kepingan tembaga sebagai heatsink. Saya boleh menggunakan lebih banyak jalur kerana masih ada sedikit baki.
Langkah 4: Mencuba
Percubaan pertama mempunyai kelajuan terlalu cepat….
Setelah saya menenangkannya, ia kelihatan sangat bagus.
Disyorkan:
Pokok Kawat LED RGB: 9 Langkah (dengan Gambar)
Pokok Kawat RGB-LED: Saya ingin berkongsi dengan anda pokok wayar RGB-LED saya. Pada suatu petang saya teringat membina pokok kawat semasa kecil. Pada masa ini saya sangat gemar membina projek elektronik kecil dengan pengawal mikro yang serupa dengan arduino, terutamanya dengan LED. Oleh itu, saya berfikir sendiri
Chaos Spiral (Hypnosis Spiral): 5 Langkah (dengan Gambar)
Chaos Spiral (Hypnosis Spiral): Anda juga boleh mencetak objek 3D ini tetapi pastikan untuk tidak mencetak magnet dan galas :) akan memerlukan yang asli 3D yang dicetak tidak akan berfungsi. ? Inilah perkara yang perlu dikumpulkan sebelum anda memulakan
Pokok Krismas Dicetak 3D Embedded LED: 10 Langkah (dengan Gambar)
Pohon Krismas Cetak 3D Embedded LED: Ini adalah pokok Krismas bercetak 3D dengan LED yang boleh disisipkan di dalamnya. Oleh itu, adalah mungkin untuk memprogram LED untuk kesan cahaya yang bagus dan menggunakan struktur bercetak 3D sebagai penyebar. Pokok dipisahkan dalam 4 peringkat dan elemen asas (pokok
Pokok Krismas Spiral Led: 4 Langkah (dengan Gambar)
Pokok Krismas Spiral Led: Hai kawan-kawan Dalam ini, kita akan membuat pokok Krismas yang dipimpin spiral
Pokok Krismas LED Dengan Projektor Video (Rasp Pi): 7 Langkah (dengan Gambar)
Pokok Krismas LED Dengan Projektor Video (Rasp Pi): Melihat apa yang disusun oleh beberapa orang “ di bahagian atas ” Pameran LED Krismas di luar rumah, saya ingin melihat apa yang mungkin untuk mengumpulkan sistem yang sama untuk pokok Krismas di dalam rumah. Dalam Instructables terdahulu, saya