Talaan ng mga Nilalaman:

Color Mixer With Arduino: 9 Hakbang (na may Mga Larawan)
Color Mixer With Arduino: 9 Hakbang (na may Mga Larawan)

Video: Color Mixer With Arduino: 9 Hakbang (na may Mga Larawan)

Video: Color Mixer With Arduino: 9 Hakbang (na may Mga Larawan)
Video: Arduino MASTERCLASS | Full Programming Workshop in 90 Minutes! 2024, Nobyembre
Anonim
Image
Image

Sa pamamagitan ng tliguori330Follow Higit pa ng may-akda:

Kulay ng Sphere Sa Arduino
Kulay ng Sphere Sa Arduino
Doodle Bot Na May Proseso ng Disenyo
Doodle Bot Na May Proseso ng Disenyo
Doodle Bot Na May Proseso ng Disenyo
Doodle Bot Na May Proseso ng Disenyo
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano

Tungkol sa: Palaging natututo ….. Higit Pa Tungkol sa tliguori330 »

Ang isang color mixer ay isang mahusay na proyekto para sa sinumang nagtatrabaho at lumalaki kasama ng Arduino. Sa pagtatapos ng pagtuturo na ito magagawa mong ihalo at itugma ang halos bawat kulay na maiisip sa pamamagitan ng pag-on ng 3 knobs. Ang antas ng kasanayan ay sapat na mababa na kahit na ang isang kumpletong rookie ay maaaring makumpleto ito nang matagumpay, ngunit sapat din ang kagiliw-giliw na kasiya-siya para sa isang bihasang vet. Ang gastos ng proyektong ito ay wala sa tabi at ang karamihan sa mga Arduino kit ay mayroong mga materyal na kinakailangan. Sa core ng code na ito ay ilang mga fundemental arduino function na nais na maunawaan ng sinumang gumagamit ng arduino. Pupunta kami sa lalim tungkol sa mga pag-andar ng analogRead () at analogWrite () tulad ng isa pang karaniwang pag-andar na tinatawag na mapa (). Dinadala ka ng mga link na ito sa mga pahina ng sanggunian ng arduino para sa mga pagpapaandar na ito.

Hakbang 1: Mga Bahagi at Componet

Mga Bahagi at Componet
Mga Bahagi at Componet
Mga Bahagi at Componet
Mga Bahagi at Componet
Mga Bahagi at Componet
Mga Bahagi at Componet
Mga Bahagi at Componet
Mga Bahagi at Componet

Arduino Uno

Potensyomiter (x3)

RGB LED

220 ohm risistor (x3)

Jumper wires (x12)

Bread board

Hakbang 2: Planuhin ang Iyong Pag-unlad

Planuhin ang Iyong Pag-unlad
Planuhin ang Iyong Pag-unlad

Napaka kapaki-pakinabang upang planuhin kung paano mo makukumpleto ang iyong proyekto. Ang pag-coding ay tungkol sa lohikal na pag-unlad mula sa isang hakbang hanggang sa susunod. Gumawa ako ng isang tsart ng daloy na binabalangkas kung paano ko nais na tumakbo ang aking sketch. Ang pangkalahatang layunin ay magkaroon ng 3 knobs (potentiometers) na kontrolin ang bawat isa sa tatlong mga kulay ng isang RGB LED. Upang magawa ito kakailanganin naming lumikha ng isang sketch na tumutugma sa tsart ng daloy. Gusto naming….

1) Basahin ang 3 magkakaibang potensyal at i-save ang kanilang mga halaga sa mga variable.

2) Kami ay i-convert ang mga halagang iyon upang tumugma sa saklaw ng RGB LED.

3) Pagkatapos sa wakas ay isusulat namin ang mga na-convert na halaga sa bawat isa sa mga kulay ng RGB.

Hakbang 3: Paano Gumamit ng Mga Potensyal

Paano Gumamit ng Mga Potensyal
Paano Gumamit ng Mga Potensyal
Paano Gumamit ng Mga Potensyal
Paano Gumamit ng Mga Potensyal

Isa sa mga pinaka pangunahing bahagi sa isang electronics kit, ang potentiometer ay maaaring magamit sa maraming iba't ibang mga proyekto. gumana ang potentiometers sa pamamagitan ng pagpapahintulot sa gumagamit na pisikal na baguhin ang paglaban ng circuit. Ang pinaka halimbawa ng halimbawa ng potensyomiter ay isang light dimmer. ang pag-slide o pag-on ng knob ay nagbabago sa haba ng circuit. ang isang mas mahabang landas ay nagreresulta sa higit na pagtutol. Ang nadagdagang pagtutol sa kabaligtaran ay nagpapababa ng kasalukuyang at ang ilaw ay lumubog. Maaari itong magkaroon ng lahat ng magkakaibang hugis at sukat ngunit ang karamihan ay may parehong pangunahing pag-set up. Humiling ng tulong ang isang mag-aaral sa pag-aayos ng kanyang gitara at nalaman namin ang mga knob dito ay eksaktong kapareho ng mga potentiometers. Sa pangkalahatan ikaw ay ang mga binti sa labas na konektado sa 5 volts at ground at ang gitnang binti ay papunta sa isang analog pin tulad ng A0

Hakbang 4: Mga Kable ng Schematic para sa (3x) Potensyomiter

Mga Kable ng Schematic para sa (3x) Potensyomiter
Mga Kable ng Schematic para sa (3x) Potensyomiter
Mga Kable ng Schematic para sa (3x) Potensyomiter
Mga Kable ng Schematic para sa (3x) Potensyomiter
Mga Kable ng Schematic para sa (3x) Potensyomiter
Mga Kable ng Schematic para sa (3x) Potensyomiter

Ang kaliwang pinaka-binti ay konektado sa 5v at ang kanang pinaka-binti ay konektado sa GND. Maaari mo talagang baligtarin ang dalawang hakbang na ito at hindi nito masyadong sasaktan ang proyekto. Ang lahat na magbabago ay ang pag-on ng knob hanggang sa kaliwa ay magiging buong ningning sa halip na ang lahat ay malayo. Ang gitnang binti ay makakonekta sa isa sa mga analog na pin sa Arduino. Dahil magkakaroon kami ng tatlong mga knobs, gugustuhin naming triple up ang gawaing kagagawan lamang namin. Ang bawat knob ay nangangailangan ng 5v at GND upang maibahagi ang mga iyon gamit ang isang board ng tinapay. Ang pulang strip sa board ng tinapay ay konektado sa 5 Volts at ang asul na strip ay konektado sa lupa. Ang bawat knobs ay nangangailangan ng sarili nitong analog pin kaya nakakonekta ang mga ito sa A0, A1, A2.

Hakbang 5: Paggamit ng AnalogRead () at Mga Variable

Sa iyo potentiometer set up ng tama handa na kaming basahin ang mga halagang iyon. Kapag nais naming gawin ito ginagamit namin ang pagpapaandar ng analogRead (). Ang tamang syntax ay analogRead (pin #); kaya upang basahin ang aming gitnang potensyomiter nais naming analogRead (A1); Upang magtrabaho kasama ang mga numero na ipinapadala mula sa knob patungo sa Arduino, nais naming i-save din ang mga numerong iyon sa isang variable. Gagampanan ng linya ng code ang gawaing ito habang binabasa namin ang potensyomiter at nai-save ang kasalukuyang numero nito sa integer variable na "val"

int val = analogRead (A0);

Hakbang 6: Paggamit ng Serial Monitor Na May 1 Knob

Image
Image

Kasalukuyan kaming makakakuha ng mga halaga mula sa mga knob at maiimbak ang mga ito sa isang variable, ngunit kapaki-pakinabang kung maaari naming makita ang mga halagang ito. Upang magawa ito kailangan nating gamitin ang built in na serial monitor. Ang code sa ibaba ay ang unang sketch na tatakbo talaga kami sa Arduino IDE na maaaring ma-download sa kanilang site. Sa void setup () paganahin namin ang mga analog pin na konektado sa bawat gitnang binti bilang isang INPUT at buhayin ang Serial monitor gamit ang Serial.begin (9600); susunod na binabasa lamang namin ang isa sa mga knobs at iniimbak ito sa isang variable tulad ng dati. Ang pagbabago ngayon ay nagdagdag kami ng isang linya na naglilimbag kung anong numero ang nakaimbak sa variable. Kung pinagsama-sama mo at pinatakbo ang sketch maaari mong buksan ang iyong Serial monitor at makita ang mga numero na nag-scroll sa screen. Sa bawat oras na ang mga loop ng code ay nagbabasa at nagpi-print kami ng isa pang numero. Kung i-on mo ang knob na konektado sa A0 dapat mong makita ang mga halagang mula 0-1023. mamaya sa layunin ay basahin ang lahat ng 3 potntiometers na mangangailangan ng 2 pang analogReads at 2 magkakaibang variable upang mai-save at mai-print.

walang bisa ang pag-setup () {

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

Hakbang 7: Gamit ang RGB LED

Gamit ang RGB LED
Gamit ang RGB LED
Gamit ang RGB LED
Gamit ang RGB LED
Gamit ang RGB LED
Gamit ang RGB LED

Ang 4 Legged RGB LED i isa sa aking mga paboritong bahagi para sa Arduino. Nahanap ko Ang paraan na ito ay makakalikha ng walang katapusang mga kulay mula sa mga mixture na 3 ng pangunahing mga kulay na kamangha-manghang. Ang set up ay katulad ng anumang regular na LED ngunit dito karaniwang mayroon kaming isang pula, asul at berde na mga LED na pinagsama. Ang mga maiikling binti ay makokontrol ng isa sa mga PWM na pin sa arduino. Ang pinakamahabang binti ay konektado sa 5 volts o ground, depende kung sa iyo sa isang pangkaraniwang anode o karaniwang LED na cathode. Kakailanganin mong subukan ang parehong paraan upang malutas ito ng problema. Magkakaroon na kami ng 5v at GND na konektado sa breadboard dito dapat itong madaling baguhin. Ang diagram sa itaas ay nagpapakita ng paggamit ng 3 resistors din. Talagang laktawan ko ang hakbang na ito nang madalas dahil wala pa ako at pumutok sa akin ang LED.

Upang makagawa ng mga kulay ay gagamitin namin ang function na analogWrite () upang makontrol kung magkano ang idaragdag sa pula, asul, o berde. Upang magamit ang pagpapaandar na ito kailangan mong sabihin kung aling pin # ang kakausapin natin at isang numero sa pagitan ng 0-255. 0 ay ganap na off at 255 ay ang pinakamataas na halaga ng isang kulay. Hinahayaan nating ikonekta ang pulang binti sa pin 9, berde sa pin 10 at asul sa pin 11. Maaaring tumagal ng ilang pagsubok at error upang malaman kung aling binti ang aling kulay. Kung nais kong gumawa ng isang lila na kulay maaari akong gumawa ng maraming pula, walang berde, at marahil kalahating lakas ng asul. Hinihimok ko kayo na mag-tinker sa mga numerong ito, talagang kapanapanabik. Ang ilang mga karaniwang halimbawa ay nasa mga larawan sa itaas

walang bisa ang pag-setup () {

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

Hakbang 8: Paggamit ng Potentiometers upang Makontrol ang RGB LED (na may Isang Bug)

Paggamit ng Potentiometers upang Makontrol ang RGB LED (na may Isang Bug)
Paggamit ng Potentiometers upang Makontrol ang RGB LED (na may Isang Bug)
Paggamit ng Potentiometers upang Makontrol ang RGB LED (na may Isang Bug)
Paggamit ng Potentiometers upang Makontrol ang RGB LED (na may Isang Bug)
Paggamit ng Potentiometers upang Makontrol ang RGB LED (na may Isang Bug)
Paggamit ng Potentiometers upang Makontrol ang RGB LED (na may Isang Bug)

Panahon na upang simulang magkasama ang aming dalawang mga code. Dapat ay mayroon kang sapat na silid sa isang pamantayang tinapay upang magkasya ang lahat ng 3 mga knob at ang RGB LED. Ang ideya ay sa halip na mag-type ng mga halaga para sa pulang asul at berde, gagamitin namin ang mga halagang na-save mula sa bawat poteniometer upang patuloy na baguhin ang mga kulay. kakailanganin namin ng 3 mga variable sa kasong ito. ang redval, greenval, blueval ay lahat ng magkakaibang mga variable. Tandaan na maaari mong pangalanan ang mga variable na ito kahit anong gusto mo. kung i-on mo ang "berdeng" knob at ang mga pulang halaga ay nagbabago, maaari mong ilipat ang mga pangalan upang tumugma nang tama. maaari mo na ngayong buksan ang bawat knob at makontrol ang mga kulay !!

walang bisa ang pag-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); }

Hakbang 9: BONUS: Mapa () Pag-andar at Mas Malinis na Code

Maaari mong mapansin na sa pagsisimula mong i-on ang knob para sa isang kulay ay lalago ito at pagkatapos ay biglang bumaba. Ang pattern na ito ng lumalagong at pagkatapos ay mabilis na isara ang paulit-ulit na 4 na beses habang binabago mo ang hawakan. Kung maaalala mong sinabi namin na ang mga potentiometers ay maaaring basahin ang mga halaga sa pagitan ng 0 at 1023. Tumatanggap lamang ang pagpapaandar ng analogWrite () ng mga halaga sa pagitan ng 0 at 255. sa sandaling lumagpas ang potensyomiter sa 255 karaniwang nagsisimula ito sa 0. Mayroong isang magandang pag-andar upang makatulong sa bug na tinatawag na mapa (). maaari mong baguhin ang isang saklaw ng mga numero sa isa pang saklaw ng mga numero sa isang hakbang. iko-convert namin ang mga numero mula 0-1023 patungo sa mga numero mula 0-255. Halimbawa kung ang knob ay nakatakda sa kalahating paraan dapat itong basahin tungkol sa 512. ang numerong iyon ay mababago sa 126 na kalahating lakas para sa LED. Sa huling sketch na ito pinangalanan ko ang mga pin na may mga variable na pangalan para sa aking kaginhawaan. Mayroon ka na ngayong isang nakumpleto na color mixer upang mag-eksperimento !!!

// variable names for potentiometer pins

int redPot = A0; int greenPot = A1; int bluePot = A2 // variable names for RGB pin int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMode (greenLED, OUTPUT); pinMode (blueLED, OUTPUT); Serial, magsimula (9600); } void loop () {// basahin at i-save ang mga halaga mula sa potentiometers int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // convert the values from 0-1023 to 0-255 for the RGB LED redVal = map (redVal, 0, 1023, 0, 255); greenVal = mapa (greenVal, 0, 1023, 0, 255); blueVal = mapa (blueVal, 0, 1023, 0, 255); // isulat ang mga na-convert na halagang ito sa bawat kulay ng RGB LED analogWrite (redLED, redVal); anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // ipakita ang mga halaga sa Serial monitor Serial.print ("red:"); Serial.print (redVal); Serial.print ("berde:"); Serial.print (greenVal); Serial.print ("asul:"); Serial.println (blueVal); }

Inirerekumendang: