Kazalo:

Barvni mešalnik z Arduinom: 9 korakov (s slikami)
Barvni mešalnik z Arduinom: 9 korakov (s slikami)

Video: Barvni mešalnik z Arduinom: 9 korakov (s slikami)

Video: Barvni mešalnik z Arduinom: 9 korakov (s slikami)
Video: Высокая плотность 2022 2024, Julij
Anonim
Image
Image

Avtor tliguori330Sledite še avtorja:

Barvna sfera z Arduinom
Barvna sfera z Arduinom
Doodle Bot s postopkom oblikovanja
Doodle Bot s postopkom oblikovanja
Doodle Bot s postopkom oblikovanja
Doodle Bot s postopkom oblikovanja
Arduino klavir na dotik
Arduino klavir na dotik
Arduino klavir na dotik
Arduino klavir na dotik

O: Vedno se učim ….. Več o tliguori330 »

Mešalnik barv je odličen projekt za vsakogar, ki dela in raste z Arduinom. Do konca tega navodila boste lahko mešali in ujemali skoraj vse barve, ki si jih lahko zamislite z obračanjem treh gumbov. Stopnja spretnosti je dovolj nizka, da jo lahko uspešno opravi tudi popoln novinec, a tudi dovolj zanimiva, da je zabavna za izkušenega veterinarja. Stroški tega projekta so skoraj nič in večina kompletov Arduino prihaja z potrebnimi materiali. V jedru te kode je nekaj osnovnih funkcij arduino, ki jih bo želel razumeti vsak, ki uporablja arduino. Podrobneje bomo govorili o funkcijah analogRead () in analogWrite (), kot smo še ena običajna funkcija, imenovana map (). Te povezave vas pripeljejo do referenčnih strani arduino za te funkcije.

Korak: Deli in komponente

Deli in komponente
Deli in komponente
Deli in komponente
Deli in komponente
Deli in komponente
Deli in komponente
Deli in komponente
Deli in komponente

Arduino Uno

Potenciometer (x3)

RGB LED

220 ohmski upor (x3)

Mostične žice (x12)

Krušna deska

2. korak: Načrtujte svoj napredek

Načrtujte svoj napredek
Načrtujte svoj napredek

Pri načrtovanju, kako boste dokončali svoj projekt, je lahko zelo koristno. Kodiranje je vse o logičnem napredovanju od enega koraka do drugega. Naredil sem diagram poteka, ki opisuje, kako želim, da se moja skica izvaja. Splošni cilj je, da imajo trije gumbi (potenciometri), ki nadzorujejo vsako od treh barv LED RGB. Da bi to dosegli, bomo morali ustvariti skico, ki ustreza diagramu poteka. Želeli bomo….

1) Preberite 3 različne potenciometre in shranite njihove vrednosti v spremenljivke.

2) Te vrednosti bomo pretvorili v obseg LED RGB.

3) Nato bomo te pretvorjene vrednosti zapisali v vsako od barv RGB.

3. korak: Kako uporabljati potenciometre

Kako uporabljati potenciometre
Kako uporabljati potenciometre
Kako uporabljati potenciometre
Kako uporabljati potenciometre

Ena izmed najosnovnejših komponent elektronskih kompletov je potenciometer, ki se lahko uporablja v številnih različnih projektih. potenciometri delujejo tako, da uporabniku omogočajo fizično spreminjanje upora tokokroga. Najbolj farmilarni primer potenciometra je zatemnilnik svetlobe. z drsenjem ali obračanjem gumba se spremeni dolžina tokokroga. daljša pot povzroči več odpora. Povečan upor obratno zmanjša tok in svetloba zatemni. Te so lahko različnih oblik in velikosti, vendar ima večina enake osnovne nastavitve. Učenec je prosil za pomoč pri popravljanju kitare in ugotovili smo, da so gumbi na njej popolnoma enaki potenciometrom. Na splošno ste bili zunanji kraki povezani s 5 volti in ozemljeni, srednja noga pa gre na analogni pin, kot je A0

4. korak: Shema ožičenja za (3x) potenciometer

Shema ožičenja za (3x) potenciometer
Shema ožičenja za (3x) potenciometer
Shema ožičenja za (3x) potenciometer
Shema ožičenja za (3x) potenciometer
Shema ožičenja za (3x) potenciometer
Shema ožičenja za (3x) potenciometer

Leva noga bo priključena na 5V, desna pa na GND. Ta dva koraka lahko dejansko obrnete in to ne bo zelo škodilo projektu. Vse, kar bi se spremenilo, je, da gumb obrnete do konca v levo in bo polna svetlost namesto do konca. Srednji krak bo povezan z enim od analognih zatičev na Arduinu. Ker bomo imeli tri gumbe, bomo želeli potrojiti delo, ki smo ga pravkar opravili. Vsak gumb potrebuje 5v in GND, tako da jih lahko delite z desko za kruh. Rdeči trak na plošči za kruh je priključen na 5 voltov, modri trak pa na ozemljitev. Vsak gumb potrebuje svoj analogni pin, zato je povezan z A0, A1, A2.

5. korak: Uporaba AnalogRead () in spremenljivk

S pravilno nastavljenim potenciometrom smo pripravljeni prebrati te vrednosti. Kadar koli želimo to narediti, uporabimo funkcijo analogRead (). Pravilna skladnja je analogRead (pin#); zato bi za branje našega srednjega potenciometra analiziraliRead (A1); Če želite delati s številkami, ki se pošiljajo iz gumba v Arduino, bomo te številke želeli shraniti tudi v spremenljivko. Vrstica kode bo to nalogo opravila, ko beremo potenciometer in shranimo njegovo trenutno številko v celoštevilsko spremenljivko "val"

int val = analogRead (A0);

6. korak: Uporaba serijskega monitorja z 1 gumbom

Image
Image

Trenutno lahko iz gumbov dobimo vrednosti in jih shranimo v spremenljivko, vendar bi bilo v pomoč, če bi te vrednosti videli. Za to moramo uporabiti vgrajen serijski monitor. Spodnja koda je prva skica, ki jo bomo dejansko zagnali v Arduino IDE, ki jo lahko prenesete na njihovo spletno mesto. V void setup () bomo aktivirali analogne nožice, povezane z vsako srednjo nogo, kot INPUT in aktivirali Serial Monitor z uporabo Serial.begin (9600); naslednjič preberemo samo enega od gumbov in ga shranimo v spremenljivko kot prej. Sprememba je zdaj, da smo dodali vrstico, ki natisne, katero število je shranjeno v spremenljivki. Če sestavite in zaženete skico, lahko odprete serijski monitor in vidite, kako se na zaslonu premikajo številke. Vsakič, ko se koda vrti, beremo in tiskamo drugo številko. Če gumb obrnete na A0, bi morali videti vrednosti v razponu od 0-1023. pozneje bo cilj prebrati vse 3 potntiometre, ki bi za shranjevanje in tiskanje zahtevali še 2 analogna branja in 2 različni spremenljivki.

void setup () {

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

7. korak: Uporaba LED RGB

Uporaba LED RGB
Uporaba LED RGB
Uporaba LED RGB
Uporaba LED RGB
Uporaba LED RGB
Uporaba LED RGB

4 Legged RGB LED je ena mojih najljubših komponent za Arduino. Način, kako lahko ustvari neskončne barve iz mešanic treh osnovnih barv, me fascinira. Nastavitev je podobna vsaki običajni LED, vendar tukaj imamo v bistvu rdečo, modro in zeleno LED skupaj. Kratke noge bodo nadzorovane z enim od PWM zatičev na arduinu. Najdaljša noga bo priključena na 5 voltov ali ozemljitev, odvisno če je vaša na skupni anodi ali skupni katodni LED. Za rešitev tega problema boste morali preizkusiti oba načina. Na ohišje bomo že priključili 5V in GND, ki bi ga bilo treba enostavno spremeniti. Zgornji diagram prikazuje uporabo treh uporov. Pravzaprav pogosto preskočim ta korak, saj ga še nisem imel in mi je utripala LED.

Za barvanje bomo s funkcijo analogWrite () nadzorovali, koliko rdeče, modre ali zelene barve dodamo. Če želite uporabiti to funkcijo, morate povedati, s katerim pin# se bomo pogovarjali, in številko med 0-255. 0 je popolnoma izklopljen, 255 pa največja količina ene barve. Omogočimo povezovanje rdeče noge na pin 9, zelene na pin 10 in modre na pin 11. To lahko traja nekaj poskusov in napak, da ugotovimo, katera noga je katere barve. Če bi želel narediti vijoličen odtenek, bi lahko naredil veliko rdeče, brez zelene in morda polovično modro. Spodbujam vas, da se poigrate s temi številkami, to je res razburljivo. Nekaj pogostih primerov je na zgornjih slikah

void setup () {

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

8. korak: Uporaba potenciometrov za nadzor LED RGB (z eno napako)

Uporaba potenciometrov za nadzor LED RGB (z eno napako)
Uporaba potenciometrov za nadzor LED RGB (z eno napako)
Uporaba potenciometrov za nadzor LED RGB (z eno napako)
Uporaba potenciometrov za nadzor LED RGB (z eno napako)
Uporaba potenciometrov za nadzor LED RGB (z eno napako)
Uporaba potenciometrov za nadzor LED RGB (z eno napako)

Čas je, da začnemo združevati dve kodi. Na standardni plošči bi morali imeti ravno dovolj prostora, da se prilegajo vsem trem gumbom in LED RGB. Zamisel je, da namesto da vnašamo vrednosti za rdečo modro in zeleno, bomo vrednosti, shranjene na vsakem potenciometru, uporabljali za nenehno spreminjanje barv. v tem primeru bomo potrebovali 3 spremenljivke. redval, greenval, blueval so vse različne spremenljivke. Upoštevajte, da lahko te spremenljivke poimenujete karkoli želite. če zavrtite gumb "zeleno" in se rdeča količina spremeni, lahko imena pravilno preklopite. zdaj lahko obrnete vsak gumb in nadzirate barve !!

void setup () {

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); }

9. korak: BONUS: Funkcija zemljevida () in čistejša koda

Morda boste opazili, da bo gumb, ko začnete obračati eno barvo navzgor, narasel in nato nenadoma padel navzdol. Ta vzorec naraščanja in nato hitrega izklopa se ponovi 4 -krat, ko gumb obrnete do konca. Če se spomnite, smo rekli, da potenciometri lahko berejo vrednosti med 0 in 1023. Funkcija analogWrite () sprejema le vrednosti med 0 in 255. ko potenciometer preseže 255, se v bistvu začne znova pri 0. Obstaja dobra funkcija, ki vam pomaga pri hrošč, imenovan map (). v enem koraku lahko pretvorite en obseg števil v drug obseg števil. pretvorili bomo številke od 0-1023 v številke od 0-255. Na primer, če bi bil gumb nastavljen na polovico, bi se moral glasiti približno 512. to število bi spremenili v 126, kar je polovica jakosti LED. V tej zadnji skici sem za svoje udobje poimenoval zatiče z imeni spremenljivk. Zdaj imate dokončan mešalnik barv za eksperimentiranje !!!

// imena spremenljivk za zatiče potenciometra

int redPot = A0; int greenPot = A1; int bluePot = A2 // imena spremenljivk za RGB zatiče int redLED = 9; int zelenaLED = 10; int modraLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (rdeča LED, IZHOD); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); Serijski, začetek (9600); } void loop () {// branje in shranjevanje vrednosti iz potenciometrov int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // pretvorimo vrednosti od 0-1023 v 0-255 za RGB LED redVal = map (redVal, 0, 1023, 0, 255); greenVal = zemljevid (greenVal, 0, 1023, 0, 255); blueVal = zemljevid (blueVal, 0, 1023, 0, 255); // te pretvorjene vrednosti zapišemo v vsako barvo LED RGB analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // prikaže vrednosti na serijskem monitorju Serial.print ("rdeče:"); Serial.print (redVal); Serial.print ("zelena:"); Serial.print (greenVal); Serial.print ("modra:"); Serial.println (blueVal); }

Priporočena: