Obsah:

Mixér barev s Arduinem: 9 kroků (s obrázky)
Mixér barev s Arduinem: 9 kroků (s obrázky)

Video: Mixér barev s Arduinem: 9 kroků (s obrázky)

Video: Mixér barev s Arduinem: 9 kroků (s obrázky)
Video: PRANK NA MAMKU! 2024, Červenec
Anonim
Image
Image

Od tliguori330Sledovat více od autora:

Barevná koule s Arduinem
Barevná koule s Arduinem
Doodle Bot s procesem návrhu
Doodle Bot s procesem návrhu
Doodle Bot s procesem návrhu
Doodle Bot s procesem návrhu
Dotykové piano Arduino
Dotykové piano Arduino
Dotykové piano Arduino
Dotykové piano Arduino

O: Vždy se učím ….. Více o tliguori330 »

Mixér barev je skvělý projekt pro každého, kdo pracuje a roste s Arduinem. Na konci tohoto pokynu budete moci míchat a sladit téměř každou představitelnou barvu otáčením 3 knoflíků. Úroveň dovedností je dostatečně nízká, aby ji mohl úspěšně dokončit i úplný nováček, ale také natolik zajímavá, aby byla pro zkušeného veterináře příjemná. Náklady na tento projekt jsou téměř nulové a většina sad Arduino je dodávána s potřebným materiálem. Jádrem tohoto kódu je několik základních funkcí arduina, kterým bude chtít porozumět každý, kdo používá arduino. Půjdeme do hloubky o funkcích analogRead () a analogWrite () jako o jiné obvyklé funkci zvané map (). Tyto odkazy vás přenesou na referenční stránky arduina pro tyto funkce.

Krok 1: Díly a komponety

Díly a komponety
Díly a komponety
Díly a komponety
Díly a komponety
Díly a komponety
Díly a komponety
Díly a komponety
Díly a komponety

Arduino Uno

Potenciometr (x3)

RGB LED

Odpor 220 ohmů (x3)

Propojovací vodiče (x12)

Chlebová deska

Krok 2: Naplánujte si svůj pokrok

Naplánujte si svůj pokrok
Naplánujte si svůj pokrok

Může být velmi užitečné naplánovat si, jak dokončíte svůj projekt. Kódování je o logickém postupu z jednoho kroku do druhého. Vytvořil jsem vývojový diagram, který popisuje, jak chci, aby se moje skica spustila. Celkovým cílem je mít 3 knoflíky (potenciometry) ovládající každou ze tří barev RGB LED. Abychom toho dosáhli, budeme muset vytvořit náčrt odpovídající vývojovému diagramu. Budeme chtít….

1) Odečtěte 3 různé potenciometry a uložte jejich hodnoty do proměnných.

2) Tyto hodnoty převedeme tak, aby odpovídaly rozsahu RGB LED.

3) Nakonec tyto převedené hodnoty zapíšeme do každé z barev RGB.

Krok 3: Jak používat potenciometry

Jak používat potenciometry
Jak používat potenciometry
Jak používat potenciometry
Jak používat potenciometry

Potenciometr, který je jednou z nejzákladnějších součástí elektronických souprav, lze použít v mnoha různých projektech. potenciometry fungují tak, že umožňují uživateli fyzicky měnit odpor obvodu. Nejvíce farmilarním příkladem potenciometru je stmívač světla. posunutím nebo otočením knoflíku se změní délka obvodu. delší cesta má za následek větší odpor. Zvýšený odpor nepřímo snižuje proud a světlo tlumí. Ty mohou přicházet ve všech různých tvarech a velikostech, ale většina má stejné základní nastavení. Jeden student požádal o pomoc při opravě své kytary a zjistili jsme, že knoflíky na ní jsou přesně stejné jako potenciometry. Obecně jste byli vnější nohy připojeny k 5 voltům a zemi a prostřední noha šla k analogovému pinu jako A0

Krok 4: Schéma zapojení pro (3x) potenciometr

Schéma zapojení pro (3x) potenciometr
Schéma zapojení pro (3x) potenciometr
Schéma zapojení pro (3x) potenciometr
Schéma zapojení pro (3x) potenciometr
Schéma zapojení pro (3x) potenciometr
Schéma zapojení pro (3x) potenciometr

Levá většina nohy bude připojena k 5v a pravá většina nohy bude připojena k GND. Ve skutečnosti můžete tyto dva kroky zvrátit a projektu to příliš neublíží. Jediné, co by se změnilo, je otočení knoflíku úplně doleva, místo aby byl úplně jasný. Prostřední noha bude připojena k jednomu z analogových pinů na Arduinu. Protože budeme mít tři knoflíky, budeme chtít ztrojnásobit práci, kterou jsme právě udělali. Každý knoflík potřebuje 5 V a GND, takže je lze sdílet pomocí prkénka. Červený proužek na desce chleba je připojen k 5 voltům a modrý proužek je připojen k zemi. Každý knoflík potřebuje svůj vlastní analogový pin, takže je připojen k A0, A1, A2.

Krok 5: Použití AnalogRead () a proměnných

S správně nastaveným potenciometrem jsme připraveni tyto hodnoty přečíst. Když to chceme udělat, použijeme funkci analogRead (). Správná syntaxe je analogRead (pin#); takže pro čtení našeho středního potenciometru bychom analogRead (A1); Abychom mohli pracovat s čísly odesílanými z knoflíku do Arduina, budeme chtít tato čísla také uložit do proměnné. Řádek kódu tento úkol splní, když přečteme potenciometr a uložíme jeho aktuální číslo do celočíselné proměnné „val“

int val = analogRead (A0);

Krok 6: Použití sériového monitoru s 1 knoflíkem

Image
Image

V současné době jsme schopni získat hodnoty z knoflíků a uložit je do proměnné, ale bylo by užitečné, kdybychom tyto hodnoty viděli. K tomu potřebujeme využít vestavěný sériový monitor. Níže uvedený kód je první skica, kterou ve skutečnosti spustíme v Arduino IDE, kterou lze stáhnout na jejich webu. V neplatném nastavení () aktivujeme analogové piny připojené ke každé střední noze jako VSTUP a aktivujeme sériový monitor pomocí Serial.begin (9600); dále načteme pouze jeden z knoflíků a uložíme jej do proměnné jako dříve. Změnou nyní je, že jsme přidali řádek, který vytiskne, jaké číslo je v proměnné uloženo. Pokud zkompilujete a spustíte skicu, můžete otevřít sériový monitor a na obrazovce se posouvat čísla. Pokaždé, když kód zacyklí, čteme a tiskneme jiné číslo. Pokud otočíte knoflíkem připojeným k A0, uvidíte hodnoty v rozmezí 0-1023. později bude cílem přečíst všechny 3 potenciometry, které by k uložení a tisku vyžadovaly 2 další analogové čtečky a 2 různé proměnné.

neplatné nastavení () {

pinMode (A0, INPUT); pinMode (A1, VSTUP); pinMode (A2, INPUT); Serial.begin (9600); } void loop () {int val = analogRead (A0); Serial.println (val); }

Krok 7: Použití RGB LED

Pomocí RGB LED
Pomocí RGB LED
Pomocí RGB LED
Pomocí RGB LED
Pomocí RGB LED
Pomocí RGB LED

4nohá RGB LED je jednou z mých oblíbených komponent pro Arduino. Považuji způsob, jakým je schopen vytvářet nekonečné barvy ze směsí 3 základních barev, za fascinující. Nastavení je podobné jako u běžných LED, ale v zásadě zde máme kombinovanou červenou, modrou a zelenou diodu LED. Krátké nohy budou ovládány jedním z kolíků PWM na arduinu. Nejdelší noha bude připojena k 5 voltům nebo zemi, podle toho, jestli máte společnou anodu nebo společnou katodovou LED. K vyřešení problému budete muset vyzkoušet oba způsoby. Už budeme mít 5v a GND připojené k prkénku, které by se mělo snadno měnit. Výše uvedený diagram ukazuje také použití 3 rezistorů. Ve skutečnosti tento krok často přeskakuji, protože jsem neměl a LED na mě foukalo.

K vytváření barev použijeme funkci analogWrite () k ovládání, kolik červené, modré nebo zelené barvy přidat. Chcete-li použít tuto funkci, musíte říci, se kterým pinem# budeme mluvit, a číslem mezi 0-255. 0 je zcela vypnuto a 255 je nejvyšší množství jedné barvy. Pojďme připojit červenou nohu ke kolíku 9, zelenou ke kolíku 10 a modrou ke kolíku 11. To může vyžadovat nějaké pokusy a omyly, abychom zjistili, která noha je která barva. Pokud bych chtěl vytvořit purpurový odstín, mohl bych udělat hodně červené, žádnou zelenou a možná poloviční sílu modré. Doporučuji vám pohrát si s těmito čísly, je to opravdu vzrušující. Některé běžné příklady jsou na obrázcích výše

neplatné nastavení () {

pinMode (9, VÝSTUP); pinMode (10, VÝSTUP); pinMode (11, VÝSTUP); } void loop () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

Krok 8: Použití potenciometrů k ovládání RGB LED (s jednou chybou)

Použití potenciometrů k ovládání RGB LED (s jednou chybou)
Použití potenciometrů k ovládání RGB LED (s jednou chybou)
Použití potenciometrů k ovládání RGB LED (s jednou chybou)
Použití potenciometrů k ovládání RGB LED (s jednou chybou)
Použití potenciometrů k ovládání RGB LED (s jednou chybou)
Použití potenciometrů k ovládání RGB LED (s jednou chybou)

Je na čase začít spojovat naše dva kódy dohromady. Na standardním prkénku byste měli mít dostatek místa pro všechny 3 knoflíky a RGB LED. Cílem je namísto zadávání hodnot pro červenou modrou a zelenou použít hodnoty uložené z každého potenciometru k neustálé změně barev. budeme v tomto případě potřebovat 3 proměnné. redval, greenval, blueval jsou všechny různé proměnné. Mějte na paměti, že tyto proměnné můžete pojmenovat, jak chcete. pokud otočíte „zeleným“knoflíkem a změní se červené množství, můžete přepnout názvy tak, aby odpovídaly správně. nyní můžete otáčet každým knoflíkem a ovládat barvy !!

neplatné nastavení () {

pinMode (A0, INPUT); pinMode (A1, VSTUP); pinMode (A2, INPUT); pinMode (9, VÝSTUP); pinMode (10, VÝSTUP); pinMode (11, VÝSTUP); } neplatné nastavení () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }

Krok 9: BONUS: Funkce Map () a kód Cleaner

Můžete si všimnout, že když otočíte knoflíkem o jednu barvu nahoru, naroste a pak se náhle spustí dolů. Tento způsob růstu a poté rychlého vypnutí se opakuje 4krát, když otočíte knoflíkem úplně nahoru. Pokud si vzpomenete, řekli jsme, že jsme řekli, že potenciometry mohou číst hodnoty mezi 0 a 1023. Funkce analogWrite () přijímá pouze hodnoty mezi 0 a 255. jakmile potenciometr překročí 255, v zásadě začíná znovu na 0. Existuje pěkná funkce, která vám pomůže chyba zvaná map (). v jednom kroku můžete převést jeden rozsah čísel na jiný rozsah čísel. převedeme čísla od 0-1023 na čísla od 0-255. Pokud byl například knoflík nastaven na polovinu, měl by ukazovat asi 512. toto číslo by bylo změněno na 126, což je poloviční síla LED. V tomto závěrečném náčrtu jsem pro své pohodlí pojmenoval piny názvy proměnných. Nyní máte hotový mixér barev, se kterým můžete experimentovat !!!

// názvy proměnných pro piny potenciometru

int redPot = A0; int greenPot = A1; int bluePot = A2 // názvy proměnných pro RGB piny int redLED = 9; int zelenáLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMode (zelená LED, VÝSTUP); pinMode (modrá LED, VÝSTUP); Sériové, začátek (9600); } void loop () {// čtení a ukládání hodnot z potenciometrů int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // převod hodnot z 0-1023 na 0-255 pro RGB LED redVal = mapa (redVal, 0, 1023, 0, 255); greenVal = mapa (greenVal, 0, 1023, 0, 255); blueVal = mapa (blueVal, 0, 1023, 0, 255); // zapište tyto převedené hodnoty do každé barvy RGB LED analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // zobrazit hodnoty na Serial monitoru Serial.print ("red:"); Serial.print (redVal); Serial.print ("zelený:"); Serial.print (greenVal); Serial.print ("modrý:"); Serial.println (blueVal); }

Doporučuje: