Satura rādītājs:

Krāsu maisītājs ar Arduino: 9 soļi (ar attēliem)
Krāsu maisītājs ar Arduino: 9 soļi (ar attēliem)

Video: Krāsu maisītājs ar Arduino: 9 soļi (ar attēliem)

Video: Krāsu maisītājs ar Arduino: 9 soļi (ar attēliem)
Video: Как управлять приводом с помощью Arduino - Robojax 2024, Novembris
Anonim
Image
Image

Seko vairāk autoram:

Krāsu sfēra ar Arduino
Krāsu sfēra ar Arduino
Doodle Bot ar projektēšanas procesu
Doodle Bot ar projektēšanas procesu
Doodle Bot ar projektēšanas procesu
Doodle Bot ar projektēšanas procesu
Arduino Touch klavieres
Arduino Touch klavieres
Arduino Touch klavieres
Arduino Touch klavieres

Par: Vienmēr mācīties….. Vairāk par tliguori330 »

Krāsu maisītājs ir lielisks projekts ikvienam, kurš strādā un aug kopā ar Arduino. Līdz šīs pamācības beigām, pagriežot 3 pogas, varēsiet sajaukt un saskaņot gandrīz visas iedomājamās krāsas. Prasmju līmenis ir pietiekami zems, lai pat pilnīgs iesācējs to varētu veiksmīgi pabeigt, bet arī pietiekami interesants, lai būtu patīkams pieredzējušam veterinārārstam. Šī projekta izmaksas ir gandrīz nekas, un lielākajai daļai Arduino komplektu ir nepieciešamie materiāli. Šī koda pamatā ir dažas fundamentālas arduino funkcijas, kuras ikviens, kas izmanto arduino, vēlēsies saprast. Mēs iedziļināsimies funkcijās analogRead () un analogWrite (), kā mēs kā vēl viena parasta funkcija, ko sauc par map (). Šīs saites novirza uz šo funkciju arduino atsauces lapām.

1. darbība: detaļas un komponenti

Daļas un komponenti
Daļas un komponenti
Daļas un komponenti
Daļas un komponenti
Daļas un komponenti
Daļas un komponenti
Daļas un komponenti
Daļas un komponenti

Arduino Uno

Potenciometrs (x3)

RGB gaismas diode

220 omu rezistors (x3)

Jumper vadi (x12)

Maizes dēlis

2. solis: plānojiet savu progresu

Plānojiet savu progresu
Plānojiet savu progresu

Var būt ļoti noderīgi plānot, kā pabeigsiet savu projektu. Kodēšana ir saistīta ar loģisku progresu no viena soļa uz nākamo. Es izveidoju blokshēmu, kurā izklāstīts, kā es vēlos, lai mana skice tiktu izpildīta. Vispārējais mērķis ir 3 pogas (potenciometri), kas kontrolē katru no trim RGB gaismas diodes krāsām. Lai to paveiktu, mums būs jāizveido skice, kas atbilst plūsmas diagrammai. Mēs gribēsim….

1) Izlasiet 3 dažādus potenciometrus un saglabājiet to vērtības mainīgajos.

2) Mēs pārveidosim šīs vērtības, lai tās atbilstu RGB gaismas diodes diapazonam.

3) Visbeidzot, mēs uzrakstīsim šīs konvertētās vērtības katrai RGB krāsai.

3. darbība: kā lietot potenciometrus

Kā lietot potenciometrus
Kā lietot potenciometrus
Kā lietot potenciometrus
Kā lietot potenciometrus

Potenciometru, kas ir viens no elementārākajiem komponentiem elektronikas komplektos, var izmantot daudzos dažādos projektos. potenciometri darbojas, ļaujot lietotājam fiziski mainīt ķēdes pretestību. Potenciometra vissvarīgākais piemērs ir gaismas dimmeris. bīdot vai pagriežot pogu, tiek mainīts ķēdes garums. garāks ceļš rada lielāku pretestību. Paaugstināta pretestība apgriezti samazina strāvu un apgaismojumu. Tie var būt dažādās formās un izmēros, bet lielākajai daļai ir tāda pati pamatiestatīšana. Kāds students lūdza palīdzību ģitāras sakārtošanā, un mēs noskaidrojām, ka uz tās esošās pogas ir tieši tādas pašas kā potenciometri. Kopumā jūs bijāt ārējās kājas, kas savienotas ar 5 voltiem un zemi, un vidējā kāja iet uz analogo tapu, piemēram, A0

4. solis: (3x) potenciometra elektroinstalācijas shēma

Elektroinstalācijas shēma (3x) potenciometram
Elektroinstalācijas shēma (3x) potenciometram
Elektroinstalācijas shēma (3x) potenciometram
Elektroinstalācijas shēma (3x) potenciometram
Elektroinstalācijas shēma (3x) potenciometram
Elektroinstalācijas shēma (3x) potenciometram

Lielākā kreisā kāja tiks savienota ar 5V, bet labākā kāja - ar GND. Jūs faktiski varat mainīt šos divus soļus, un tas ļoti nekaitēs projektam. Viss, kas mainītos, ir pagriezt pogu līdz galam pa kreisi, un tas būs pilnā spilgtumā, nevis līdz galam. Vidējā kāja tiks savienota ar vienu no Arduino analogās tapām. Tā kā mums būs trīs kloķi, mēs vēlēsimies trīskāršot tikko paveikto darbu. Katrai pogai ir nepieciešami 5 V un GND, lai tos varētu koplietot, izmantojot maizes dēli. Sarkanā sloksne uz maizes dēļa ir savienota ar 5 voltiem, un zilā sloksne ir pievienota zemei. Katrai pogai ir nepieciešama sava analogā tapa, lai tās būtu savienotas ar A0, A1, A2.

5. darbība. AnalogRead () un mainīgo izmantošana

Ja potenciometrs ir pareizi iestatīts, mēs esam gatavi nolasīt šīs vērtības. Kad mēs vēlamies to darīt, mēs izmantojam funkciju analogRead (). Pareizā sintakse ir analogRead (pin#); tāpēc, lai nolasītu mūsu vidējo potenciometru, mēs izmantotu analogRead (A1); Lai strādātu ar cipariem, kas tiek nosūtīti no pogas uz Arduino, mēs vēlēsimies arī saglabāt šos skaitļus mainīgā. Koda rinda veiks šo uzdevumu, lasot potenciometru un saglabājot tā pašreizējo numuru vesela skaitļa mainīgajā "val"

int val = analogRead (A0);

6. darbība. Seriālā monitora lietošana ar 1 pogu

Image
Image

Pašlaik mēs varam iegūt vērtības no pogām un saglabāt tās mainīgā, taču būtu noderīgi, ja mēs varētu redzēt šīs vērtības. Lai to izdarītu, mums jāizmanto iebūvētais seriālais monitors. Zemāk esošais kods ir pirmā skice, kuru mēs faktiski darbināsim Arduino IDE, kuru var lejupielādēt viņu vietnē. Void setup () mēs aktivizēsim analogās tapas, kas savienotas ar katru vidējo kāju kā INPUT, un aktivizēsim Serial monitoru, izmantojot Serial.begin (9600); tālāk mēs lasām tikai vienu no pogām un uzglabājam to tādā mainīgā lielumā kā iepriekš. Izmaiņas tagad ir tādas, ka esam pievienojuši rindu, kas izdrukā, kāds skaitlis ir saglabāts mainīgajā. Ja apkopojat un palaižat skici, varat atvērt seriālo monitoru un redzēt, kā ekrānā ritinās cipari. Katru reizi, kad koda cilpas mēs lasām un drukājam citu numuru. Pagriežot pogu, kas savienota ar A0, vajadzētu redzēt vērtības diapazonā no 0 līdz 1023. vēlāk mērķis būs nolasīt visus 3 potenciometrus, kuru saglabāšanai un drukāšanai būtu nepieciešami vēl 2 analogReads un 2 dažādi mainīgie.

void setup () {

pinMode (A0, INPUT); pinMode (A1, INPUT); pinMode (A2, INPUT); Sērijas sākums (9600); } void loop () {int val = analogRead (A0); Serial.println (val); }

7. darbība: RGB gaismas diodes izmantošana

Izmantojot RGB gaismas diodi
Izmantojot RGB gaismas diodi
Izmantojot RGB gaismas diodi
Izmantojot RGB gaismas diodi
Izmantojot RGB gaismas diodi
Izmantojot RGB gaismas diodi

4 kāju RGB LED ir viena no manām iecienītākajām Arduino sastāvdaļām. Man šķiet aizraujoši veids, kā tas spēj radīt bezgalīgas krāsas no 3 pamatkrāsu maisījumiem. Uzstādīšana ir līdzīga jebkurai parastajai gaismas diodei, taču šeit mums pamatā ir apvienotas sarkanas, zilas un zaļas gaismas diodes. Katras īsās kājas kontrolēs viena no arduino PWM tapām. Garākā kājiņa tiks savienota ar 5 voltiem vai zemi, atkarībā no tā, vai jūs to izmantojat kopējā anodā vai kopējā katoda gaismas diodē. Jums būs jāizmēģina abi veidi, kā atrisināt problēmu. Mums jau būs 5v un GND, kas savienoti ar maizes dēli, lai to būtu viegli mainīt. Iepriekš redzamā diagramma parāda arī 3 rezistoru izmantošanu. Es patiesībā bieži izlaižu šo soli, jo man tas nav bijis, un gaismas diodes uz mani iedegas.

Lai izveidotu krāsas, mēs izmantosim funkciju analogWrite (), lai kontrolētu, cik daudz sarkanās, zilās vai zaļās krāsas pievienot. Lai izmantotu šo funkciju, jums jāpasaka, ar kuru taustiņu# mēs runāsim, un skaitlis no 0 līdz 255. 0 ir pilnībā izslēgts, un 255 ir lielākais vienas krāsas daudzums. Savienosim sarkano kāju ar 9. tapu, zaļo ar 10. tapu un zilo līdz 11. tapai. Tas var prasīt zināmus izmēģinājumus un kļūdas, lai noskaidrotu, kura kāja ir kādā krāsā. Ja es gribētu iegūt purpursarkanu nokrāsu, es varētu izdarīt daudz sarkanas, bez zaļas un varbūt pusi no zilas krāsas. Es aicinu jūs rūpēties par šiem skaitļiem, tas ir patiešām aizraujoši. Daži izplatīti piemēri ir redzami iepriekš redzamajos attēlos

void setup () {

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

8. darbība: potenciometru izmantošana RGB gaismas diodes kontrolei (ar vienu kļūdu)

Potenciometru izmantošana, lai kontrolētu RGB LED (ar vienu kļūdu)
Potenciometru izmantošana, lai kontrolētu RGB LED (ar vienu kļūdu)
Potenciometru izmantošana, lai kontrolētu RGB LED (ar vienu kļūdu)
Potenciometru izmantošana, lai kontrolētu RGB LED (ar vienu kļūdu)
Potenciometru izmantošana, lai kontrolētu RGB LED (ar vienu kļūdu)
Potenciometru izmantošana, lai kontrolētu RGB LED (ar vienu kļūdu)

Ir pienācis laiks sākt apvienot abus mūsu kodus. Jums vajadzētu būt pietiekami daudz vietas uz standarta maizes dēļa, lai ietilptu visas 3 pogas un RGB gaismas diode. Ideja ir nevis ierakstīt sarkanās zilās un zaļās vērtības, bet mēs izmantosim katra poteniometra saglabātās vērtības, lai pastāvīgi mainītu krāsas. šajā gadījumā mums būs nepieciešami 3 mainīgie. redval, greenval, blueval ir dažādi mainīgie. Ņemiet vērā, ka šos mainīgos varat nosaukt par visu, ko vēlaties. ja pagriežat pogu "zaļa" un sarkanais daudzums mainās, varat pārslēgt nosaukumus, lai tie pareizi sakristu. tagad jūs varat pagriezt katru pogu un kontrolēt krāsas !!

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, zaļšVal); analogWrite (11, zilsVal); }

9. darbība: BONUSS: kartes () funkcija un tīrīšanas kods

Jūs varat pamanīt, ka, pagriežot vienas krāsas pogu, tā pieaugs un pēkšņi nokritīs līdz izslēgšanai. Šis augšanas un pēc tam ātras izslēgšanas modelis atkārtojas 4 reizes, pagriežot pogu līdz galam. Ja atceraties, mēs teicām, ka potenciometri var nolasīt vērtības no 0 līdz 1023. Funkcija analogWrite () pieņem tikai vērtības no 0 līdz 255. Kad potenciometrs pārsniedz 255, tas pamatā sākas no nulles. Ir jauka funkcija, kas palīdz kļūda, ko sauc par karti (). vienā solī varat pārvērst vienu skaitļu diapazonu citā skaitļu diapazonā. mēs konvertēsim skaitļus no 0-1023 uz skaitļiem no 0-255. Piemēram, ja poga bija iestatīta uz pusi, tai vajadzētu būt aptuveni 512. šis skaitlis tiktu mainīts uz 126, kas ir puse no gaismas diodes stipruma. Šajā pēdējā skicē es ērtībai nosaucu tapas ar mainīgiem nosaukumiem. Tagad jums ir pabeigts krāsu maisītājs, ar ko eksperimentēt !!!

// potenciometru tapu mainīgie nosaukumi

int redPot = A0; int greenPot = A1; int bluePot = A2 // mainīgo nosaukumi RGB tapām int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMode (zaļšLED, OUTPUT); pinMode (blueLED, OUTPUT); Seriāls, sākums (9600); } void loop () {// nolasīt un saglabāt potenciometru vērtības int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // pārvērst vērtības no 0-1023 uz 0-255 RGB LED redVal = map (redVal, 0, 1023, 0, 255); greenVal = karte (greenVal, 0, 1023, 0, 255); blueVal = karte (blueVal, 0, 1023, 0, 255); // ierakstiet šīs konvertētās vērtības katrai RGB LED analogWrite krāsai (redLED, redVal); anaogWrite (zaļšLED, zaļšVal); analogWrite (blueLED, blueVal); // rādīt vērtības Serial monitorā Serial.print ("red:"); Serial.print (redVal); Serial.print ("zaļš:"); Serial.print (greenVal); Serial.print ("zils:"); Serial.println (blueVal); }

Ieteicams: