Sisukord:
- Samm: ehituse planeerimine:
- 2. samm: käsitsi valmistatud varjund
- 3. samm: käsitsi valmistatud varjund
- Samm 4: Elektriahel:
- Samm: kood:
- 6. toiming: hankige see iseseisvaks PonyProgi põletatud alglaaduriga
- Samm 7: Nii et see on minu Arduino Moodlamp
Video: Käsitsi valmistatud Arduino toitega RGB-meeleolulamp: 7 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:50
See juhend on jagatud viieks osaks:- ehituse kavandamine (samm 1)- käsitsi valmistatud varjund (samm 2+3)- elektrooniline vooluahel 3W LED-ide juhtimiseks ATmega8 kontrolleriga (samm 4)- kood (samm 5)- kuidas seda saada eraldiseisev (käivitage Arduino alglaadur PonyProgiga ja põletage visand) (6. samm) peagi tulemas Vid: mõned muljed
de.youtube.com/watch?v=apZ9NpaUG84 Pic1: The Moodlamp Pic2: võimas 3 W LED
Samm: ehituse planeerimine:
Mulle meeldib teha kontseptsioon ainult ühel paberilehel. Esimesel lehel näete mõnda varajast ideed. Valisin paremas alanurgas kujunduse. Teisel lehel on mõned ehituse üksikasjad. Mõõtmised on eksperimentaalsed, nagu iga kord, aga minu jaoks sobivad;-) Minu riistvara mõtted olid järgmised:- Kas ma saan materjalidega hakkama?- Kas valgus särab? läbi varju? - Milline osa peaks sellel olema? - Kui palju nuppe ja potte vajan lihtsa liidese jaoks? Minu tarkvara mõtted olid järgmised: kui palju erinevaid funktsioone peaks lambil olema? - Automaatne RGB tuhmumine muutuva kiirusega - Käsitsi värvide reguleerimine - Valge, reguleeritava heledusega
2. samm: käsitsi valmistatud varjund
Materjalide kogumine: Varjund: leidsin poest 3 jala x 3 jala lehe 30 milliliitrist plastikust (joonis 1-3). Lõika see terava noaga. Ma hõõrdusin plastiku liivapaberiga (joonis 4-6). Hankige sile silinder. Pärast õigete aukude puurimist keerasin selle kõik kokku (pilt 7-8). Paigaldage plastvarjud keermestatud messingist tugedele. See näeb kenasti välja ja seda on üsna lihtne kätte saada ja käsitseda. Ma puurisin ja koputasin auke, et need sobiksid 1/8 keermestatud ribaga (Pic9-10). Vahepeal tegin 3W LED-ide jahutamiseks ja tugeva aluse jaoks radiaatori. Võllilt mitte liiga paljude toonide saamiseks ehitan keevitusvardast väikese puuri, mille peal on M8 mutter (Pic12). Lõpetuseks panin kõik kokku. Väikesed kruvid ja mutrid olid natuke keerulised, kuid 30 minutit hiljem sain selle tehtud.
3. samm: käsitsi valmistatud varjund
Alus: kettad asetati treipinki, et see oleks sile ja ümmargune. Hiljem määrdasin selle mahagonipuu peitsiga, nii et mänd näeks hea välja. Mis edasi?!? Otsustasin teha sama baasi varjundina mattplastist ja taustvalgustusega RGB microLED (Pic5) abil. Nupud: tegin nupu mahagonitükist ja nupud pähklipuust.
Samm 4: Elektriahel:
Esimesel pildil näete minu skeemi. Ja siin on veel üks video: https://de.youtube.com/watch? V = xkiYzQAYf_A & NR = 1
Samm: kood:
Piltidel näete minu protsessi Arduinoga. Esiteks proovisin ringi oma isetehtud ProtoShieldi, aku ja teatud tüüpi LED -idega. Alustasin mõne kuu eest TodEKurti "Spooky Projects" ja "BionicArduino" -ga.https://todbot.com/blog/spookyarduino/ lihtsalt keeruline kombinatsioon tema projektikoodist. "RGBMoodlight", "RGBPotMixer" ja mõned laiendused. Kolm analoogsisendit ja üks digitaalne sisend režiimilülitina (tänu Ju. katkestusrutiini eest:). LEDid on ühendatud kuni D9, D10 ja D11, mis toetavad PulseWithModulation. Kui soovite, võin eskiisi avaldada, kuid see on nende kahe suurepärase koodi tõeliselt tühi kombinatsioon. Siin on minu lambi algkood. See tundub natuke räpane, sest see oli minu väga varajane programmeerimise etapp … Aga kui te selle kopeerite, peaks see suurepäraselt toimima. On häid rahusid, näiteks "PotColorMixer", "RGBfadingFunction" ja režiimi lüliti katkestusrutiin./* nejo June2008
Minu "Moodlampi" kood, mis põhineb Clay Shirky "dimmingLED -idel"
*nejo Sep2008
- Meeleolulampi lõplik kood katkestusrežiimi lülitiga, analoog-kiirvalimine RGB-tuhmumise ja RGB-värvimuutuse jaoks.
- Hämardamisfunktsioon töötab ainult valge värvi puhul
*nejo oktoober2008
- Meeleolulambi helipikendus:
- Kondensaatormikrofon väikese LM368 võimendiga, kordaja ja RC-madalpääsfiltriga
- teise analoogsisendiga kasutan funktsiooni RGBPotMixer, et muuta värvi, saades mikrofonisignaali.
* * * PWM-i abil kolme LED-i, punase, rohelise ja sinise või ühe kolmevärvilise LED-i ristuva tuhmumise kood
- Programm tuhmub aeglaselt punasest roheliseks, rohelisest siniseks ja sinisest punaseks
- Silumiskood eeldab Arduino 0004, kuna see kasutab uusi Serial.begin () stiilis funktsioone
- algselt "dimmingLEDs", autor Clay Shirky
*
- AnalogRead on pin A0 -l lubatud, et muuta RGB tuhmumiskiirust
- AnalogRead on pin A2 -l lubatud, et muuta hueRGB värvi
* * */#include // Outputint ledPin = 13; // controlPin silumiseksint redPin = 9; // Punane LED, ühendatud digitaalse tihvtiga 9int rohelinePin = 10; // Roheline LED, ühendatud digitaalse tihvtiga 10int bluePin = 11; // Sinine LED, ühendatud digitaalse tihvtiga 11int dimredPin = 3; // Analoogse hämardamisväärtuse tihvtid, mis on ühendatud transistori draiveriga dimgreenPin = 5; int dimbluePin = 6; // SisendlülitiPin = 2; // lüliti on ühendatud tihvtiga D2int val = 0; // muutuja pin statusint nupu lugemiseksState; // muutuja, mis hoiab nuppu stateint buttonPress = 0; // 3 vajutab edasi! Int potPin0 = 0; // Pott tuhmumise vahelise viivituse reguleerimiseks Moodlampis; int potPin2 = 2; // Potentsiomeetri väljund tooni muutmiseksRGB colorint potVal = 0; // Muutuja potentsiomeetri sisendi salvestamiseks maxVal = 0; // hämardusteguri salvestamise väärtus on vaikimisi 255, kui potti pole ühendatud. dimPin = 4; // Pott heleduse hämardamiseks ühendatud A4 -ga // Programmi muutujadint redVal = 255; // Muutujad pinsinti saadetavate väärtuste salvestamiseks greenVal = 1; // Algväärtused on punane täis, roheline ja sinine offint blueVal = 1; int i = 0; // Loop counter int wait; // = 15; // 50 ms (0,05 sekundit) viivitus; lühendada kiiremaks kadumiseks k = 0; // controlLED väärtus vilkumisfunktsioonis DEBUG = 0; // DEBUG counter; kui see on seatud väärtusele 1, kirjutab väärtused tagasi jadainterneti kaudu LCD = 0; // LCD loendur; kui see on 1, kirjutab väärtused tagasi serialvoid setup () {pinMode (ledPin, OUTPUT) kaudu; pinMode (redPin, OUTPUT); // määrab tihvtid väljundiks pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); pinMode (dimredPin, OUTPUT); pinMode (dimgreenPin, OUTPUT); // määrab tihvtid väljundiks pinMode (dimbluePin, OUTPUT); pinMode (potPin2, INPUT); // pinMode (potPin0, INPUT); // pinMode (dimPin, INPUT); // pinMode (switchPin, INPUT); // Määra lülitustihv sisendi manusenaInterrupt (0, isr0, RISING); if (DEBUG) {// Kui tahame silumiseks näha pin -väärtusi … Serial.begin (9600); //… seadistage sariväljund 0004 stiilis}}} // Peamine programmvoid -tsükkel () {if (buttonPresses == 0) {Moodlamp (); // kutsub Moodlighti funktsiooni}, kui (buttonPresses == 1) {RGBPotMixer (); // kutsub manuel mix funktsiooni} if (buttonPresses == 2) {White (); // siin on kõik valge} if (buttonPresses == 3) {} // Moodlamp (); // RGBPotMixer (); // valge (); Monitor(); dim ();} void Monitor () {// Saada olek monitorile, kui (DEBUG) {// Kui tahame lugeda väljundit DEBUG += 1; // Suurenda DEBUG loendurit, kui (DEBUG> 10) {// Prindi iga 10 silmuse järel DEBUG = 1; // Lähtesta loendur Serial.print (i); // Seeriakäsud 0004 stiilis Serial.print ("\ t"); // vahelehe printimine Serial.print ("R:"); // Näita, et väljund on punane väärtus Serial.print (redVal); // Prindi punane väärtus Serial.print ("\ t"); // vahelehe printimine Serial.print ("G:"); // Korda rohelise ja sinise jaoks… Serial.print (greenVal); Serial.print ("\ t"); Serial.print ("B:"); Serial.print (blueVal); // println, lõpetada vankri tagastamisega Serial.print ("\ t"); Serial.print ("dimValue:"); Serial.print (maxVal); // println, lõpetada vankri tagastamisega Serial.print ("\ t"); Serial.print ("oota:"); Serial.print (oota); // kirjutab potPin0 väärtuse monitorile Serial.print ("\ t"); Serial.print ("hueRGBvalue"); Serial.print (potVal); // kirjutab potPin0 väärtuse monitorile Serial.print ("\ t"); Serial.print ("buttonState:"); Serial.print (buttonState); // kirjutab potPin0 väärtuse monitorile Serial.print ("\ t"); Serial.print ("buttonPress:"); Serial.println (buttonPress); // kirjutab nupule väärtusePressid monitorile}}} void dim () // Valge hämardamise funktsioon // võib -olla hiljem kõigi režiimide puhul {maxVal = analogRead (dimPin); maxVal /= 4; // Analoogivahemik 0..1024 liiga palju 0..255 väärtuse hämardamiseks analogWrite (dimredPin, maxVal); analogWrite (dimgreenPin, maxVal); analogWrite (dimbluePin, maxVal);} void Moodlamp () {wait = analogRead (potPin0); // otsi väärtust potPin0; // kui potti pole ühendatud: oodake 255 i += 1; // Suurendusloendur // i = i - maxVal; if (i <255) // Hajumiste esimene faas {redVal -= 1; // Punane alla rohelineVal += 1; // Roheline kuni sinineVal = 1; // Sinine madal} else if (i <509) // Tuhmumise teine faas {redVal = 1; // Punane madal rohelineVal -= 1; // Roheline alla sinineVal += 1; // Sinine üles} else if (i <763) // Tuhmumise kolmas faas {redVal += 1; // Punane üles rohelineVal = 1; // Roheline lo2 blueVal -= 1; // Sinine alla} else // Määrake loendur uuesti ja alustage tuhmumist uuesti {i = 1; } // teeme "redVal" asemel "255 -redVal", sest // LED -id on ühendatud Gnd analogWrite asemel (+5V) (redPin, 255 - redVal); // Kirjutage praegused väärtused LED -tihvtidele analogWrite (greenPin, 255 - greenVal); analogWrite (bluePin, 255 - blueVal); /* dimredVal = min (redVal - maxVal, 255); // hämardamine dimredVal = max (redVal - maxVal, 0); dimgreenVal = min (rohelineVal - maxVal, 255); dimgreenVal = max (rohelineVal - maxVal, 0); dimblueVal = min (sinineVal - maxVal, 255); dimblueVal = max (sinineVal - maxVal, 0); analogWrite (redPin, 255 - dimredVal); // Kirjutage praegused väärtused LED -tihvtidele analogWrite (greenPin, 255 - dimgreenVal); analogWrite (bluePin, 255 - dimblueVal); * / oota / = 4; viivitus (oota); // Paus ootamiseks millisekundiks enne silmuse jätkamist} void RGBPotMixer () {potVal = analogRead (potPin2); // potentsiomeetri väärtuse lugemine sisendpoldil potVal = potVal / 4; // teisendada 0-1023-st 0-255-ks hue_to_rgb (potVal); // käsitleda potVal'i toonina ja teisendada rgb-väärtusteks // "255-" on sellepärast, et meil on ühise anoodi LED-id, mitte tavalise katoodi analoogWrite (redPin, 255-redVal); // Väärtuste kirjutamine LED-tihvtidele analogWrite (greenPin, 255-greenVal); analogWrite (bluePin, 255-blueVal); } tühine Valge () {analogWrite (redPin, maxVal); // Väärtuste kirjutamine LED -tihvtidele analogWrite (greenPin, maxVal); analogWrite (bluePin, maxVal); }/*
- Arvestades varieeruvat tooni „h”, mis jääb vahemikku 0–252,
- määrake RGB värviväärtus sobivalt.
- Eeldab maksimaalset küllastust ja maksimaalset väärtust (heledus)
- Teostab puhtalt täisarvulist matemaatikat, ujukoma puudub.
*/void hue_to_rgb (bait toon) {if (toon> 252) toon = 252; // tagasi 252 !! nejo bait hd = toon / 42; // 36 == 252/7, 252 == H_MAX bait hi = hd % 6; // annab 0-5 baiti f = toon % 42; bait fs = f * 6; lüliti (hi) {juhtum 0: redVal = 252; rohelineVal = fs; blueVal = 0; murda; juhtum 1: redVal = 252-fs; rohelineVal = 252; blueVal = 0; murda; juhtum 2: redVal = 0; rohelineVal = 252; blueVal = fs; murda; juhtum 3: redVal = 0; rohelineVal = 252-fs; blueVal = 252; murda; juhtum 4: redVal = fs; rohelineVal = 0; blueVal = 252; murda; juhtum 5: redVal = 252; rohelineVal = 0; blueVal = 252-fs; murda; }} tühine isr0 () {Serial.println ("\ n / n katkematu / n"); buttonState = digitalRead (switchPin); // algseisundi viivituse lugemineMikrosekundit (100000); // if (val! = buttonState) {// nupu olek on muutunud! // if (buttonState == HIGH) {// kontrollige, kas nupule on nüüd vajutatud nuppuPress ++; //} // val = buttonState; // salvestage uus olek meie muutujale if (buttonPresses == 3) {// zur cksetzen buttonPresses = 0; }} //} Järgmine etapp oli transistori draiverid. Kasutasin 3 PNP transistorit, mille maksimaalne vool oli 3A. Pärast edasivoolu ja pinge reguleerimist töötas LED-kiirgur täie intensiivsusega suurepäraselt.
6. toiming: hankige see iseseisvaks PonyProgi põletatud alglaaduriga
Kuidas kasutada oma paralleellporti arduino alglaaduri põletamiseks ATmega168 või ATmega8, et kasutada odavat tühja kiipi arduino keskkonnaga. Varsti….. võib -olla eraldi juhendis. Siin on ka hea juhis kiibi iseseisvaks kasutamiseks: https:/ /www.instructables.com/id/uDuino-Very-Low-Cost-Arduino-Compatible-Developme/?ALLSTEPS
Samm 7: Nii et see on minu Arduino Moodlamp
Kui teile meeldis, palun hinnake mind.
Soovitan:
Käsitsi valmistatud madala sulamistemperatuuriga joodisulam: 5 sammu
Käsitsi valmistatud madala sulamistemperatuuriga joodisulam: valmistage madala sulamistemperatuuriga joodisulam lihtsaks lahustamiseks. Palun külastage minu ajaveebi. Materjalid Vismutmetall 2,5 g
Väike siseruumides käsitsi valmistatud ilutulestik: 8 sammu
Väike siseruumides käsitsi valmistatud ilutulestik: et õpetada lastele elektroonilist vooluringi, saab seda seadet teha väikese varustusega ja see näeb kena välja. Kena ettevalmistus aastavahetuseks
Circuit Playground Express (CPE) käsitsi valmistatud märkus: 5 sammu
Circuit Playground Express (CPE) käsitsi valmistatud märkus: Selles sisestatavas juhises saate oma Circuit Playground Expressi (CPE) mikrokontrolleri MakeCode'i abil kodeerida ja flanellsärgist ja muust kangast tote teha. Tõlgendamiseks ja uuendamiseks on palju ruumi! Mida prognoosite
Avatud lähtekoodiga täiustatud käsitsi valmistatud humanoidrobot MIA-1: 4 sammu
MIA-1 avatud lähtekoodiga täiustatud käsitsi valmistatud humanoidrobot!: Tere kõigile, täna näitan, kuidas ma tegin roboti MIA-1, mis pole mitte ainult täiustatud ja ainulaadne, vaid ka avatud lähtekoodiga ja mida saab teha ilma 3D-printimiseta! Jah, said aru, see robot on täielikult käsitsi valmistatud. Ja avatud lähtekood tähendab - saate
Käsitsi valmistatud autolaadija pistikupesa: 7 sammu
Käsitsi valmistatud autolaadija pistikupesa: meie viimasel puhkusel Norras rentisime kaubiku, mida kasutati matkaautona; selles karmis majutuskohas on puudu üks "luksus"; USB-laadimispunkti puudumine kaubiku tagaosas, st magamiskohas, toide isegi väljalülitatud olekus