Mundarija:
- 1 -qadam: qismlar va komponetlar
- 2 -qadam: Taraqqiyotingizni rejalashtiring
- 3 -qadam: Potentsiometrlardan qanday foydalanish kerak
- 4 -qadam: (3x) potentsiometrni ulash sxemasi
- 5 -qadam: AnalogRead () va o'zgaruvchilardan foydalanish
- 6 -qadam: Seriyali monitorni 1 tugmachadan foydalanish
- 7 -qadam: RGB LEDini ishlatish
- 8 -qadam: RGB LEDini boshqarish uchun potentsiometrlardan foydalanish (bitta xato bilan)
- 9 -qadam: BONUS: Map () funktsiyasi va tozalovchi kodi
Video: Arduino bilan rangli mikser: 9 qadam (rasmlar bilan)
2024 Muallif: John Day | [email protected]. Oxirgi o'zgartirilgan: 2024-01-30 13:28
Muallif tomonidan batafsil:
Haqida: Har doim o'rganish ….. tliguori330 haqida batafsil »
Rang aralashtirgichi Arduino bilan ishlaydigan va o'sayotgan har bir kishi uchun ajoyib loyihadir. Bu ko'rsatma oxiriga kelib, siz 3 tugmachani aylantirish orqali tasavvur qilishingiz mumkin bo'lgan deyarli har bir rangni birlashtira olasiz. Mahorat darajasi shunchalik pastki, uni hatto yangi boshlovchi ham muvaffaqiyatli tugatishi mumkin, lekin tajribali veterinarga yoqadigan darajada qiziqarli. Loyihaning narxi deyarli yo'q va ko'pchilik Arduino to'plamlari kerakli materiallar bilan ta'minlangan. Ushbu kodning markazida arduino -dan foydalanadigan har bir kishi tushunmoqchi bo'lgan ba'zi fundamental arduino funktsiyalari mavjud. Biz analogRead () va analogWrite () funktsiyalari haqida batafsil ma'lumotga ega bo'lamiz, chunki biz xarita () deb nomlangan boshqa odatiy funktsiyamiz. Ushbu havolalar sizni ushbu funktsiyalar uchun arduino ma'lumotnoma sahifalariga olib keladi.
1 -qadam: qismlar va komponetlar
Arduino Uno
Potansiyometr (x3)
RGB LED
220 ohmli qarshilik (x3)
Jumper simlari (x12)
Non paneli
2 -qadam: Taraqqiyotingizni rejalashtiring
Loyihangizni qanday yakunlashni rejalashtirish juda foydali bo'lishi mumkin. Kodlash - bu bir qadamdan ikkinchisiga mantiqiy o'tish. Men eskizim qanday ishlashini ko'rsatadigan oqim jadvalini tuzdim. Umumiy maqsad - RGB LEDning uchta rangining har birini boshqaradigan 3 ta tugmachani (potansiyometr) bo'lish. Buni amalga oshirish uchun biz sxemaga mos keladigan eskizni yaratishimiz kerak bo'ladi. Biz xohlaymiz ….
1) 3 xil potentsiometrni o'qing va ularning qiymatlarini o'zgaruvchilarda saqlang.
2) Biz bu qiymatlarni RGB LED diapazoniga mos keladigan tarzda o'zgartiramiz.
3) Va nihoyat, biz RGB ranglarining har biriga aylantirilgan qiymatlarni yozamiz.
3 -qadam: Potentsiometrlardan qanday foydalanish kerak
Elektron to'plamlarning eng asosiy komponentlaridan biri bo'lgan potentsiometrni turli loyihalarda ishlatish mumkin. potentsiometrlar foydalanuvchiga kontaktlarning zanglashiga qarshilikni jismonan o'zgartirish imkonini beradi. Potentsiometrning eng oddiy namunasi - yorug'lik dimmeridir. siljish yoki tugmachani aylantirish sxemaning uzunligini o'zgartiradi. uzoq yo'l ko'proq qarshilikka olib keladi. Qarshilik kuchayishi tokni teskari pasaytiradi va yorug'lik pasayadi. Ular har xil shakl va o'lchamlarda bo'lishi mumkin, lekin ko'pchiligi bir xil asosiy tuzilishga ega. Bir talaba gitarasini tuzatishda yordam so'radi va biz uning tugmachalari potentsiometrlar bilan bir xil ekanligini bilib oldik. Umuman olganda, siz tashqi oyoqlaringiz 5 voltli va erga ulangan edingiz va o'rta oyog'ingiz A0 kabi analog pinga o'tadi
4 -qadam: (3x) potentsiometrni ulash sxemasi
Eng chap oyog'i 5v ga, eng o'ng oyog'i GND ga ulanadi. Siz aslida bu ikki qadamni teskari o'zgartirishingiz mumkin va bu loyihaga katta zarar etkazmaydi. Tugmani chapga burish - hamma narsa o'zgarmoqda, aksincha, to'liq yorqinlik bo'ladi. O'rta oyoq Arduino analog pinlaridan biriga ulanadi. Bizda uchta tugma bo'ladi, shuning uchun biz qilgan ishimizni uch baravar oshirmoqchimiz. Har bir tugmachaga 5v va GND kerak, shuning uchun ularni non paneli yordamida bo'lishish mumkin. Non taxtasidagi qizil chiziq 5 voltga, ko'k chiziq esa erga ulangan. Har bir tugmachaga o'ziga xos analog pin kerak, shuning uchun ular A0, A1, A2 ga ulangan.
5 -qadam: AnalogRead () va o'zgaruvchilardan foydalanish
Siz potentsiometrni to'g'ri sozlaganingizda, biz bu qiymatlarni o'qishga tayyormiz. Biz buni xohlaganimizda analogRead () funktsiyasidan foydalanamiz. To'g'ri sintaksis analogRead (pin#); O'rta potentsiometrni o'qish uchun biz analogRead (A1); Tugmachadan Arduino -ga yuboriladigan raqamlar bilan ishlash uchun biz ham bu raqamlarni o'zgaruvchiga saqlashni xohlaymiz. Biz potentsiometrni o'qiganimizda va uning joriy raqamini "val" tamsayı o'zgaruvchisida saqlaganimizda, kod qatori bu vazifani bajaradi.
int val = analogRead (A0);
6 -qadam: Seriyali monitorni 1 tugmachadan foydalanish
Hozirda biz tugmachalardan qiymatlarni olishimiz va ularni o'zgaruvchiga saqlashimiz mumkin, lekin agar biz bu qiymatlarni ko'ra olsak foydali bo'ladi. Buning uchun biz o'rnatilgan ketma -ket monitordan foydalanishimiz kerak. Quyidagi kod Arduino IDE -da ishlaydigan birinchi eskiz bo'lib, uni o'z saytidan yuklab olish mumkin. Void setup () da biz har bir o'rta oyoqqa ulangan analog pinlarni INPUT sifatida faollashtiramiz va Serial.begin (9600) yordamida Serial monitorni faollashtiramiz; keyin biz faqat bitta tugmachani o'qiymiz va uni avvalgidek o'zgaruvchiga saqlaymiz. O'zgarish - bu o'zgaruvchida qaysi raqam saqlanganligini ko'rsatadigan chiziq qo'shdik. Agar siz eskizni tuzsangiz va ishga tushirsangiz, siz Serial monitorni ochishingiz va ekranda aylanayotgan raqamlarni ko'rishingiz mumkin. Har safar kod aylansa, biz boshqa raqamni o'qiymiz va chop etamiz. Agar siz A0 ga ulangan tugmani aylantirsangiz, 0-1023 gacha bo'lgan qiymatlarni ko'rishingiz kerak. Keyinchalik, saqlash va chop etish uchun yana 2 analogReads va 2 xil o'zgaruvchini talab qiladigan barcha 3 potntiometrni o'qish maqsad qilinadi.
bo'sh o'rnatish () {
pinMode (A0, INPUT); pinMode (A1, Kirish); pinMode (A2, Kirish); Serial.begin (9600); } void loop () {int val = analogRead (A0); Serial.println (val); }
7 -qadam: RGB LEDini ishlatish
4 oyoqli RGB LED i Arduino uchun eng sevimli komponentlarimdan biri. Men 3 ta asosiy ranglarning aralashmasidan cheksiz ranglarni yaratishning ajoyib usulini topaman. O'rnatish har qanday oddiy LEDga o'xshaydi, lekin bu erda asosan qizil, ko'k va yashil LEDlar birlashtirilgan. Qisqa oyoqlarning har birini arduino ustidagi PWM pinlaridan biri boshqaradi. Eng uzun oyoq 5 voltli yoki erga ulanadi, bu sizning umumiy anod yoki katodli LED -ga bog'liq. Muammoni hal qilish uchun siz ikkala usulni ham sinab ko'rishingiz kerak. Bizda allaqachon 5v va GND bo'ladi, uni taxtaga ulang, uni o'zgartirish oson. Yuqoridagi diagrammada 3 ta rezistor ishlatilgan. Men bu qadamni tez -tez o'tkazib yuboraman, chunki menda yo'q edi va menga LED tushdi.
Ranglarni yaratish uchun biz analogWrite () funktsiyasidan foydalanib, qancha qizil, ko'k yoki yashil qo'shilishini nazorat qilamiz. Bu funktsiyadan foydalanish uchun biz qaysi pin# bilan gaplashamiz va 0-255 oralig'idagi raqamni aytishimiz kerak. 0 butunlay o'chirilgan va 255 bitta rangning eng yuqori miqdori. Qizil oyoqni 9 -pinga, yashilni 10 -ga, ko'kni 11 -pin bilan bog'laylik. Bu qaysi oyog'ining rangi ekanligini aniqlash uchun biroz sinov va xatolarni talab qilishi mumkin. Agar men binafsha rang yasamoqchi bo'lsam, qizil rangni ko'p qila olardim, yashil emas, balki ko'kning yarmini ham. Men sizni bu raqamlar haqida o'ylashga taklif qilaman, bu haqiqatan ham hayajonli. Ba'zi umumiy misollar yuqoridagi rasmlarda
bo'sh o'rnatish () {
pinMode (9, OUTPUT); pinMod (10, OUTPUT); pinMode (11, OUTPUT); } void loop () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}
8 -qadam: RGB LEDini boshqarish uchun potentsiometrlardan foydalanish (bitta xato bilan)
Ikkala kodni birlashtirishni boshlash vaqti keldi. Oddiy non panelida barcha 3 tugmachaga va RGB LED -ga mos keladigan joy bo'lishi kerak. Qizil ko'k va yashil ranglarni kiritish o'rniga, biz har bir poteniometrda saqlangan qiymatlardan foydalanib ranglarni doimiy ravishda o'zgartiramiz. bu holda bizga 3 ta o'zgaruvchi kerak bo'ladi. qizil davr, yashil asr, ko'k rang - bu har xil o'zgaruvchilar. Shuni yodda tutingki, siz bu o'zgaruvchilarni xohlagan narsangizga nomlashingiz mumkin. agar siz "yashil" tugmani aylantirsangiz va qizil rang o'zgarsa, siz ismlarni to'g'ri moslashtirishga o'tishingiz mumkin. endi siz har bir tugmani burishingiz va ranglarni boshqarishingiz mumkin !!
bo'sh o'rnatish () {
pinMode (A0, INPUT); pinMode (A1, Kirish); pinMode (A2, Kirish); pinMode (9, OUTPUT); pinMod (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 -qadam: BONUS: Map () funktsiyasi va tozalovchi kodi
Siz sezishingiz mumkinki, siz tugmachani bitta rangga aylantira boshlasangiz, u o'sadi va keyin birdan pastga tushadi. Bu tugmachani yuqoriga aylantirganda, o'sish va keyin tez o'chish 4 marta takrorlanadi. Agar eslasangiz, biz aytardikki, potentsiometrlar 0 dan 1023 gacha bo'lgan qiymatlarni o'qiy oladi. AnalogWrite () funktsiyasi faqat 0 dan 255 gacha bo'lgan qiymatlarni qabul qiladi. Potentsiometr 255 dan oshsa, u asosan 0 dan boshlanadi. xato deb nomlangan xato (). Siz bir qadamda bitta raqamlar diapazonini boshqa raqamlar diapazoniga o'zgartirishingiz mumkin. biz 0-1023 dan raqamlarni 0-255 gacha bo'lgan raqamlarga aylantiramiz. Misol uchun, agar tugma yarim yo'lga qo'yilgan bo'lsa, u taxminan 512 ni o'qishi kerak. Bu raqam 126 ga o'zgartiriladi, bu LED uchun yarim kuch. Oxirgi eskizda men qulay bo'lishi uchun pinlarni o'zgarmaydigan nomlar bilan nomladim. Sizda tajriba o'tkazish uchun tayyor rangli mikser bor !!!
// potentsiometr pinlari uchun o'zgarmaydigan nomlar
int redPot = A0; int greenPot = A1; int bluePot = A2 // RGB pinlari uchun o'zgarmaydigan nomlar int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, INPUT); pinMode (redLED, OUTPUT); pinMod (yashil LED, OUTPUT); pinMode (blueLED, OUTPUT); Seriya, boshlanadi (9600); } void loop () {// potentsiometrlardan qiymatlarni o'qish va saqlash int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // RGB LED redVal = map (redVal, 0, 1023, 0, 255) uchun 0-1023 dan 0-255 gacha bo'lgan qiymatlarni aylantirish; greenVal = xarita (greenVal, 0, 1023, 0, 255); blueVal = xarita (blueVal, 0, 1023, 0, 255); // bu o'zgartirilgan qiymatlarni RGB LED analogWrite (redLED, redVal) ning har bir rangiga yozing; anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // qiymatlarni Serial monitorda ko'rsatish Serial.print ("qizil:"); Serial.print (redVal); Serial.print ("yashil:"); Ketma -ket chop etish (greenVal); Serial.print ("ko'k:"); Serial.println (blueVal); }
Tavsiya:
CircuitPython bilan ikki rangli chiziqli grafik: 5 qadam (rasmlar bilan)
CircuitPython bilan ikkita rangli chiziqli grafik: Men Pimoroni saytidagi bu LED-bar-grafikni ko'rdim va bu COVID-19 blokirovkasini amalga oshirishda arzon va qiziqarli loyiha bo'lishi mumkin deb o'yladim, uning har birida qizil va yashil rangdagi 24 LED mavjud. 12 segment, shuning uchun nazariy jihatdan siz r ni ko'rsatishingiz kerak
Arduino asosidagi ko'p rangli yorug'lik tayog'i: 13 qadam (rasmlar bilan)
Arduino asosidagi ko'p rangli nurli tayoq: Yengil rasm - bu fotosuratchilar tomonidan qo'llaniladigan usul bo'lib, u erda yorug'lik manbai qiziqarli naqshlarni chizish uchun ishlatiladi va Kamera ularni birlashtiradi. Natijada, fotosuratda yorug'lik izlari bo'ladi, ular oxir -oqibat ko'rinishni beradi
O'lik mikser dvigatelidan magnit DC generatorini yaratish: 3 qadam (rasmlar bilan)
O'lik mikser dvigatelidan magnit DC generatorini yasash DIY: Salom! Siz bu o'lik Blender/burg'ulash mashinasi motorini (universal dvigatel) juda kuchli doimiy magnitli DC generatoriga aylantirishni o'rganasiz. Eslatma: Bu usul faqat universal dvigatelning dala rulonlari yonib ketgan taqdirda qo'llaniladi
PWM karartma bilan to'rt rangli LED o'sadigan yorug'lik: 12 qadam (rasmlar bilan)
PWM karartma bilan to'rt rangli LED o'sadigan yorug'lik: bu mening ishlatilgan kompyuter shassisiga o'rnatilgan oldingi yorug'lik chiroqimning kengayishi. Qizil, qizil, ko'k va oq rangli LEDlar uchun to'rt kanalli PWM karartmasi mavjud. Rangli aralashmaning aralashmasini nazorat qila olish, siz ildiz o'sishini, bargini boshqarishingiz mumkin degan ma'noni anglatadi
O'zgaruvchan chiqishi bilan ko'p rangli shablonlar: 12 qadam (rasmlar bilan)
O'zgaruvchan chiqishga ega bo'lgan ko'p rangli shablonlar: ko'p qatlamli haqiqiy stencil hamma ham tez va oson emas. Albatta, siz bir soat ichida bir marta siqib chiqarishingiz mumkin, lekin jarayonni takrorlash va har bir stencil uchun uni qanday sozlashni bilish uchun vaqt va amaliyot kerak. Bu ko'rsatmali darsda men