Daftar Isi:
2025 Pengarang: John Day | [email protected]. Terakhir diubah: 2025-01-13 06:57
Saya ingin membangun semacam lampu halaman interaktif untuk halaman belakang saya. Idenya adalah, ketika seseorang berjalan satu arah, itu akan memicu animasi ke arah Anda berjalan. Saya mulai dengan Dollar General $1,00 solar lights
Langkah 1: Usus Lampu Solor
Langkah pertama adalah mematikan lampu untuk memberi jalan bagi hal-hal yang lebih menyenangkan. Saya mulai dengan memotong led asli dan baterai. Pastikan untuk menyimpan bagian-bagian ini karena akan berguna dalam proyek lain. Saya juga melepas kubah krom yang ada di bagian bawah lampu surya dan menempelkannya ke atas seperti yang terlihat di foto.
Langkah 2: Memasang Lampu yang Lebih Baik
untuk lednya saya pakai waterproof ws2811b yang bisa dilihat disini
www.ebay.com/itm/50-X-12mm-LED-Module-RGB-…
Saya awalnya berencana untuk menempatkan sensor PIR di dalam lampu surya. tapi ini terbukti menjadi masalah karena sensor pada dasarnya tidak bisa melihat melewati plastik. itu harus memiliki semacam kepatutan penyaringan UV. jadi saya memilih sesuatu yang lebih seperti ini
www.thingiverse.com/thing:2590216
Langkah 3: Pengkodean
jika Anda ingin membuat lampu tidak menggunakan sensor atau hanya berjalan sepanjang waktu cari saja tempat yang dikomentari sebagai "mengubah status bendera" dan atur ke eter 1 atau 0 saya akan menambahkan lebih banyak foto ketika saya menyelesaikan ini sendiri jadi ini masih dalam proses tetapi saya pikir itu terlalu rapi untuk tidak langsung dibagikan. Terima kasih telah melihat
batalkan pengaturan() {
// letakkan kode setup Anda di sini, untuk dijalankan sekali: FastLED.addLeds(leds, NUM_LEDS); Serial.begin(9600); pinMode(tombolPin1, INPUT); pinMode(tombolPin2, INPUT); }
lingkaran kosong() {
Serial.println(FlagState);
if(FlagState == 0){ ForwardLeds(); } if(FlagState == 1){ RevLeds(); } if(FlagState == 2){ Menunggu(); } }
void TeruskanLeds(){
FirstLed = -1; Led Terakhir = 16; for(int i=0; i < 8; i++){ LastLed--; FirstLed++; leds[LastLed] = CRGB::Putih; leds[FirstLed] = CRGB::Putih; penundaan (750); FastLED.show(); Serial.print("Pass putih"); Serial.print (i); Serial.println ("dari 8"); } FirstLed = -1; Led Terakhir = 16; for(int i=0; i < 8; i++){ LastLed--; FirstLed++; leds[LastLed] = CRGB::Biru; leds[FirstLed] = CRGB::Biru; penundaan (250); FastLED.show(); Serial.print("Pass Biru"); Serial.print (i); Serial.println ("dari 8"); } FirstLed = -1; Led Terakhir = 16; for(int i=0; i < 8; i++){ LastLed--; FirstLed++; leds[LastLed] = CRGB::Ungu; leds[FirstLed] = CRGB::Ungu; penundaan (250); FastLED.show(); Serial.print("Pass Merah "); Serial.print (i); Serial.println ("dari 8"); } FirstLed = -1; Led Terakhir = 16; for(int i=0; i < 8; i++){ LastLed--; FirstLed++; leds[LastLed] = CRGB::Hitam; leds[FirstLed] = CRGB::Hitam; penundaan (250); FastLED.show(); Serial.print("Mematikan led"); Serial.print (i); Serial.println ("dari 8"); } Status Bendera = 2; // mengubah status flag } void RevLeds(){ Serial.println("di terbalik"); FirstLed = 8; Led Terakhir = 7; for(int i=0; i < 8; i++){ LastLed++; FirstLed--; leds[LastLed] = CRGB::Putih; leds[FirstLed] = CRGB::Putih; penundaan (750); FastLED.show(); Serial.print("Kartu putih"); Serial.print (i); Serial.println ("dari 8"); } FirstLed = 8; Led Terakhir = 7; for(int i=0; i < 8; i++){ LastLed++; FirstLed--; leds[LastLed] = CRGB::Biru; leds[FirstLed] = CRGB::Biru; penundaan (250); FastLED.show(); Serial.print("Kartu biru"); Serial.print (i); Serial.println ("dari 8"); } FirstLed = 8; Led Terakhir = 7; for(int i=0; i < 8; i++){ LastLed++; FirstLed--; leds[LastLed] = CRGB::Ungu; leds[FirstLed] = CRGB::Ungu; penundaan (250); FastLED.show(); Serial.print("Kartu merah"); Serial.print (i); Serial.println ("dari 8"); }
FirstLed = 8;
Led Terakhir = 7; for(int i=0; i < 8; i++){ LastLed++; FirstLed--; leds[LastLed] = CRGB::Hitam; leds[FirstLed] = CRGB::Hitam; penundaan (250); FastLED.show(); Serial.print("Mematikan Led"); Serial.print (i); Serial.println ("dari 8"); } Status Bendera = 2; //mengubah status flag } void Waiting(){ buttonState1 = digitalRead(buttonPin1); buttonState2 = digitalRead(buttonPin2); if(buttonState1 == HIGH){ Serial.println("maju dipicu"); Status Bendera = 0; } else if(buttonState2 == HIGH){ Serial.println("Rev dipicu"); Status Bendera = 1; } Serial.println("Perulangan Selesai menunggu"); }