Sadržaj:

Mješalica boja s Arduinom: 9 koraka (sa slikama)
Mješalica boja s Arduinom: 9 koraka (sa slikama)

Video: Mješalica boja s Arduinom: 9 koraka (sa slikama)

Video: Mješalica boja s Arduinom: 9 koraka (sa slikama)
Video: Control Position and Speed of Stepper motor with L298N module using Arduino 2024, Studeni
Anonim
Image
Image

Autor tliguori330Slijedi više od autora:

Sfera boja s Arduinom
Sfera boja s Arduinom
Doodle Bot s procesom dizajna
Doodle Bot s procesom dizajna
Doodle Bot s procesom dizajna
Doodle Bot s procesom dizajna
Arduino Touch klavir
Arduino Touch klavir
Arduino Touch klavir
Arduino Touch klavir

O: Uvijek učim ….. Više o tliguori330 »

Mješalica u bojama izvrstan je projekt za svakoga tko radi i raste uz Arduino. Do kraja ovog uputstva moći ćete miješati i usklađivati gotovo svaku boju koju možete zamisliti okretanjem 3 gumba. Razina vještine dovoljno je niska da je čak i potpuni novak može uspješno dovršiti, ali i dovoljno zanimljiva da bude ugodna za iskusnog veterinara. Cijena ovog projekta je gotovo nikakva, a većina Arduino setova dolazi s potrebnim materijalima. U srži ovog koda nalaze se neke osnovne arduino funkcije koje će svatko tko koristi arduino htjeti razumjeti. Ući ćemo dublje u funkcije analogRead () i analogWrite () kao i mi kao druga uobičajena funkcija koja se zove map (). Ove vas veze vode na arduino referentne stranice za ove funkcije.

Korak 1: Dijelovi i komponente

Dijelovi i komponente
Dijelovi i komponente
Dijelovi i komponente
Dijelovi i komponente
Dijelovi i komponente
Dijelovi i komponente
Dijelovi i komponente
Dijelovi i komponente

Arduino Uno

Potenciometar (x3)

RGB LED

Otpor 220 ohma (x3)

Kratkospojne žice (x12)

Ploča za kruh

Korak 2: Planirajte svoj napredak

Planirajte svoj napredak
Planirajte svoj napredak

Može vam biti od velike pomoći planiranje načina na koji ćete dovršiti svoj projekt. Kodiranje je sve o logičkom napretku od jednog koraka do drugog. Napravio sam dijagram toka koji prikazuje kako želim da se moja skica izvodi. Opći cilj je imati 3 gumba (potenciometra) za kontrolu svake od tri boje RGB LED diode. Da bismo to postigli, morat ćemo stvoriti skicu koja odgovara dijagramu toka. Mi ćemo htjeti….

1) Pročitajte 3 različita potenciometra i spremite njihove vrijednosti u varijable.

2) Pretvorit ćemo te vrijednosti u raspon RGB LED.

3) Zatim ćemo na kraju zapisati te pretvorene vrijednosti u svaku od boja RGB -a.

Korak 3: Kako koristiti potenciometre

Kako koristiti potenciometre
Kako koristiti potenciometre
Kako koristiti potenciometre
Kako koristiti potenciometre

Jedna od najosnovnijih komponenti u kompletu elektronike, potenciometar se može koristiti u mnogim različitim projektima. potenciometri funkcioniraju dopuštajući korisniku da fizički promijeni otpor kruga. Najfarmilarniji primjer potenciometra je prigušivač svjetla. klizanjem ili okretanjem gumba mijenja se duljina kruga. duži put rezultira većim otporom. Povećani otpor obrnuto smanjuje struju i svjetlo se prigušuje. Mogu biti različitih oblika i veličina, ali većina ima iste osnovne postavke. Učenik je zatražio pomoć pri popravljanju gitare i otkrili smo da su gumbi na njoj potpuno isti kao i potenciometri. Općenito, vanjske noge bile su spojene na 5 volti i uzemljene, a srednja noga ide na analogni pin poput A0

Korak 4: Shema ožičenja za (3x) potenciometar

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

Krajnji lijevi krak bit će spojen na 5v, a krajnji desni krak na GND. Zapravo možete promijeniti ova dva koraka i to neće jako naštetiti projektu. Sve što bi se promijenilo okretanjem gumba do kraja ulijevo bit će puna svjetlina, a ne do kraja. Srednji krak bit će spojen na jedan od analognih pinova na Arduinu. Budući da ćemo imati tri gumba, htjet ćemo utrostručiti posao koji smo upravo obavili. Svakom gumbu potrebno je 5v i GND pa se oni mogu dijeliti pomoću ploče za kruh. Crvena traka na ploči za kruh spojena je na 5 volti, a plava traka na masu. Svakom gumbu je potreban vlastiti analogni pin pa su spojeni na A0, A1, A2.

Korak 5: Upotreba AnalogRead () i varijabli

S ispravno postavljenim potenciometrom spremni smo za čitanje tih vrijednosti. Kad god želimo to učiniti, koristimo funkciju analogRead (). Ispravna sintaksa je analogRead (pin#); pa bismo za očitavanje našeg srednjeg potenciometra analiziraliRead (A1); Kako bismo radili s brojevima koji se šalju s gumba na Arduino, htjet ćemo i spremiti te brojeve u varijablu. Redak koda će ispuniti ovaj zadatak dok čitamo potenciometar i spremamo njegov trenutni broj u cjelobrojnu varijablu "val"

int val = analogRead (A0);

Korak 6: Korištenje serijskog monitora s 1 gumbom

Image
Image

Trenutno možemo dobiti vrijednosti iz gumba i pohraniti ih u varijablu, ali bilo bi korisno kada bismo vidjeli te vrijednosti. Da bismo to učinili, moramo koristiti ugrađeni serijski monitor. Donji kôd je prva skica koju ćemo zapravo izvesti u Arduino IDE -u, a može se preuzeti na njihovoj web stranici. U postavci void () aktivirat ćemo analogne pinove spojene na svaku srednju nogu kao ULAZ i aktivirati serijski monitor pomoću Serial.begin (9600); zatim čitamo samo jedno dugme i spremamo ga u varijablu kao i prije. Promjena je sada što smo dodali redak koji ispisuje koji je broj pohranjen u varijabli. Ako sastavite i pokrenete skicu, tada možete otvoriti serijski monitor i vidjeti kako se brojevi pomiču na zaslonu. Svaki put kada se kôd petlja čitamo i ispisujemo drugi broj. Ako okrenete gumb spojen na A0, trebali biste vidjeti vrijednosti u rasponu od 0-1023. kasnije će cilj biti čitanje sva 3 potntiometra za što bi bilo potrebno još 2 analogna čitanja i 2 različite varijable za spremanje i ispis.

void setup () {

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

Korak 7: Upotreba RGB LED diode

Korištenje RGB LED diode
Korištenje RGB LED diode
Korištenje RGB LED diode
Korištenje RGB LED diode
Korištenje RGB LED diode
Korištenje RGB LED diode

RGB LED sa 4 noge jedna je od mojih omiljenih komponenti za Arduino. Smatram da je način na koji može stvoriti beskrajne boje iz mješavina 3 osnovne boje fascinantnim. Postavljanje je slično bilo kojoj uobičajenoj LED, ali ovdje u osnovi imamo crvenu, plavu i zelenu LED diodu zajedno. Svakim kratkim nogama upravljat će jedan od PWM pinova na arduinu. Najduža noga bit će spojena na 5 volti ili uzemljenje, ovisno o tome je li vaša u zajedničkoj anodi ili zajedničkoj LED katodi. Morat ćete isprobati oba načina da to riješite. Već ćemo imati 5V i GND spojen na matičnu ploču na koju bi se trebalo lako mijenjati. Gornji dijagram prikazuje i korištenje 3 otpornika. Zapravo preskačem ovaj korak jer ga još nisam imao i LED dioda mi je zasvijetlila.

Za izradu boja koristit ćemo funkciju analogWrite () za kontrolu količine crvene, plave ili zelene boje za dodavanje. Da biste koristili ovu funkciju, morate reći s kojim ćemo pinom# razgovarati i broj između 0-255. 0 je potpuno isključeno, a 255 je najveća količina jedne boje. Spojimo crvenu nogu na pin 9, zelenu na pin 10 i plavu na pin 11. To bi moglo potrajati pokušajem i pogreškom da bismo shvatili koja je noga koje boje. Da želim napraviti ljubičastu nijansu, mogao bih napraviti puno crvene, a ne zelene, a možda i pola jačine plave. Potičem vas da se pozabavite ovim brojkama, zaista je uzbudljivo. Neki uobičajeni primjeri nalaze se na gornjim slikama

void setup () {

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

Korak 8: Upotreba potenciometara za kontrolu RGB LED diode (s jednom greškom)

Korištenje potenciometara za kontrolu RGB LED (s jednom greškom)
Korištenje potenciometara za kontrolu RGB LED (s jednom greškom)
Korištenje potenciometara za kontrolu RGB LED diode (s jednom greškom)
Korištenje potenciometara za kontrolu RGB LED diode (s jednom greškom)
Korištenje potenciometara za kontrolu RGB LED diode (s jednom greškom)
Korištenje potenciometara za kontrolu RGB LED diode (s jednom greškom)

Vrijeme je da spojimo naša dva koda. Trebali biste imati dovoljno mjesta na standardnoj ploči za postavljanje sva 3 gumba i RGB LED diode. Ideja je umjesto upisivanja vrijednosti za crvenu plavu i zelenu, mi ćemo koristiti vrijednosti spremljene sa svakog potenciometra za stalno mijenjanje boja. u ovom slučaju trebat će nam 3 varijable. redval, greenval, blueval različite su varijable. Imajte na umu da ovim varijablama možete dati bilo koje ime. ako okrenete gumb "zeleno" i promijeni se crveni iznos, možete promijeniti imena da se ispravno podudaraju. sada možete okrenuti svaki gumb i kontrolirati boje !!

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

Korak 9: BONUS: Funkcija karte () i kod za čišćenje

Možda ćete primijetiti da će, dok počnete okretati gumb za jednu boju prema gore, narasti, a zatim odjednom pasti dolje. Ovaj obrazac rasta i brzog isključivanja ponavlja se 4 puta dok okrećete gumb do kraja. Ako se sjećate, rekli smo da potenciometri mogu očitavati vrijednosti između 0 i 1023. Funkcija analogWrite () prihvaća samo vrijednosti između 0 i 255. jednom kad potenciometar pređe 255, u osnovi počinje s 0. Postoji lijepa funkcija koja vam može pomoći pri bug zvan map (). možete pretvoriti jedan raspon brojeva u drugi raspon brojeva u jednom koraku. pretvorit ćemo brojeve od 0-1023 u brojeve od 0-255. Na primjer, ako je gumb postavljen na pola puta, trebao bi čitati oko 512. taj bi se broj promijenio u 126, što je upola jača dioda za LED. U ovoj završnoj skici nazvao sam igle s promjenjivim imenima radi moje udobnosti. Sada imate dovršenu mješalicu boja za eksperimentiranje !!!

// nazivi varijabli za pinove potenciometra

int redPot = A0; int greenPot = A1; int bluePot = A2 // nazivi varijabli za RGB pinove int redLED = 9; int zelenaLED = 10; int plavaLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (crvenoLED, OUTPUT); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); Serijski, početak (9600); } void loop () {// čitanje i spremanje vrijednosti s potenciometara int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // pretvorimo vrijednosti od 0-1023 u 0-255 za RGB LED redVal = kartu (redVal, 0, 1023, 0, 255); greenVal = karta (greenVal, 0, 1023, 0, 255); blueVal = karta (blueVal, 0, 1023, 0, 255); // zapisujemo ove pretvorene vrijednosti u svaku boju RGB LED analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // prikazuju vrijednosti na Serijskom monitoru Serial.print ("crveno:"); Serijski.ispis (redVal); Serial.print ("zeleno:"); Serijski.ispis (greenVal); Serial.print ("plavo:"); Serial.println (blueVal); }

Preporučeni: