Turinys:
- Prekės
- 1 veiksmas: priverskite šviesos diodus reaguoti į garsą
- 2 veiksmas: supjaustykite ir lituokite šviesos diodus pagal šalmą
- 3 žingsnis: prijunkite ir išbandykite šalmo šviesos diodus
- 4 žingsnis: Nemokama elektronika iš „Breadboard“
- 5 žingsnis: galutinė konfigūracija
- 6 žingsnis: kodas („Arduino“)
2025 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2025-01-13 06:57
Šio projekto tikslas yra padaryti DJ šalmą su šviesos diodais, reaguojančiais į muziką, skirtą šou ir „wow factor“. Mes naudojame adresuojamą LED juostą iš „Amazon.com“, taip pat motociklo šalmą, „Arduino uno“ir vielą.
Prekės
Medžiagos apima:
- Adresuojama LED juostelė
- Motociklų šalmas
- Arduino Uno
- Laidai ir lituoklis
1 veiksmas: priverskite šviesos diodus reaguoti į garsą
Pirmajame etape mes išbandysime šviesos diodų juostą, kad reaguotų į garsą, mes naudojame „Sparkfun“garso plokštę ir prijungiame ją prie „Arduino“, naudodami duonos lentą ir laidą. Bandydami su „Arduino“programine įranga, gauname du rodmenis, kuriuos galime naudoti. Garso, sklindančio iš „Envelope“prievado, amplitudė ir dvejetainis 1 /0 rodinys iš „gate“prievado. Naudokite šiuos kintamuosius, kad susietumėte adresuotą LED juostą, tada „vartai“yra viename, šviesos diodai rodo tam tikrą spalvą, kai vokas yra virš tam tikro lygio, rodo tam tikrą spalvą. Bus pateiktas visas kodas.
2 veiksmas: supjaustykite ir lituokite šviesos diodus pagal šalmą
Savo projekte nusprendžiau pridėti šviesos diodus prie šalmo X būdu su papildomais trikampiais išorėje, planuoju, kad šis dizainas geriau veiktų su muzika. Taigi šis žingsnis yra susijęs su LED juostelių pjovimu iki norimo ilgio ir litavimo kartu su pjūvio žymėmis, kad būtų padaryti kampai. Aš turėjau tai padaryti maždaug 10 kartų, ir tai užima daug laiko, ypač kai dirbama su mažais laidais. Tai pažanga šiame žingsnyje
3 žingsnis: prijunkite ir išbandykite šalmo šviesos diodus
Šiame etape aš prijungiau ir išbandžiau šviesos diodus prie arduino, garso plokštės ir supjaustytų šviesos diodų, kad įsitikinčiau, ar pjūviai ir litavimas veikia tinkamai
4 žingsnis: Nemokama elektronika iš „Breadboard“
Šiame žingsnyje aš sutelkiau dėmesį į tai, kad visa elektronika būtų pašalinta iš duonos lentos. Lituodavau visus laidus, kuriuos reikėjo lituoti, ir pratęsiau šalmo laidus, kad jie būtų ilgi, kad galėtumėte dėvėti šalmą, pritvirtintą prie „Arduino“. Svarbiausias dalykas, kurio negalėjau išsiaiškinti, buvo išorinė energija, išbandžiau skirtingų konfigūracijų baterijas, tačiau niekas nedavė man reikiamo rezultato, kai kurios lemputes išprotėjo, o kitos - skirtingų spalvų. Deja, tai gali būti dėl mano žinių apie grandines, bet aš nusprendžiau išlaikyti „Arduino“maitinimą iš kompiuterio plokštės. Garso plokštė maitinama iš akumuliatoriaus ir tai veikia gerai
5 žingsnis: galutinė konfigūracija
šiam paskutiniam žingsniui perskaičiau iš garso plokštės gautas vertes ir pakeičiau kodą, kad jis atitiktų naujas reikšmes, kurios pakeitė vieną, viskas buvo nuimta nuo lentos. Aš priklijavau šviesos diodų juosteles prie šalmo, kur jos nebuvo užklijuotos, ir galiausiai vėl išbandžiau.
6 žingsnis: kodas („Arduino“)
// „NeoPixel Ring“paprastas eskizas (c) 2013 m. Shae Erisson
// Išleista pagal GPLv3 licenciją, kad atitiktų likusią
// „Adafruit NeoPixel“biblioteka
#įtraukti
#ifdef _AVR_ #include // Reikalingas 16 MHz „Adafruit“niekučiui #endif
// Kuris „Arduino“kaištis yra prijungtas prie „NeoPixels“?
#define PIN 3 // „Trinket“ar „Gemma“pasiūlykite tai pakeisti į 1
// Kiek „NeoPixels“pridedama prie „Arduino“?
#define NUMPIXELS 166 // Populiarus „NeoPixel“žiedo dydis
„Adafruit_NeoPixel“pikseliai (NUMPIXELS, PIN, NEO_GRB + NEO_KHZ800);
#define DELAYVAL 500 // Laikas (milisekundėmis), kai reikia padaryti pertrauką tarp pikselių
void setup () {
#if apibrėžta (_ AVR_ATtiny85_) && (F_CPU == 16000000)
clock_prescale_set (clock_div_1); #endif // „Fingeret“specifinio kodo pabaiga.
pixels.begin (); // INICIALIZUOTI „NeoPixel“juostelės objektą (BŪTINA)
Serial.begin (9600); }
void loop () {
int sensorValue = analogRead (A1);
int sensorValue2 = digitalRead (7); Serial.println (sensorValue); // uždelsimas (5); //pixels.clear (); // Nustatykite visas pikselių spalvas kaip „išjungtas“
if (sensorValue2 == 1) {
(int i = 0; i <28; i ++) {pixels.setPixelColor (i, 15, 0, 50);
}
(int i = 48; i <81; i ++) {pixels.setPixelColor (i, 15, 0, 50);
}
(int i = 102; i <129; i ++) {pixels.setPixelColor (i, 15, 0, 50);
}
(int i = 148; i <166; i ++) {pixels.setPixelColor (i, 15, 0, 50); }} //////////////////////////////????????????????????????????????????????????? i, 0, 0, 0);
}
(int i = 48; i <81; i ++) {pixels.setPixelColor (i, 0, 0, 0);
}
(int i = 102; i <129; i ++) {pixels.setPixelColor (i, 0, 0, 0);
}
(int i = 148; i <166; i ++) {pixels.setPixelColor (i, 0, 0, 0); }} //////////////////////////// jei (sensorValue == 3 || sensorValue == 2) {for (int i = 29; i <47; i ++) {pixels.setPixelColor (i, 255, 0, 0);
}
(int i = 82; i <101; i ++) {pixels.setPixelColor (i, 255, 0, 0);
}
(int i = 130; i <148; i ++) {pixels.setPixelColor (i, 255, 0, 0);
} pixels.show (); } if (sensorValue> 3) {for (int i = 29; i <47; i ++) {pixels.setPixelColor (i, 0, 155, 155);
}
(int i = 82; i <101; i ++) {pixels.setPixelColor (i, 0, 155, 155);
}
(int i = 130; i <148; i ++) {pixels.setPixelColor (i, 0, 155, 155);
}
pixels.show (); } else {for (int i = 29; i <47; i ++) {pixels.setPixelColor (i, 0, 0, 0);
}
(int i = 82; i <101; i ++) {pixels.setPixelColor (i, 0, 0, 0);
}
(int i = 130; i <148; i ++) {pixels.setPixelColor (i, 0, 0, 0);} pixels.show (); }}