Tartalomjegyzék:

Színkeverő Arduino -val: 9 lépés (képekkel)
Színkeverő Arduino -val: 9 lépés (képekkel)

Videó: Színkeverő Arduino -val: 9 lépés (képekkel)

Videó: Színkeverő Arduino -val: 9 lépés (képekkel)
Videó: uc/IoT Kurzus 6 : ADC Analóg-Digitális Átalakítás 2/2 rész 2024, November
Anonim
Image
Image

Kövesse a szerző további műveit:

Színes gömb Arduino -val
Színes gömb Arduino -val
Doodle Bot tervezési folyamattal
Doodle Bot tervezési folyamattal
Doodle Bot tervezési folyamattal
Doodle Bot tervezési folyamattal
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano

Névjegy: Mindig tanul….. További információ a tliguori330 -ról »

A színkeverő nagyszerű projekt mindenkinek, aki az Arduino -val dolgozik és növekszik. Ennek az utasításnak a végére a gombok elforgatásával szinte minden elképzelhető színt elvegyíthet. A képzettségi szint elég alacsony ahhoz, hogy még egy teljes újonc is sikeresen befejezze, de elég érdekes is ahhoz, hogy élvezetes legyen egy tapasztalt állatorvos számára. Ennek a projektnek a költsége szinte semmi, és a legtöbb Arduino készlet tartalmazza a szükséges anyagokat. Ennek a kódnak a középpontjában néhány alapvető arduino függvény áll, amelyeket bárki, aki arduino -t használ, meg akarja érteni. Mélyre fogjuk térni az analogRead () és analogWrite () függvényekről, mint egy másik szokásos map () nevű függvényről. Ezek a linkek az ezekhez a funkciókhoz tartozó arduino referenciaoldalakra mutatnak.

1. lépés: Alkatrészek és alkatrészek

Alkatrészek és alkatrészek
Alkatrészek és alkatrészek
Alkatrészek és alkatrészek
Alkatrészek és alkatrészek
Alkatrészek és alkatrészek
Alkatrészek és alkatrészek
Alkatrészek és alkatrészek
Alkatrészek és alkatrészek

Arduino Uno

Potenciométer (x3)

RGB LED

220 ohmos ellenállás (x3)

Jumper vezetékek (x12)

Kenyeretábla

2. lépés: Tervezze meg előrehaladását

Tervezze meg előrehaladását
Tervezze meg előrehaladását

Nagyon hasznos lehet megtervezni, hogyan fogja befejezni a projektet. A kódolás lényege az egyik lépésről a másikra történő logikus haladás. Készítettem egy folyamatábrát, amely felvázolja, hogyan szeretném futtatni a vázlatomat. Az általános cél az, hogy 3 gomb (potenciométer) vezérelje az RGB LED három színét. Ennek eléréséhez létre kell hoznunk egy vázlatot, amely megfelel a folyamatábrának. Szeretnénk….

1) Olvassa el 3 különböző potenciométert, és mentse el értékeiket a változókba.

2) Ezeket az értékeket az RGB LED tartományához igazítjuk.

3) Végül írjuk az átalakított értékeket az RGB minden színéhez.

3. lépés: A potenciométerek használata

A potenciométerek használata
A potenciométerek használata
A potenciométerek használata
A potenciométerek használata

Az elektronikai készletek egyik legalapvetőbb alkatrésze, a potenciométer sokféle projektben használható. A potenciométerek úgy működnek, hogy lehetővé teszik a felhasználó számára, hogy fizikailag megváltoztassa az áramkör ellenállását. A potenciométer leginkább farmilar példája a fényszabályozó. a gomb elcsúsztatása vagy elforgatása megváltoztatja az áramkör hosszát. a hosszabb út nagyobb ellenállást eredményez. A megnövekedett ellenállás fordítva csökkenti az áramot és a fényt. Ezek különböző formájúak és méretűek lehetnek, de a legtöbbnek ugyanaz az alapbeállítása. Egy diák segítséget kért a gitárja javításához, és rájöttünk, hogy a gombok pontosan megegyeznek a potenciométerekkel. Általában a külső lábak voltak csatlakoztatva 5 volthoz és a földhöz, és a középső láb egy analóg tűhöz megy, mint az A0

4. lépés: A (3x) potenciométer bekötési rajza

(3x) potenciométer bekötési rajza
(3x) potenciométer bekötési rajza
(3x) potenciométer bekötési rajza
(3x) potenciométer bekötési rajza
(3x) potenciométer bekötési rajza
(3x) potenciométer bekötési rajza

A bal lábszár az 5V -hoz, a jobb láb pedig a GND -hez kapcsolódik. Valójában megfordíthatja ezt a két lépést, és nem fog nagyon fájni a projektnek. Mindössze annyit változtatna, hogy a gombot teljesen balra forgatja, és teljes fényerő lesz, nem pedig teljesen. A középső láb csatlakozik az Arduino egyik analóg csapjához. Mivel három gombunk lesz, háromszorosára szeretnénk növelni az elvégzett munkát. Mindegyik gomb 5 V -ot és GND -t igényel, így azokat kenyérlap segítségével lehet megosztani. A kenyértáblán lévő piros csík 5 V -ra, a kék csík pedig a földre van csatlakoztatva. Minden gombnak saját analóg csapjára van szüksége, így az A0, A1, A2 -hez csatlakoztatható.

5. lépés: Az AnalogRead () és a Variables használata

Ha a potenciométert helyesen állítja be, készen állunk az értékek leolvasására. Amikor ezt akarjuk tenni, akkor az analogRead () függvényt használjuk. A helyes szintaxis az analogRead (pin#); így középső potenciométerünk leolvasásához analógRead (A1); Annak érdekében, hogy dolgozzunk a gombokról az Arduino -hoz küldött számokkal, ezeket a számokat is el akarjuk menteni egy változóba. A kódsor elvégzi ezt a feladatot, amikor leolvassuk a potenciométert, és elmentjük aktuális számát a "val" egész változóba

int val = analogRead (A0);

6. lépés: A soros monitor használata 1 gombbal

Image
Image

Jelenleg képesek vagyunk a gombokból értékeket lekérni és egy változóban tárolni, de hasznos lenne, ha látnánk ezeket az értékeket. Ehhez ki kell használnunk a beépített soros monitort. Az alábbi kód az első vázlat, amelyet valójában az Arduino IDE -ben fogunk futtatni, amely letölthető a webhelyükről. Az üres beállításban () aktiváljuk a bemenetként a középső lábakhoz csatlakoztatott analóg érintkezőket, és aktiváljuk a soros monitort a Serial.begin (9600) segítségével; Ezután csak az egyik gombot olvassuk el, és tároljuk egy olyan változóban, mint korábban. A változás most az, hogy hozzáadtunk egy sort, amely kinyomtatja, hogy a változóban mennyi szám van tárolva. Ha összeállítja és futtatja a vázlatot, akkor megnyithatja a soros monitort, és láthatja a számok görgetését a képernyőn. Minden alkalommal, amikor a kód ismétlődik, újabb számot olvasunk és nyomtatunk. Ha elforgatja az A0-hoz kapcsolt gombot, akkor 0-1023 közötti értékeket kell látnia. később a cél az lesz, hogy mindhárom potmétert leolvassuk, amelyek további 2 analóg olvasót és 2 különböző változót igényelnek a mentéshez és nyomtatáshoz.

void setup () {

pinMode (A0, INPUT); pinMode (A1, BEMENET); pinMode (A2, BEMENET); Sorozat.kezdet (9600); } void loop () {int val = analogRead (A0); Soros.println (val); }

7. lépés: Az RGB LED használata

Az RGB LED használata
Az RGB LED használata
Az RGB LED használata
Az RGB LED használata
Az RGB LED használata
Az RGB LED használata

A 4 lábú RGB LED az egyik kedvenc alkatrészem az Arduino számára. Lenyűgözőnek találom azt a módot, ahogyan képes végtelen színeket létrehozni 3 alapszín keverékéből. A beállítás hasonló a szokásos LED -ekhez, de itt alapvetően piros, kék és zöld LED -ek vannak kombinálva. A rövid lábakat az arduino egyik PWM csapja fogja irányítani. A leghosszabb láb 5 voltra vagy földre lesz csatlakoztatva, attól függően, hogy a tiéd közös anódban vagy közös katód LED -ben van -e. A probléma megoldásának mindkét módját ki kell próbálnia. Már lesz 5v és GND csatlakoztatva a kenyértáblához, hogy könnyen cserélhető legyen. A fenti ábra 3 ellenállás használatát is mutatja. Valójában gyakran kihagyom ezt a lépést, mivel még nem volt, és a LED kialszik rajtam.

A színek elkészítéséhez az analogWrite () függvényt használjuk annak szabályozására, hogy mennyi pirosat, kéket vagy zöldet adjunk hozzá. Ennek a funkciónak a használatához meg kell mondania, hogy melyik# tűvel beszélünk, és egy 0-255 közötti számot. A 0 teljesen ki van kapcsolva, és a 255 a legnagyobb mennyiség egy színben. Csatlakoztassuk a piros lábat a 9 -es tűhöz, a zöldet a 10 -es tűhöz és a kéket a 11 -es tűhöz. Ez némi próbálkozást és hibát vehet igénybe annak megállapítására, hogy melyik láb melyik színű. Ha lila árnyalatot szeretnék készíteni, sok vöröset, zöldet és talán fél erősségű kéket is csinálhatnék. Arra biztatlak, hogy bánj ezekkel a számokkal, ez igazán izgalmas. Néhány általános példa a fenti képeken található

void setup () {

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

8. lépés: Potenciométerek használata az RGB LED vezérléséhez (egy hibával)

Potenciométerek használata az RGB LED vezérlésére (egy hibával)
Potenciométerek használata az RGB LED vezérlésére (egy hibával)
Potenciométerek használata az RGB LED vezérlésére (egy hibával)
Potenciométerek használata az RGB LED vezérlésére (egy hibával)
Potenciométerek használata az RGB LED vezérlésére (egy hibával)
Potenciométerek használata az RGB LED vezérlésére (egy hibával)

Itt az ideje, hogy elkezdjük összeolvasztani a két kódunkat. A szokásos kenyértáblán elegendő hely kell, hogy legyen mind a 3 gombhoz és az RGB LED -hez. Az ötlet az, hogy a piros kék és zöld értékek beírása helyett az egyes poteniométerekből mentett értékeket fogjuk használni a színek folyamatos megváltoztatásához. ebben az esetben 3 változóra lesz szükségünk. a redval, greenval, blueval különböző változók. Ne feledje, hogy ezeket a változókat bárminek nevezheti. ha elforgatja a "zöld" gombot, és a piros mennyiség megváltozik, akkor a neveket megfelelően egyeztetheti. most forgathatja az egyes gombokat és szabályozhatja a színeket !!

void setup () {

pinMode (A0, INPUT); pinMode (A1, BEMENET); pinMode (A2, BEMENET); pinMode (9, KIMENET); pinMode (10, KIMENET); pinMode (11, KIMENET); } void setup () {int redVal = analogRead (A0); int greenVal = analógRead (A1); int blueVal = analógRead (A2); analogWrite (9, redVal); analogWrite (10, zöldVal); analogWrite (11, blueVal); }

9. lépés: BÓNUSZ: Térkép () funkció és tisztító kód

Észreveheti, hogy amint elkezdi felfelé forgatni az egyik szín gombját, az növekedni fog, majd hirtelen leáll. Ez a növesztési minta, majd a gyors kikapcsolás 4 -szer megismétlődik, amikor teljesen felfelé fordítja a gombot. Ha emlékszel, azt mondtuk, hogy a potenciométerek 0 és 1023 közötti értékeket tudnak leolvasni. Az analogWrite () függvény csak 0 és 255 közötti értékeket fogad el. Miután a potenciométer 255 fölé emelkedik, alapvetően 0 -ról indul. Van egy szép funkció, amely segít a térkép () nevű hiba. egy lépésben egy számtartományt másik számtartománysá alakíthat át. 0-1023 számokat 0-255 számokká alakítjuk. Például, ha a gombot félig állították, akkor körülbelül 512. értéket kell olvasnia. Ez a szám 126 -ra változik, ami fele ereje a LED -nek. Ebben az utolsó vázlatban a kényelem kedvéért neveztem el a csapokat változó nevekkel. Most már kész színkeverővel kell kísérleteznie !!!

// potenciométer csapok változónevei

int redPot = A0; int greenPot = A1; int bluePot = A2 // az RGB csapok változónevei int redLED = 9; int zöldLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (pirosLED, OUTPUT); pinMode (zöldLED, OUTPUT); pinMode (blueLED, OUTPUT); Sorozat, kezdés (9600); } void loop () {// értékek olvasása és mentése a potenciométerekből int redVal = analogRead (redPot); int greenVal = analógRead (greenPot); int blueVal - analogRead (bluePot); // konvertálja az értékeket 0-1023-ról 0-255-re az RGB LED redVal = map (redVal, 0, 1023, 0, 255) értékére; greenVal = térkép (greenVal, 0, 1023, 0, 255); blueVal = térkép (blueVal, 0, 1023, 0, 255); // írja ezeket az átalakított értékeket az RGB LED analogWrite minden színére (redLED, redVal); anaogWrite (zöldLED, zöldVal); analogWrite (blueLED, blueVal); // az értékek megjelenítése a soros monitoron Serial.print ("red:"); Serial.print (redVal); Serial.print ("zöld:"); Serial.print (greenVal); Serial.print ("kék:"); Serial.println (blueVal); }

Ajánlott: