Cuprins:

Mixer color cu Arduino: 9 pași (cu imagini)
Mixer color cu Arduino: 9 pași (cu imagini)

Video: Mixer color cu Arduino: 9 pași (cu imagini)

Video: Mixer color cu Arduino: 9 pași (cu imagini)
Video: Giulia s-a îndrăgostit 🤐 2024, Noiembrie
Anonim
Image
Image

De tliguori330 Urmăriți mai multe de la autor:

Sferă de culoare cu Arduino
Sferă de culoare cu Arduino
Doodle Bot cu proces de proiectare
Doodle Bot cu proces de proiectare
Doodle Bot cu proces de proiectare
Doodle Bot cu proces de proiectare
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano

Despre: Învățând întotdeauna ….. Mai multe despre tliguori330 »

Un mixer de culori este un proiect minunat pentru oricine lucrează și crește cu Arduino. Până la sfârșitul acestui instructable, veți putea amesteca și potrivi aproape toate culorile imaginabile prin rotirea a 3 butoane. Nivelul de calificare este suficient de scăzut încât chiar și un debutant complet îl poate finaliza cu succes, dar și suficient de interesant pentru a fi plăcut pentru un veterinar experimentat. Costul acestui proiect este aproape nul și majoritatea kiturilor Arduino vin cu materialele necesare. La baza acestui cod se află câteva funcții fundamentale arduino pe care oricine le folosește arduino va dori să le înțeleagă. Vom intra în profunzime cu privire la funcțiile analogRead () și analogWrite () ca și noi ca o altă funcție obișnuită numită map (). Aceste legături vă aduc la paginile de referință arduino pentru aceste funcții.

Pasul 1: Piese și componente

Piese și componente
Piese și componente
Piese și componente
Piese și componente
Piese și componente
Piese și componente
Piese și componente
Piese și componente

Arduino Uno

Potențiometru (x3)

LED RGB

Rezistor 220 ohm (x3)

Sârme jumper (x12)

Placă de pâine

Pasul 2: Planificați-vă progresul

Planificați-vă progresul
Planificați-vă progresul

Poate fi foarte util să planificați modul în care vă veți finaliza proiectul. Codificarea se referă la progresia logică de la un pas la altul. Am realizat o diagramă care prezintă modul în care vreau să se execute schița mea. Scopul general este de a avea 3 butoane (potențiometre) care controlează fiecare dintre cele trei culori ale unui LED RGB. Pentru a realiza acest lucru, va trebui să creăm o schiță care să corespundă diagramei. Vom dori să …

1) Citiți 3 potențiometre diferite și salvați-le valorile în variabile.

2) Vom converti aceste valori pentru a se potrivi cu gama LED-ului RGB.

3) Apoi, în cele din urmă, vom scrie acele valori convertite în fiecare dintre culorile RGB.

Pasul 3: Cum se utilizează potențiometrele

Cum se utilizează potențiometre
Cum se utilizează potențiometre
Cum se utilizează potențiometre
Cum se utilizează potențiometre

Una dintre cele mai elementare componente dintr-un set de electronice, potențiometrul poate fi utilizat în multe proiecte diferite. potențiometrele funcționează permițând utilizatorului să schimbe fizic rezistența circuitului. Cel mai ferm exemplu de potențiometru este un regulator de lumină. glisarea sau rotirea unui buton schimbă lungimea circuitului. o cale mai lungă are ca rezultat mai multă rezistență. Rezistența crescută scade invers curentul și lumina se estompează. Acestea pot avea diferite forme și dimensiuni, dar cele mai multe au aceeași configurație de bază. Un student a cerut ajutor pentru a-și fixa chitara și am aflat că butoanele de pe ea erau exact la fel ca potențiometrele. În general, ați fost picioarele exterioare conectate la 5 volți și la sol, iar piciorul din mijloc merge la un pin analogic ca A0

Pasul 4: Schemă de cablare pentru (3x) potențiometru

Schema de cablare pentru (3x) potențiometru
Schema de cablare pentru (3x) potențiometru
Schema de cablare pentru (3x) potențiometru
Schema de cablare pentru (3x) potențiometru
Schema de cablare pentru (3x) potențiometru
Schema de cablare pentru (3x) potențiometru

Piciorul cel mai stâng va fi conectat la 5v și cel mai drept picior va fi conectat la GND. De fapt, puteți inversa acești doi pași și nu va afecta foarte mult proiectul. Tot ceea ce s-ar schimba este să rotiți butonul până la stânga pentru a avea o luminozitate completă, în loc să se deplaseze complet. Piciorul din mijloc va fi conectat la unul dintre pinii analogici de pe Arduino. Deoarece vom avea trei butoane, vom dori să triplăm lucrarea pe care tocmai am făcut-o. Fiecare buton are nevoie de 5v și GND, astfel încât acestea să poată fi partajate folosind o placă pentru pâine. Banda roșie de pe placa de pâine este conectată la 5 volți, iar banda albastră este conectată la masă. Fiecare buton are nevoie de propriul pin analogic, astfel încât să fie conectat la A0, A1, A2.

Pasul 5: Utilizarea AnalogRead () și a variabilelor

Cu potențiometrul configurat corect, suntem gata să citim aceste valori. Când vrem să facem acest lucru, folosim funcția analogRead (). Sintaxa corectă este analogRead (pin #); deci, pentru a ne citi potențiometrul din mijloc, am citi analogic (A1); Pentru a lucra cu numerele trimise de pe buton către Arduino, vom dori să salvăm și aceste numere într-o variabilă. Linia de cod va realiza această sarcină pe măsură ce citim potențiometrul și salvăm numărul său curent în variabila întreagă „val”

int val = analogRead (A0);

Pasul 6: Utilizarea monitorului serial cu 1 buton

Image
Image

În prezent suntem capabili să obținem valori de pe butoane și să le stocăm într-o variabilă, dar ar fi util dacă am putea vedea aceste valori. Pentru a face acest lucru, trebuie să folosim monitorul serial încorporat. Codul de mai jos este prima schiță pe care o vom rula de fapt în IDE-ul Arduino, care poate fi descărcat de pe site-ul lor. În setarea nulă () vom activa pinii analogici conectați la fiecare picior mijlociu ca INPUT și vom activa monitorul Serial folosind Serial.begin (9600); în continuare citim doar unul dintre butoane și îl stocăm într-o variabilă ca înainte. Schimbarea acum este că am adăugat o linie care imprimă ce număr este stocat în variabilă. Dacă compilați și rulați schița, puteți deschide monitorul serial și puteți vedea numerele care se derulează pe ecran. De fiecare dată când codul se bucură, citim și imprimăm un alt număr. Dacă rotiți butonul conectat la A0, ar trebui să vedeți valori cuprinse între 0-1023. mai târziu, scopul va fi să citiți toate cele 3 potntiometre, care ar necesita încă 2 citiri analogice și 2 variabile diferite pentru a le salva și a le imprima.

configurare nulă () {

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

Pasul 7: Utilizarea LED-ului RGB

Folosind LED-ul RGB
Folosind LED-ul RGB
Folosind LED-ul RGB
Folosind LED-ul RGB
Folosind LED-ul RGB
Folosind LED-ul RGB

LED-ul cu 4 picioare RGB este una dintre componentele mele preferate pentru Arduino. Mi se pare fascinant modul în care este capabil să creeze culori interminabile din amestecuri de 3 culori de bază. Setarea este similară cu orice LED obișnuit, dar aici avem practic un LED roșu, albastru și verde combinat împreună. Picioarele scurte vor fi controlate fiecare de unul dintre pinii PWM de pe arduino. Cel mai lung picior va fi conectat la 5 volți sau la masă, în funcție de al tău într-un anod comun sau LED catod comun. Va trebui să încercați ambele moduri de a rezolva problema. Vom avea deja 5v și GND conectate la panoul de verificare, pentru a fi ușor de schimbat. Diagrama de mai sus arată folosind și 3 rezistențe. De fapt, omit acest pas des, deoarece nu am avut și LED-ul mi-a aruncat.

Pentru a face culori vom folosi funcția analogWrite () pentru a controla cât de mult roșu, albastru sau verde trebuie adăugat. Pentru a utiliza această funcție, trebuie să spuneți cu ce cod PIN vom vorbi și cu un număr între 0-255. 0 este complet dezactivat și 255 este cea mai mare cantitate dintr-o culoare. Permiteți conectarea piciorului roșu la pinul 9, verde la pinul 10 și albastru la pinul 11. Acest lucru ar putea dura unele încercări și erori pentru a afla care picior are culoarea. Dacă aș vrea să fac o nuanță purpurie, aș putea face mult roșu, fără verde și poate jumătate de albastru. Vă încurajez să jucați cu aceste numere, este foarte interesant. Câteva exemple comune sunt în imaginile de mai sus

configurare nulă () {

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

Pasul 8: Utilizarea potențiometrelor pentru controlul LED-ului RGB (cu o singură eroare)

Utilizarea potențiometrelor pentru controlul LED-ului RGB (cu o singură eroare)
Utilizarea potențiometrelor pentru controlul LED-ului RGB (cu o singură eroare)
Utilizarea potențiometrelor pentru controlul LED-ului RGB (cu o singură eroare)
Utilizarea potențiometrelor pentru controlul LED-ului RGB (cu o singură eroare)
Utilizarea potențiometrelor pentru controlul LED-ului RGB (cu o singură eroare)
Utilizarea potențiometrelor pentru controlul LED-ului RGB (cu o singură eroare)

Este timpul să începem să fuzionăm cele două coduri. Ar trebui să aveți suficient spațiu pe o placă standard pentru a se potrivi tuturor celor 3 butoane și LED-ului RGB. Ideea este în loc să introducem valorile pentru roșu albastru și verde, vom folosi valorile salvate de la fiecare poteniometru pentru a schimba constant culorile. vom avea nevoie de 3 variabile în acest caz. redval, greenval, blueval sunt toate variabile diferite. Rețineți că puteți numi aceste variabile orice doriți. dacă rotiți butonul „verde” și cantitatea roșie se schimbă, puteți schimba numele pentru a se potrivi corect. acum puteți roti fiecare buton și controla culorile !!

configurare nulă () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); pinMode (9, OUTPUT); pinMode (10, OUTPUT); pinMode (11, OUTPUT); } void setup () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }

Pasul 9: BONUS: funcția Map () și codul mai curat

Este posibil să observați că, pe măsură ce începeți să rotiți butonul pentru o culoare în sus, acesta va crește și apoi va cădea brusc în jos. Acest model de creștere și apoi oprire rapidă se repetă de 4 ori pe măsură ce rotiți butonul până la capăt. Dacă vă amintiți, am spus că potențiometrele pot citi valori cuprinse între 0 și 1023. Funcția analogWrite () acceptă numai valori între 0 și 255. odată ce potențiometrul depășește 255, începe de la 0. Există o funcție drăguță pentru a ajuta la bug numit map (). puteți converti o gamă de numere într-o altă gamă de numere într-un singur pas. vom converti numerele de la 0-1023 la numere de la 0-255. De exemplu, dacă butonul a fost setat la jumătatea drumului, ar trebui să citească aproximativ 512. acel număr ar fi schimbat la 126, ceea ce reprezintă jumătate din puterea LED-ului. În această schiță finală am numit pinii cu nume variabile pentru confortul meu. Acum aveți un mixer de culori complet cu care să experimentați !!!

// nume variabile pentru pinii potențiometrului

int redPot = A0; int greenPot = A1; int bluePot = A2 // nume de variabile pentru pinii RGB int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); Serial, begin (9600); } void loop () {// citiți și salvați valorile din potențiometre int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // convertiți valorile de la 0-1023 la 0-255 pentru LED-ul RGB redVal = map (redVal, 0, 1023, 0, 255); greenVal = hartă (greenVal, 0, 1023, 0, 255); blueVal = hartă (blueVal, 0, 1023, 0, 255); // scrieți aceste valori convertite în fiecare culoare a LED-ului RGB analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // afișați valorile pe monitorul Serial Serial.print ("roșu:"); Serial.print (redVal); Serial.print ("verde:"); Serial.print (greenVal); Serial.print ("albastru:"); Serial.println (blueVal); }

Recomandat: