Obsah:
- Krok 1: Plánování stavby:
- Krok 2: Ručně vyrobený odstín
- Krok 3: Ručně vyrobený odstín
- Krok 4: Elektrický obvod:
- Krok 5: Kód:
- Krok 6: Získejte to samostatně pomocí bootloaderu vypáleného PonyProg
- Krok 7: Tak to je moje náladová lampa Arduino
Video: Ručně vyráběná RGB náladová lampa napájená Arduinem: 7 kroků
2024 Autor: John Day | [email protected]. Naposledy změněno: 2024-01-30 08:24
Tento návod je rozdělen na 5 částí:- Plánování stavby (Krok 1)- Ručně vyráběné stínítko (Krok 2+3)- Elektronický obvod pro ovládání 3W LED diod pomocí ovladače ATmega8 (Krok 4)- Kód (Krok 5)- Jak jej získat samostatný (flashujte zavaděč Arduino pomocí PonyProg a vypalte skicu) (krok 6) již brzy Vid: Some Impressions
de.youtube.com/watch?v=apZ9NpaUG84 Pic1: The Moodlamp Pic2: Mighty 3W LED
Krok 1: Plánování stavby:
Rád dělám koncept na jediném listu papíru. Na prvním listu vidíte několik raných nápadů. „Vybral jsem si design v pravém dolním rohu. Druhá stránka ukazuje některé detaily stavby. Měření jsou experimentální jako pokaždé, ale pro mě v pořádku;-) Moje hardwarové myšlenky byly:- Mohu zvládnout materiály?- Bude světlo svítit skrz stín? - Jaký poměr by to mělo mít - Kolik knoflíků a hrnců budu potřebovat pro jednoduché rozhraní? Softwarové myšlenky byly: Kolik různých funkcí by měla lampa mít? - Automatické vyblednutí RGB s proměnlivou rychlostí - Ruční nastavení barev - Bílá s nastavitelným jasem
Krok 2: Ručně vyrobený odstín
Shromažďování materiálů: Stín: V obchodě jsem našel plech o rozměrech 3 stopy x 3 stopy z 30milionového plastu (obr. 1-3). Ořízněte jej ostrým nožem. Plast jsem namrazil brusným papírem (obr. 4–6). získejte hladký válec Po provrtání správných otvorů jsem to všechno sešrouboval (obr. 7-8). Namontujte plastové stínítka na závitové mosazné podpěry. Vypadá to pěkně a je docela snadné se s tím manipulovat. Vyvrtal jsem a poklepal otvory tak, aby odpovídaly 1/8. Závitové liště (obr.. Aby se z hřídele nedostalo příliš mnoho odstínů, postavím malou klec ze svařovací tyče s maticí M8 nahoře (obr. Malé šrouby a matice byly trochu složité, ale o 30 minut později jsem to udělal.
Krok 3: Ručně vyrobený odstín
Základna: Kotouče byly upnuty v soustruhu, aby byly hladké a kulaté. Poté jsem jej obarvil mořidlem na mahagonové dřevo, aby borovice vypadala dobře. Co dál?!? Rozhodl jsem se vytvořit základnu pomocí stejného matný plast jako stínidlo a podsvícení RGB microLED (obr.
Krok 4: Elektrický obvod:
Na prvním obrázku vidíte moje schéma. A tady je další video: https://de.youtube.com/watch? V = xkiYzQAYf_A & NR = 1
Krok 5: Kód:
Na obrázcích vidíte můj postup s Arduinem. Nejprve jsem vyzkoušel svůj vlastní protokol ProtoShield, baterii a několik druhů LED. Začal jsem s „Spooky Projects“a „BionicArduino“od TodEKurt před několika měsíci. Http://todbot.com/blog/spookyarduino/Můj kód je jen ošemetná kombinace jeho kódu projektu. „RGBMoodlight“, „RGBPotMixer“a některá rozšíření. Tři analogové vstupy a jeden digitální vstup jako přepínač režimu (Díky Ju. za rutinu přerušení:). LED diody jsou připojeny na D9, D10 a D11, které podporují PulseWithModulation. Pokud chcete, mohu skicu zveřejnit, ale je to opravdu holá kombinace těchto dvou skvělých kódů. Zde je můj původní kód lampy. Vypadá to trochu chaoticky, protože to byl můj velmi raná fáze programování … Ale pokud to zkopírujete, mělo by to fungovat skvěle. Existují jemné mírumilovnosti, jako „PotColorMixer“, „RGBfadingFunction“a Interrupt-Routine pro přepínač režimů./* nejo June2008
Kód pro moji „Moodlamp“, založený na „dimmingLED“od Clay Shirky
*nejo září 2008
- Konečný kód pro lampu s přepínačem režimů přerušení, analogovou rychlou volbou pro vyblednutí RGB a změnu barvy RGB.
- Funkce stmívání funguje pouze pro bílou barvu
*nejo říjen 2008
- Zvukové rozšíření pro moodlamp:
- Kondenzátorový mikrofon s malým zesilovačem LM368, přijímačem a nízkoprůchodovým filtrem RC
- s dalším analogovým vstupem používám funkci RGBPotMixer ke změně barvy získáním mikrofonního signálu.
* * * Kód pro křížové vyblednutí 3 LED diod, červené, zelené a modré nebo jedné tříbarevné LED pomocí PWM
- Program pomalu přechází z červené na zelenou, zelenou na modrou a modrou na červenou
- Ladicí kód předpokládá Arduino 0004, protože používá nové funkce stylu Serial.begin ()
- původně „dimmingLEDs“od Clay Shirky
*
- AnalogRead je na Pin A0 povolen pro změnu rychlosti blednutí RGB
- AnalogRead je povolen na Pin A2 pro změnu barvy hueRGB
* * */#include // Outputint ledPin = 13; // controlPin pro laděníint redPin = 9; // Červená LED, připojeno k digitálnímu pinu 9int greenPin = 10; // Zelená LED, připojená k digitálnímu pinu 10int bluePin = 11; // Modrá LED, připojená k digitálnímu pinu 11int dimredPin = 3; // Piny pro analogovou hodnotu stmívání, připojené k ovladači tranzistoru dimgreenPin = 5; int dimbluePin = 6; // Inputint switchPin = 2; // přepínač je připojen na pin D2int val = 0; // proměnná pro čtení pin statusint buttonState; // proměnná pro podržení stavu tlačítka buttonPresses = 0; // 3 stisknutí pro spuštění! Int potPin0 = 0; // Pot pro úpravu zpoždění mezi vyblednutím v Moodlampu; int potPin2 = 2; // Výstup potenciometru pro změnu hueRGB colorint potVal = 0; // Proměnná pro uložení vstupu z potenciometruint maxVal = 0; // hodnota pro uložení faktoru stmívání je výchozí 255, pokud není připojen žádný pot nebo dimPin = 4; // Pot připojen k A4 ke snížení jasu // Program proměnnéint redVal = 255; // Proměnné pro uložení hodnot k odeslání do pinsint greenVal = 1; // Počáteční hodnoty jsou plná červená, zelená a modrá off blueVal = 1; int i = 0; // Počítadlo smyček int počkejte; // = 15; // 50ms (.05 sekund) zpoždění; zkrátit pro rychlejší fadesint k = 0; // hodnota pro controlLED v blink-functionint DEBUG = 0; // počitadlo DEBUG; pokud je nastaven na 1, zapíše hodnoty zpět přes serialint LCD = 0; // LCD čítač; pokud je nastaven na 1, zapíše hodnoty zpět přes serialvoid setup () {pinMode (ledPin, OUTPUT); pinMode (redPin, OUTPUT); // nastaví piny jako výstupní pinMode (greenPin, OUTPUT); pinMode (bluePin, OUTPUT); pinMode (dimredPin, OUTPUT); pinMode (dimgreenPin, OUTPUT); // nastaví piny jako výstupní pinMode (dimbluePin, OUTPUT); pinMode (potPin2, INPUT); // pinMode (potPin0, INPUT); // pinMode (dimPin, INPUT); // pinMode (switchPin, INPUT); // Nastavte přepínač jako vstup attachInterrupt (0, isr0, RISING); if (DEBUG) {// Pokud chceme vidět hodnoty pinů pro ladění … Serial.begin (9600); //… nastavit sériový výstup ve stylu 0004}} // Hlavní programvoid loop () {if (buttonPresses == 0) {Moodlamp (); // volá funkci Moodlight} if (buttonPresses == 1) {RGBPotMixer (); // volá funkci mixu manuel} if (buttonPresses == 2) {White (); // Tady je všechno bílé} if (buttonPresses == 3) {} // Moodlamp (); // RGBPotMixer (); //Bílý(); Monitor(); dim ();} void Monitor () {// Odeslat stav na monitor, pokud (DEBUG) {// Pokud chceme přečíst výstup DEBUG += 1; // Zvýšení počitadla DEBUG if (DEBUG> 10) {// Tisk každých 10 smyček DEBUG = 1; // Reset počítadla Serial.print (i); // Sériové příkazy ve stylu 0004 Serial.print ("\ t"); // Tisk záložky Serial.print ("R:"); // Uveďte, že výstupem je červená hodnota Serial.print (redVal); // Tisk červené hodnoty Serial.print ("\ t"); // Tisk záložky Serial.print ("G:"); // Opakujte pro zelenou a modrou … Serial.print (greenVal); Serial.print ("\ t"); Serial.print ("B:"); Serial.print (blueVal); // println, na konec s návratem na konec Serial.print ("\ t"); Serial.print ("dimValue:"); Serial.print (maxVal); // println, na konec s návratem na konec Serial.print ("\ t"); Serial.print ("čekejte:"); Serial.print (čekání); // zapíše hodnotu potPin0 na monitor Serial.print ("\ t"); Serial.print ("hueRGBvalue"); Serial.print (potVal); // zapíše hodnotu potPin0 na monitor Serial.print ("\ t"); Serial.print ("stav tlačítka:"); Serial.print (buttonState); // zapíše hodnotu potPin0 na monitor Serial.print ("\ t"); Serial.print ("ButtonPresses:"); Serial.println (stisknutí tlačítka); // zapíše hodnotu buttonPresses na monitor}}} void dim () // Funkce pro stmívání White // možná později pro všechny režimy {maxVal = analogRead (dimPin); maxVal /= 4; // Analogový rozsah od 0..1024 příliš mnoho pro stmívání hodnoty 0..255 analogWrite (dimredPin, maxVal); analogWrite (dimgreenPin, maxVal); analogWrite (dimbluePin, maxVal);} void Moodlamp () {wait = analogRead (potPin0); // hledejte hodnotu z potPin0; // pokud není připojen žádný Pot: počkejte 255 i += 1; // Počítadlo přírůstků // i = i - maxVal; if (i <255) // První fáze mizí {redVal -= 1; // Červená dolů zelenáVal += 1; // Zelená do modraVal = 1; // Modrá nízká} else if (i <509) // Druhá fáze mizí {redVal = 1; // Červená nízká zelenáVal -= 1; // Zelená dolů modráVal += 1; // Blue up} else if (i <763) // Third phase fades {redVal += 1; // Red up greenVal = 1; // Zelená lo2 blueVal -= 1; // Modré dolů} else // Znovu nastavte počitadlo a začněte znovu mizet {i = 1; } // místo „redVal“děláme „255 -redVal“, protože // LED diody jsou místo Gnd analogWrite připojeny až na +5V (redPin, 255 - redVal); // Zapisujte aktuální hodnoty na LED piny analogWrite (greenPin, 255 - greenVal); analogWrite (bluePin, 255 - blueVal); /* dimredVal = min (redVal - maxVal, 255); // stmívání dimredVal = max (redVal - maxVal, 0); dimgreenVal = min (greenVal - maxVal, 255); dimgreenVal = max (greenVal - maxVal, 0); dimblueVal = min (blueVal - maxVal, 255); dimblueVal = max (blueVal - maxVal, 0); analogWrite (redPin, 255 - dimredVal); // Zapisujte aktuální hodnoty na LED piny analogWrite (greenPin, 255 - dimgreenVal); analogWrite (bluePin, 255 - dimblueVal); * / počkat / = 4; zpoždění (čekání); // Pauza na „čekání“milisekund před obnovením smyčky} neplatné RGBPotMixer () {potVal = analogRead (potPin2); // načtení hodnoty potenciometru na vstupním pinu potVal = potVal / 4; // převod z 0-1023 na 0-255 hue_to_rgb (potVal); // zacházejte s potVal jako s odstínem a převádějte na hodnoty RGB // "255-" je proto, že máme LED diody se společnou anodou, nikoli analogovouWrite (redPin, 255-redVal); // Zapisování hodnot na LED piny analogWrite (greenPin, 255-greenVal); analogWrite (bluePin, 255-blueVal); } void White () {analogWrite (redPin, maxVal); // Zapisování hodnot na LED piny analogWrite (greenPin, maxVal); analogWrite (bluePin, maxVal); }/*
- Vzhledem k proměnlivému odstínu 'h', který se pohybuje od 0-252,
- vhodně nastavit hodnotu barvy RGB.
- Předpokládá max. Saturaci a maximální hodnotu (jas)
- Provádí čistě celočíselnou matematiku, bez plovoucí desetinné čárky.
*/void hue_to_rgb (byte hue) {if (hue> 252) hue = 252; // zpět na 252 !! nejo byte hd = hue / 42; // 36 == 252/7, 252 == H_MAX byte hi = hd % 6; // dává 0-5 bajtů f = odstín % 42; byte fs = f * 6; switch (hi) {case 0: redVal = 252; greenVal = fs; blueVal = 0; přestávka; případ 1: redVal = 252-fs; greenVal = 252; blueVal = 0; přestávka; případ 2: redVal = 0; greenVal = 252; blueVal = fs; přestávka; případ 3: redVal = 0; greenVal = 252-fs; blueVal = 252; přestávka; případ 4: redVal = fs; greenVal = 0; blueVal = 252; přestávka; případ 5: redVal = 252; greenVal = 0; blueVal = 252-fs; přestávka; }} void isr0 () {Serial.println ("\ n / n přerušení / n"); buttonState = digitalRead (switchPin); // přečtení počátečního stavu delayMicroseconds (100000); // if (val! = buttonState) {// stav tlačítka se změnil! // if (buttonState == HIGH) {// zkontrolujte, zda je tlačítko nyní stisknuto buttonPresses ++; //} // val = buttonState; // uložíme nový stav do naší proměnné if (buttonPresses == 3) {// zur cksetzen buttonPresses = 0; }} //} Další fází byly budiče tranzistorů. Použil jsem 3 PNP tranzistory s maximálním proudem na 3A. Poté, co byl regulován dopředný proud a napětí, LEDemitter fungoval skvěle s plnou intenzitou.
Krok 6: Získejte to samostatně pomocí bootloaderu vypáleného PonyProg
Jak použít paralelní port k vypálení zavaděče arduino na ATmega168 nebo ATmega8 a použít levný prázdný čip s prostředím arduino.com brzy ….. možná na samostatném pokynu Zde je také dobrý návod k použití samostatného čipu: https:/ /www.instructables.com/id/uDuino-Very-Low-Cost-Arduino-Compatible-Developme/?ALLSTEPS
Krok 7: Tak to je moje náladová lampa Arduino
Pokud se vám to líbilo, ohodnoťte mě.
Doporučuje:
Ručně vyráběná slitina pájky s nízkým bodem tání: 5 kroků
Ručně vyráběná slitina pájky s nízkým bodem tání: Vyrobte slitinu pájky s nízkou teplotou tání pro snadné odpájení. Navštivte můj blog. Materiály Bismutový kov 2,5 g 63/37 Rosin Core Solder 2,5 g
RGB Icosahedronová náladová lampa: 9 kroků (s obrázky)
Náladová nálada RGB Icosahedron: Geometrické tvary vždy přitahovaly naši pozornost. Nedávno jeden takový fascinující tvar vzbudil naši zvědavost: Icosahedron. Icosahedron je mnohostěn s 20 tvářemi. Nepodobných tvarů icosahedry může být nekonečně mnoho, ale
Andorianská anténa napájená Arduinem: 4 kroky
Arduino Powered Andorian Antenna: Manželka se rozhodla být Andorianem pro nadcházející Comic Con v Silicon Valley v San Jose, aby odpovídala mému kostýmu Elvise kapitána Kirka. Zatímco malování na obličej/líčení a zbytek kostýmu trvaly docela dlouho, nemohl jsem nechat anténu jen statickou
Jednoduchý tester kondenzátoru Autorange / kapacitní měřič s Arduinem a ručně: 4 kroky
Jednoduchý tester kondenzátoru Autorange / kapacitní měřič s Arduinem a ručně: Dobrý den! Pro tuto fyzikální jednotku potřebujete:* napájecí zdroj s 0-12V* jeden nebo více kondenzátorů* jeden nebo více nabíjecích odporů* stopky* multimetr pro napětí měření* arduino nano* a 16x2 I²C displej* 1 / 4W odpory s 220, 10k, 4,7M
Dobíjecí solární lampa napájená XOD: 9 kroků (s obrázky)
Dobíjecí solární lampa napájená XOD: Ve většině obchodů s domácím zbožím a železářstvím jsou k dispozici levné solární zahradní/chodníkové lampy. Ale jak říká staré přísloví, obvykle dostanete to, za co zaplatíte. Obvyklé nabíjecí a osvětlovací obvody, které používají, jsou jednoduché a levné, ale světelné