Obsah:

Mixér farieb s Arduinom: 9 krokov (s obrázkami)
Mixér farieb s Arduinom: 9 krokov (s obrázkami)

Video: Mixér farieb s Arduinom: 9 krokov (s obrázkami)

Video: Mixér farieb s Arduinom: 9 krokov (s obrázkami)
Video: 16 ошибок штукатурки стен. 2024, November
Anonim
Image
Image

Od tliguori330Sledovať viac od autora:

Farebná guľa s Arduinom
Farebná guľa s Arduinom
Doodle Bot s procesom návrhu
Doodle Bot s procesom návrhu
Doodle Bot s procesom návrhu
Doodle Bot s procesom návrhu
Dotykové piano Arduino
Dotykové piano Arduino
Dotykové piano Arduino
Dotykové piano Arduino

O: Vždy sa učím ….. Viac o tliguori330 »

Mixér farieb je skvelý projekt pre každého, kto pracuje a rastie s Arduinom. Na konci tohto návodu budete môcť miešať a spájať takmer každú predstaviteľnú farbu otáčaním 3 gombíkov. Úroveň znalostí je dostatočne nízka na to, aby ju úspešne zvládol aj úplný nováčik, ale je aj dostatočne zaujímavá na to, aby bola príjemná aj pre skúseného veterinára. Náklady na tento projekt sú takmer nulové a väčšina súprav Arduino je dodávaná s potrebným materiálom. Jadrom tohto kódu je niekoľko základných funkcií arduina, ktorým bude chcieť porozumieť každý, kto používa arduino. Pôjdeme do hĺbky o funkciách analogRead () a analogWrite () ako o ďalšej obvyklej funkcii nazývanej map (). Tieto odkazy vás zavedú na referenčné stránky arduina pre tieto funkcie.

Krok 1: Diely a komponety

Diely a komponety
Diely a komponety
Diely a komponety
Diely a komponety
Diely a komponety
Diely a komponety
Diely a komponety
Diely a komponety

Arduino Uno

Potenciometer (x3)

RGB LED

Odpor 220 ohmov (x3)

Prepojovacie vodiče (x12)

Doska na chlieb

Krok 2: Naplánujte si svoj pokrok

Naplánujte si svoj pokrok
Naplánujte si svoj pokrok

Môže byť veľmi užitočné naplánovať si, ako dokončíte svoj projekt. Kódovanie je o logickom postupe z jedného kroku do druhého. Vytvoril som vývojový diagram, ktorý popisuje, ako chcem, aby sa moja skica spustila. Celkovým cieľom je mať 3 gombíky (potenciometre) na ovládanie každej z troch farieb RGB LED. Aby sme to dosiahli, budeme musieť vytvoriť náčrt zodpovedajúci vývojovému diagramu. Budeme chcieť….

1) Prečítajte 3 rôzne potenciometre a uložte ich hodnoty do premenných.

2) Tieto hodnoty prevedieme tak, aby zodpovedali rozsahu RGB LED.

3) Nakoniec tieto skonvertované hodnoty napíšeme do každej z farieb RGB.

Krok 3: Ako používať potenciometre

Ako používať potenciometre
Ako používať potenciometre
Ako používať potenciometre
Ako používať potenciometre

Potenciometer, ktorý je jednou z najzákladnejších súčastí súprav elektroniky, môže byť použitý v mnohých rôznych projektoch. potenciometre fungujú tak, že umožňujú užívateľovi fyzicky zmeniť odpor obvodu. Najviac farmilárnym príkladom potenciometra je stmievač svetla. posunutím alebo otočením gombíka zmeníte dĺžku obvodu. dlhšia cesta má za následok väčší odpor. Zvýšený odpor nepriamo znižuje prúd a svetlo tlmí. Môžu mať rôzne tvary a veľkosti, ale väčšina z nich má rovnaké základné nastavenie. Jeden študent požiadal o pomoc pri oprave svojej gitary a zistili sme, že gombíky na nej sú úplne rovnaké ako potenciometre. Vo všeobecnosti ste boli vonkajšie nohy napojené na 5 voltov a uzemnenie a stredná noha smerovala k analógovému kolíku ako A0

Krok 4: Schéma zapojenia pre (3x) potenciometer

Schéma zapojenia pre (3x) potenciometer
Schéma zapojenia pre (3x) potenciometer
Schéma zapojenia pre (3x) potenciometer
Schéma zapojenia pre (3x) potenciometer
Schéma zapojenia pre (3x) potenciometer
Schéma zapojenia pre (3x) potenciometer

Ľavá väčšina nohy bude pripojená k 5v a pravá časť nohy bude pripojená k GND. V skutočnosti môžete tieto dva kroky zvrátiť a projektu to veľmi neublíži. Všetko, čo by sa zmenilo, je otočenie gombíka úplne doľava, namiesto toho, aby bol úplne vypnutý, plný jas. Stredná noha bude spojená s jedným z analógových pinov na Arduine. Pretože budeme mať tri gombíky, budeme chcieť strojnásobiť prácu, ktorú sme práve urobili. Každý gombík potrebuje 5 V a GND, aby ich bolo možné zdieľať pomocou dosky na chlieb. Červený prúžok na doske na chlieb je pripojený k 5 voltom a modrý prúžok je pripojený k zemi. Každý gombík potrebuje svoj vlastný analógový pin, aby bol pripojený k A0, A1, A2.

Krok 5: Použitie funkcie AnalogRead () a premenných

Pri správne nastavenom potenciometri sme pripravení tieto hodnoty odčítať. Kedykoľvek to chceme urobiť, použijeme funkciu analogRead (). Správna syntax je analogRead (pin#); takže na prečítanie nášho stredného potenciometra by sme analogRead (A1); Aby sme pracovali s číslami odosielanými z gombíka do Arduina, budeme chcieť tieto čísla tiež uložiť do premennej. Riadok kódu splní túto úlohu, keď prečítame potenciometer a uložíme jeho aktuálne číslo do celočíselnej premennej „val“

int val = analogRead (A0);

Krok 6: Použitie sériového monitora s 1 gombíkom

Image
Image

V súčasnej dobe sme schopní získať hodnoty z gombíkov a uložiť ich do premennej, ale bolo by užitočné, keby sme tieto hodnoty videli. Na to musíme použiť vstavaný sériový monitor. Nasledujúci kód je prvým náčrtkom, ktorý skutočne spustíme v Arduino IDE, ktorý je možné stiahnuť na ich stránkach. V neplatnom nastavení () aktivujeme analógové piny pripojené k každej strednej nohe ako VSTUP a aktivujeme sériový monitor pomocou Serial.begin (9600); ďalej prečítame iba jeden z gombíkov a uložíme ho do premennej ako predtým. Zmenou teraz je, že sme pridali riadok, ktorý vytlačí, aké číslo je uložené v premennej. Ak skicu zostavíte a spustíte, môžete otvoriť sériový monitor a na obrazovke sa vám budú posúvať čísla. Zakaždým, keď kód zacyklí, čítame a tlačíme iné číslo. Ak otočíte gombík pripojený k A0, mali by ste vidieť hodnoty v rozsahu 0-1023. neskôr bude cieľom prečítať všetky 3 potenciometre, ktoré by na uloženie a tlač vyžadovali ďalšie 2 analógové čítačky a 2 rôzne premenné.

neplatné nastavenie () {

pinMode (A0, INPUT); pinMode (A1, VSTUP); pinMode (A2, VSTUP); Serial.begin (9600); } prázdna slučka () {int val = analogRead (A0); Serial.println (val); }

Krok 7: Použitie RGB LED

Použitie RGB LED
Použitie RGB LED
Použitie RGB LED
Použitie RGB LED
Použitie RGB LED
Použitie RGB LED

4 -nohová RGB LED je jednou z mojich obľúbených komponentov pre Arduino. Považujem spôsob, akým je schopný vytvárať nekonečné farby zo zmesí 3 základných farieb, za fascinujúci. Nastavenie je podobné ako pri bežných LED diódach, ale v zásade tu máme kombinovanú červenú, modrú a zelenú diódu LED. Krátke nohy budú každý ovládané jedným z kolíkov PWM na arduine. Najdlhšia noha bude pripojená na 5 voltov alebo na zem, podľa toho, či máte spoločnú anódu alebo spoločnú katódovú diódu LED. Na vyriešenie problému budete musieť vyskúšať oba spôsoby. Už budeme mať 5v a GND pripojené k doske, na ktoré by sa malo dať ľahko zmeniť. Vyššie uvedený diagram ukazuje aj použitie troch rezistorov. V skutočnosti tento krok často preskakujem, pretože som nemal a LED mi fúka.

Na výrobu farieb použijeme funkciu analogWrite () na ovládanie, koľko červenej, modrej alebo zelenej farby pridať. Ak chcete použiť túto funkciu, musíte povedať, s ktorým pinom# budeme hovoriť, a číslo medzi 0-255. 0 je úplne vypnuté a 255 je najvyššie množstvo jednej farby. Pripojíme červenú nohu na kolík 9, zelenú na kolík 10 a modrú na kolík 11. Na zistenie, ktorá noha je ktorej farby, môže byť potrebných niekoľko pokusov a omylov. Ak by som chcel vytvoriť purpurový odtieň, mohol by som urobiť veľa červenej, žiadnu zelenú a možno polovicu sily modrej. Odporúčame vám pohrať sa s týmito číslami, je to skutočne vzrušujúce. Niektoré bežné príklady sú na obrázkoch vyššie

neplatné nastavenie () {

pinMode (9, VÝSTUP); pinMode (10, VÝSTUP); pinMode (11, VÝSTUP); } prázdna slučka () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

Krok 8: Použitie potenciometrov na ovládanie RGB LED (s jednou chybou)

Použitie potenciometrov na ovládanie RGB LED (s jednou chybou)
Použitie potenciometrov na ovládanie RGB LED (s jednou chybou)
Použitie potenciometrov na ovládanie RGB LED (s jednou chybou)
Použitie potenciometrov na ovládanie RGB LED (s jednou chybou)
Použitie potenciometrov na ovládanie RGB LED (s jednou chybou)
Použitie potenciometrov na ovládanie RGB LED (s jednou chybou)

Je načase začať spájať naše dva kódy dohromady. Na štandardnom doske by ste mali mať dostatok miesta, aby sa zmestili všetky 3 gombíky a RGB LED. Cieľom je namiesto zadávania hodnôt pre červenú modrú a zelenú použiť hodnoty uložené z každého poteniometra na neustálu zmenu farieb. v tomto prípade budeme potrebovať 3 premenné. redval, greenval, blueval sú všetky rôzne premenné. Majte na pamäti, že tieto premenné môžete pomenovať ľubovoľne. ak otočíte „zeleným“gombíkom a zmení sa červené množstvo, názvy môžete prepnúť tak, aby sa zhodovali. teraz môžete otáčať každým gombíkom a ovládať farby !!

neplatné nastavenie () {

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

Krok 9: BONUS: Funkcia mapy () a kód čističa

Môžete si všimnúť, že keď otočíte gombíkom o jednu farbu nahor, bude rásť a potom sa náhle spustí a vypne. Tento spôsob rastu a rýchleho vypnutia sa opakuje 4 krát, keď otočíte gombíkom úplne hore. Ak si spomínate, povedali sme, že potenciometre môžu čítať hodnoty od 0 do 1023. Funkcia analogWrite () prijíma hodnoty iba od 0 do 255. akonáhle potenciometer prejde nad 255, v zásade začína od 0. Existuje pekná funkcia, ktorá vám pomôže chyba nazývaná mapa (). v jednom kroku môžete previesť jeden rozsah čísel na iný rozsah čísel. prevedieme čísla od 0-1023 do čísel od 0-255. Napríklad, ak by bol gombík nastavený na polovicu, mal by ukazovať asi 512. toto číslo by sa zmenilo na 126, čo je polovičná sila LED. V tomto záverečnom náčrte som pre jednoduchosť pomenoval kolíky s názvami premenných. Teraz máte hotový mixér farieb, s ktorým môžete experimentovať !!!

// názvy premenných pre kolíky potenciometra

int redPot = A0; int greenPot = A1; int bluePot = A2 // názvy premenných pre RGB piny int redLED = 9; int zelenáLED = 10; int modráLED = 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čiatok (9600); } void loop () {// čítanie a ukladanie hodnôt z potenciometrov int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // prevedie hodnoty z 0-1023 na 0-255 pre RGB LED redVal = mapa (redVal, 0, 1023, 0, 255); greenVal = mapa (greenVal, 0, 1023, 0, 255); blueVal = mapa (blueVal, 0, 1023, 0, 255); // zapíšte tieto prevedené hodnoty do každej farby RGB LED analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // zobrazenie hodnôt na sériovom monitore Serial.print ("red:"); Serial.print (redVal); Serial.print ("zelený:"); Serial.print (greenVal); Serial.print ("modrý:"); Serial.println (blueVal); }

Odporúča: