Turinys:

Spalvų maišytuvas su „Arduino“: 9 žingsniai (su nuotraukomis)
Spalvų maišytuvas su „Arduino“: 9 žingsniai (su nuotraukomis)

Video: Spalvų maišytuvas su „Arduino“: 9 žingsniai (su nuotraukomis)

Video: Spalvų maišytuvas su „Arduino“: 9 žingsniai (su nuotraukomis)
Video: Leap Motion SDK 2024, Liepa
Anonim
Image
Image

Sekite daugiau autoriaus:

Spalvų sfera su „Arduino“
Spalvų sfera su „Arduino“
„Doodle Bot“su projektavimo procesu
„Doodle Bot“su projektavimo procesu
„Doodle Bot“su projektavimo procesu
„Doodle Bot“su projektavimo procesu
„Arduino Touch“fortepijonas
„Arduino Touch“fortepijonas
„Arduino Touch“fortepijonas
„Arduino Touch“fortepijonas

Apie: Visada mokosi….. Daugiau apie tliguori330 »

Spalvų maišytuvas yra puikus projektas visiems, dirbantiems ir augantiems su „Arduino“. Pasibaigus šiam nurodymui, sukdami 3 rankenėles galėsite sumaišyti ir suderinti beveik visas įsivaizduojamas spalvas. Įgūdžių lygis yra pakankamai žemas, kad net visiškai naujokas gali jį sėkmingai užbaigti, bet taip pat pakankamai įdomus, kad būtų malonus patyrusiam veterinarui. Šio projekto kaina yra beveik nieko, o dauguma „Arduino“rinkinių yra su reikalingomis medžiagomis. Šio kodo esmė yra keletas pagrindinių arduino funkcijų, kurias norės suprasti visi, naudojantys arduino. Mes gilinsimės į analogRead () ir analogWrite () funkcijas, kaip ir kita įprasta funkcija, vadinama map (). Šios nuorodos nukreipia jus į šių funkcijų arduino nuorodų puslapius.

1 žingsnis: dalys ir komponentai

Dalys ir komponentai
Dalys ir komponentai
Dalys ir komponentai
Dalys ir komponentai
Dalys ir komponentai
Dalys ir komponentai
Dalys ir komponentai
Dalys ir komponentai

Arduino Uno

Potenciometras (x3)

RGB šviesos diodas

220 omų rezistorius (x3)

Trumpieji laidai (x12)

Bandomoji Lenta

2 žingsnis: planuokite savo pažangą

Suplanuokite savo pažangą
Suplanuokite savo pažangą

Gali būti labai naudinga suplanuoti, kaip užbaigsite savo projektą. Kodavimas yra susijęs su loginiu progresu iš vieno žingsnio į kitą. Aš sudariau schemą, kurioje aprašoma, kaip noriu, kad mano eskizas būtų vykdomas. Bendras tikslas yra turėti 3 rankenėles (potenciometrus), valdančias kiekvieną iš trijų RGB šviesos diodų spalvų. Norėdami tai padaryti, turime sukurti eskizą, atitinkantį schemą. Mes norėsime….

1) Perskaitykite 3 skirtingus potenciometrus ir išsaugokite jų reikšmes kintamuosiuose.

2) Mes konvertuosime šias vertes, kad jos atitiktų RGB šviesos diodo diapazoną.

3) Tada galiausiai parašysime tas konvertuotas vertes į kiekvieną RGB spalvą.

3 žingsnis: kaip naudoti potenciometrus

Kaip naudotis potenciometrais
Kaip naudotis potenciometrais
Kaip naudotis potenciometrais
Kaip naudotis potenciometrais

Vienas iš pagrindinių elektronikos rinkinių komponentų, potenciometras gali būti naudojamas daugelyje skirtingų projektų. potenciometrai veikia, leisdami vartotojui fiziškai pakeisti grandinės varžą. Labiausiai farmilarinis potenciometro pavyzdys yra šviesos reguliatorius. slenkant ar sukant rankenėlę keičiamas grandinės ilgis. ilgesnis kelias sukelia didesnį pasipriešinimą. Padidėjęs pasipriešinimas atvirkščiai sumažina srovę ir apšvietimą. Jie gali būti įvairių formų ir dydžių, tačiau dauguma jų turi tą pačią pagrindinę sąranką. Vienas studentas paprašė pagalbos sutvarkant gitarą ir sužinojome, kad jo rankenėlės yra visiškai tokios pačios kaip potenciometrai. Apskritai jūs buvote išorinės kojos, prijungtos prie 5 voltų ir žemės, o vidurinė koja eina į analoginį kaištį, pvz., A0

4 žingsnis: (3x) potenciometro prijungimo schema

(3x) potenciometro prijungimo schema
(3x) potenciometro prijungimo schema
(3x) potenciometro prijungimo schema
(3x) potenciometro prijungimo schema
(3x) potenciometro prijungimo schema
(3x) potenciometro prijungimo schema

Kairė dauguma kojų bus prijungta prie 5v, o dešinė - prie GND. Jūs iš tikrųjų galite pakeisti šiuos du veiksmus ir tai labai nepakenks projektui. Viskas, kas pasikeistų, yra sukti rankenėlę į kairę, o ne visą šviesą. Vidurinė koja bus prijungta prie vieno iš analoginių „Arduino“kaiščių. Kadangi turėsime tris rankenėles, norėsime trigubai padidinti ką tik atliktus darbus. Kiekvienai rankenėlei reikia 5 V ir GND, todėl jas galima dalintis naudojant duonos lentą. Raudona juostelė ant duonos lentos yra prijungta prie 5 voltų, o mėlyna - prie žemės. Kiekvienai rankenėlei reikia savo analoginio kaiščio, kad jos būtų prijungtos prie A0, A1, A2.

5 veiksmas: „AnalogRead“() ir kintamųjų naudojimas

Teisingai nustatę potenciometrą, mes pasiruošę nuskaityti šias vertes. Kai norime tai padaryti, naudojame funkciją analogRead (). Teisinga sintaksė yra analogRead (pin#); taigi, norėdami perskaityti mūsų vidurinį potenciometrą, turėtume analogRead (A1); Norėdami dirbti su skaičiais, siunčiamais iš rankenėlės į „Arduino“, mes taip pat norime išsaugoti tuos skaičius kintamajame. Kodo eilutė atliks šią užduotį, kai perskaitysime potenciometrą ir išsaugosime dabartinį jo skaičių sveikųjų skaičių kintamajame „val“

int val = analogRead (A0);

6 veiksmas: serijinio monitoriaus naudojimas su 1 rankenėle

Image
Image

Šiuo metu mes galime gauti reikšmes iš rankenėlių ir išsaugoti jas kintamajame, tačiau būtų naudinga, jei galėtume pamatyti šias vertes. Norėdami tai padaryti, turime naudoti įmontuotą nuoseklųjį monitorių. Žemiau pateiktas kodas yra pirmasis eskizas, kurį iš tikrųjų vykdysime „Arduino IDE“, kurį galima atsisiųsti iš jų svetainės. Tuštumos sąrankoje () suaktyvinsime analoginius kaiščius, prijungtus prie kiekvienos vidurinės kojos, kaip įvestį ir suaktyvinsime serijinį monitorių naudojant Serial.begin (9600); Toliau mes skaitome tik vieną iš rankenėlių ir saugome ją kintamajame, kaip anksčiau. Pakeitimas yra tas, kad pridėjome eilutę, kuri spausdina, koks skaičius yra saugomas kintamajame. Jei sukompiliuosite ir paleisite eskizą, galėsite atidaryti serijinį monitorių ir ekrane matyti slenkančius skaičius. Kiekvieną kartą, kai kodo kilpos skaitome ir spausdiname kitą numerį. Jei pasuksite rankenėlę, prijungtą prie A0, turėtumėte matyti reikšmes nuo 0 iki 1023. vėliau tikslas bus perskaityti visus 3 potentiometrus, kuriems išsaugoti ir spausdinti reikės dar 2 analoginių skaitymų ir 2 skirtingų kintamųjų.

void setup () {

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

7 veiksmas: RGB šviesos diodo naudojimas

Naudojant RGB šviesos diodą
Naudojant RGB šviesos diodą
Naudojant RGB šviesos diodą
Naudojant RGB šviesos diodą
Naudojant RGB šviesos diodą
Naudojant RGB šviesos diodą

4 kojų RGB LED yra vienas iš mano mėgstamiausių „Arduino“komponentų. Man įdomu tai, kaip jis gali sukurti begalines spalvas iš trijų pagrindinių spalvų mišinių. Sąranka yra panaši į bet kurį įprastą šviesos diodą, tačiau čia iš esmės yra raudoni, mėlyni ir žali šviesos diodai. Trumpas kojas valdys vienas iš arduino PWM kaiščių. Ilgiausia kojelė bus prijungta prie 5 voltų arba įžeminimo, priklausomai nuo to, ar jūs naudojate bendrą anodą, ar bendrą katodo šviesos diodą. Turėsite išbandyti abu problemos sprendimo būdus. Mes jau turėsime 5v ir GND prijungtus prie duonos lentos, kad ją būtų lengva pakeisti. Aukščiau pateiktoje diagramoje taip pat parodyta, kaip naudoti 3 rezistorius. Aš iš tikrųjų dažnai praleidžiu šį žingsnį, nes neturėjau, o šviesos diodas užsidega.

Norėdami sukurti spalvas, mes naudosime funkciją „analogWrite ()“, kad kontroliuotume, kiek raudonos, mėlynos ar žalios spalvos pridėti. Norėdami naudoti šią funkciją, turite pasakyti, su kokiu kaiščiu# kalbėsime, ir skaičių tarp 0–255. 0 yra visiškai išjungtas, o 255 - didžiausias vienos spalvos kiekis. Prijunkite raudoną kojelę prie 9 kaiščio, žalią prie 10 kaiščio ir mėlyną prie 11. kaiščio. Norint išsiaiškinti, kurios kojos spalva yra, gali prireikti bandymų ir klaidų. Jei norėčiau padaryti purpurinį atspalvį, galėčiau padaryti daug raudonos, be žalios, o gal ir pusiau mėlynos spalvos. Kviečiu susimąstyti apie šiuos skaičius, tai tikrai įdomu. Kai kurie įprasti pavyzdžiai yra aukščiau esančiose nuotraukose

void setup () {

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

8 veiksmas: potenciometrų naudojimas RGB šviesos diodui valdyti (su viena klaida)

Potenciometrų naudojimas RGB šviesos diodui valdyti (su viena klaida)
Potenciometrų naudojimas RGB šviesos diodui valdyti (su viena klaida)
Potenciometrų naudojimas RGB šviesos diodui valdyti (su viena klaida)
Potenciometrų naudojimas RGB šviesos diodui valdyti (su viena klaida)
Potenciometrų naudojimas RGB šviesos diodui valdyti (su viena klaida)
Potenciometrų naudojimas RGB šviesos diodui valdyti (su viena klaida)

Atėjo laikas pradėti sujungti abu mūsų kodus. Ant standartinės duonos lentos turėtumėte turėti pakankamai vietos, kad tilptų visos 3 rankenėlės ir RGB šviesos diodas. Idėja yra ta, kad vietoj to, kad įvestumėte raudonos mėlynos ir žalios spalvos reikšmes, mes naudosime iš kiekvieno poteniometro išsaugotas vertes, kad nuolat keistume spalvas. šiuo atveju mums reikės 3 kintamųjų. raudonas, žalias, mėlynas yra skirtingi kintamieji. Atminkite, kad šiuos kintamuosius galite pavadinti bet kuo. pasukus „žalią“rankenėlę ir pasikeitus raudonai sumai, galite pakeisti pavadinimus, kad jie atitiktų teisingai. Dabar galite pasukti kiekvieną rankenėlę ir valdyti spalvas !!

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, žaliaVal); analogWrite (11, mėlynasVal); }

9 veiksmas: BONUS: žemėlapio () funkcija ir valymo kodas

Galite pastebėti, kad pradėjus sukti vienos spalvos rankenėlę aukštyn, ji augs ir staiga nukris. Šis augimo ir greito išjungimo modelis kartojasi 4 kartus, kai sukate rankenėlę iki galo. Jei prisimenate, sakėme, kad potenciometrai gali nuskaityti reikšmes nuo 0 iki 1023. Funkcija analogWrite () priima tik reikšmes nuo 0 iki 255. Kai potenciometras viršija 255, jis iš esmės prasideda nuo 0. Yra puiki funkcija, padedanti klaida, vadinama žemėlapiu (). vienu žingsniu galite konvertuoti vieną skaičių diapazoną į kitą skaičių diapazoną. konvertuosime skaičius nuo 0-1023 į skaičius nuo 0-255. Pavyzdžiui, jei rankenėlė buvo nustatyta iki pusės, ji turėtų būti apie 512. šis skaičius būtų pakeistas į 126, o tai yra pusė šviesos diodo stiprumo. Šiame paskutiniame eskize aš savo patogumui pavadinau kaiščius kintamaisiais pavadinimais. Dabar turite pilną spalvų maišytuvą, su kuriuo galite eksperimentuoti !!!

// kintamieji potenciometro kaiščių pavadinimai

int redPot = A0; int greenPot = A1; int bluePot = A2 // kintamieji RGB kaiščių pavadinimai int redLED = 9; int žaliaLED = 10; int mėlynaLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (žaliasPOT, INPUT); pinMode („bluePot“, „INPUT“); pinMode (raudonas LED, OUTPUT); pinMode (žaliasLED, OUTPUT); pinMode (mėlyna LED, OUTPUT); Serija, pradžia (9600); } void loop () {// skaityti ir išsaugoti vertes iš potenciometrų int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // konvertuoti RGB šviesos diodo reikšmes iš 0-1023 į 0-255 redVal = map (redVal, 0, 1023, 0, 255); greenVal = žemėlapis (greenVal, 0, 1023, 0, 255); blueVal = žemėlapis (blueVal, 0, 1023, 0, 255); // įrašykite šias konvertuotas vertes į kiekvieną RGB LED analogWrite spalvą (redLED, redVal); anaogWrite (žaliasLED, žaliasVal); analogWrite („blueLED“, „blueVal“); // rodyti vertes serijiniame monitoriuje Serial.print ("red:"); Serial.print (redVal); Serial.print ("žalia:"); Serial.print (greenVal); Serial.print ("mėlyna:"); Serial.println (blueVal); }

Rekomenduojamas: