Sadržaj:
2025 Autor: John Day | [email protected]. Zadnja izmjena: 2025-01-13 06:57
Cilj ovog projekta je napraviti DJ kacigu sa LED diodama reaktivnom na muziku za show i wow faktor. Koristimo adresabilnu LED traku s Amazon.com, kao i kacigu za motocikle, Arduino uno i žicu.
Supplies
Materijali uključuju:
- Adresibilna LED traka
- Kaciga za motocikle
- Arduino Uno
- Žice i lemilica
Korak 1: Uključivanje LED dioda u zvuk
Za prvi korak testirat ćemo LED traku da reagira na zvuk, koristimo zvučnu ploču iz Sparkfuna i povezujemo je s Arduinom pomoću matične ploče i žice. Testirajući sa Arduino softverom, dobivamo dva očitanja koja možemo koristiti. Amplituda zvuka koji dolazi iz "Envelope" porta i binarno 1 /0 očitanje iz "gate" porta. Koristite ove varijable za mapiranje na adresibilnu LED traku, tada je "gate" na jednom, LED diode prikazuju određenu boju, kada je omotnica iznad određene razine, prikazuju određenu boju. Bit će dostavljen cijeli kod.
Korak 2: Izrežite i lemite LED diode u obliku kacige
Na svom projektu sam odlučio dodati LED diode u kacigu na X način s dodatnim trokutima izvana, planiram poboljšati taj dizajn s načinom na koji muzika svira. Dakle, ovaj korak se odnosi na rezanje LED traka na željenu dužinu i njihovo lemljenje zajedno na oznakama za rezanje kako biste napravili uglove. Morao sam to učiniti 10 -ak puta i oduzima puno vremena, posebno kada se radi o malim žicama. Ovo je napredak u ovom koraku
Korak 3: Ožičite i testirajte LED diode na kacigi
U ovom koraku povezao sam i testirao LED diode na arduinu, zvučnu ploču i izrezane LED diode kako bih se uvjerio da rezovi i lemljenje rade ispravno
Korak 4: Besplatna elektronika s pločice
U ovom koraku fokusirao sam se na skidanje sve elektronike s ploče. Zalemio sam sve žice koje je potrebno lemiti i produžio žice kacige tako da budete u mogućnosti nositi kacigu pričvršćenu na Arduino. Najvažnija stvar koju nisam mogao shvatiti je vanjsko napajanje, pokušao sam s baterijama u različitim konfiguracijama, ali ništa mi nije dalo rezultat koji mi je trebao, neki bi svjetla poludjeli, a neki bi bili različitih boja. Nažalost, to može biti posljedica mog poznavanja sklopova, ali odlučio sam zadržati snagu za Arduino koja dolazi s ploče računala. Zvučna ploča se napaja iz baterije i to dobro radi
Korak 5: Konačna konfiguracija
za ovaj posljednji korak, pročitao sam vrijednosti koje dolaze sa zvučne ploče i izmijenio kôd tako da odgovara novim vrijednostima koje su promijenile sve što je skinuto s ploče. Zalijepila sam LED trake na kacigu gdje su prije bile zalijepljene i na kraju sam ih ponovo testirala.
Korak 6: Kod (Arduino)
// NeoPixel Ring jednostavna skica (c) 2013 Shae Erisson
// Objavljeno pod licencom GPLv3 kako bi odgovaralo ostatku
// Adafruit NeoPixel biblioteka
#include
#ifdef _AVR_ #include // Potrebno za 16 MHz Adafruit Trinket #endif
// Koji je pin na Arduinu spojen na NeoPixels?
#define PIN 3 // Na Trinket -u ili Gemmi predložite promjenu na 1
// Koliko je NeoPixela priključeno na Arduino?
#define NUMPIXELS 166 // Popularna NeoPixel veličina prstena
Adafruit_NeoPixel pikseli (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500 // Vrijeme (u milisekundama) za pauziranje između piksela
void setup () {
#if definirano (_ AVR_ATtiny85_) && (F_CPU == 16000000)
clock_prescale_set (clock_div_1); #endif // KRAJ specifičnog koda za Trinket.
pixels.begin (); // INICIALIZE NeoPixel strip objekt (OBAVEZNO)
Serial.begin (9600); }
void loop () {{100} {101}
int sensorValue = analogRead (A1);
int sensorValue2 = digitalRead (7); Serial.println (sensorValue); // kašnjenje (5); //pixels.clear (); // Sve boje piksela postavite na "isključeno"
if (sensorValue2 == 1) {
za (int i = 0; i <28; i ++) {piksela.setPixelColor (i, 15, 0, 50);
}
za (int i = 48; i <81; i ++) {piksela.setPixelColor (i, 15, 0, 50);
}
za (int i = 102; i <129; i ++) {piksela.setPixelColor (i, 15, 0, 50);
}
za (int i = 148; i <166; i ++) {piksela.setPixelColor (i, 15, 0, 50); }} ////////////////////////////// else {for (int i = 0; i <28; i ++) {pixels.setPixelColor (i, 0, 0, 0);
}
za (int i = 48; i <81; i ++) {piksela.setPixelColor (i, 0, 0, 0);
}
za (int i = 102; i <129; i ++) {piksela.setPixelColor (i, 0, 0, 0);
}
za (int i = 148; i <166; i ++) {piksela.setPixelColor (i, 0, 0, 0); }} ////////////////////////////// if (sensorValue == 3 || sensorValue == 2) {for (int i = 29; i <47; i ++) {pixels.setPixelColor (i, 255, 0, 0);
}
za (int i = 82; i <101; i ++) {piksela.setPixelColor (i, 255, 0, 0);
}
za (int i = 130; i <148; i ++) {piksela.setPixelColor (i, 255, 0, 0);
} pixels.show (); } if (sensorValue> 3) {for (int i = 29; i <47; i ++) {pixels.setPixelColor (i, 0, 155, 155);
}
za (int i = 82; i <101; i ++) {piksela.setPixelColor (i, 0, 155, 155);
}
za (int i = 130; i <148; i ++) {piksela.setPixelColor (i, 0, 155, 155);
}
pixels.show (); } else {for (int i = 29; i <47; i ++) {pixels.setPixelColor (i, 0, 0, 0);
}
za (int i = 82; i <101; i ++) {piksela.setPixelColor (i, 0, 0, 0);
}
za (int i = 130; i <148; i ++) {piksela.setPixelColor (i, 0, 0, 0);} piksela.show (); }}