Mündəricat:

Arduino ilə rəng qarışdırıcı: 9 addım (şəkillərlə)
Arduino ilə rəng qarışdırıcı: 9 addım (şəkillərlə)

Video: Arduino ilə rəng qarışdırıcı: 9 addım (şəkillərlə)

Video: Arduino ilə rəng qarışdırıcı: 9 addım (şəkillərlə)
Video: Setting up a 3d Printer with MKS sGen L v1.0 2024, Noyabr
Anonim
Image
Image

Müəllif tərəfindən daha çoxunu izləyin:

Arduino ilə rəng kürəsi
Arduino ilə rəng kürəsi
Dizayn Prosesi ilə Doodle Bot
Dizayn Prosesi ilə Doodle Bot
Dizayn Prosesi ilə Doodle Bot
Dizayn Prosesi ilə Doodle Bot
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano
Arduino Touch Piano

Haqqında: Həmişə öyrənirəm ….. tliguori330 Haqqında Ətraflı »

Bir rəng qarışdırıcı, Arduino ilə işləyən və böyüyən hər kəs üçün əla bir layihədir. Bu təlimatın sonunda 3 düyməni çevirərək xəyal edə biləcəyiniz demək olar ki, bütün rəngləri qarışdıra və uyğunlaşdıra biləcəksiniz. Bacarıq səviyyəsi kifayət qədər aşağıdır ki, hətta tam bir acemi də onu uğurla başa vura bilər, həm də təcrübəli bir baytar üçün zövq alacaq qədər maraqlıdır. Bu layihənin dəyəri heç bir şeyə bərabər deyil və əksər Arduino dəstləri lazım olan materiallarla gəlir. Bu kodun əsasını arduino istifadə edənlərin başa düşmək istədikləri bəzi fundamental arduino funksiyaları təşkil edir. AnalogRead () və analogWrite () funksiyalarını map () adlanan başqa bir adi funksiya kimi dərinləşdirəcəyik. Bu bağlantılar sizi bu funksiyalar üçün arduino istinad səhifələrinə aparır.

Addım 1: hissələr və komponetlər

Parçalar və Komponetlər
Parçalar və Komponetlər
Parçalar və Komponetlər
Parçalar və Komponetlər
Parçalar və Komponetlər
Parçalar və Komponetlər
Parçalar və Komponetlər
Parçalar və Komponetlər

Arduino Uno

Potensialiometr (x3)

RGB LED

220 ohm müqavimət (x3)

Jumper telləri (x12)

Çörək lövhəsi

Addım 2: Tərəqqinizi Planlaşdırın

Tərəqqinizi Planlaşdırın
Tərəqqinizi Planlaşdırın

Layihənizi necə tamamlayacağınızı planlaşdırmaq çox faydalı ola bilər. Kodlaşdırma, bir addımdan digərinə məntiqi irəliləyişlə əlaqədardır. Eskizimin necə işləməsini istədiyimi əks etdirən bir axın cədvəli hazırladım. Ümumi məqsəd, RGB LED -in hər üç rəngini idarə edən 3 düymənin (potensiometrlərin) olmasıdır. Bunu etmək üçün axın cədvəlinə uyğun bir eskiz yaratmalıyıq. İstəyəcəyik ….

1) 3 fərqli potensiometr oxuyun və dəyərlərini dəyişənlərdə qeyd edin.

2) Bu dəyərləri RGB LED aralığına uyğunlaşdıracağıq.

3) Sonra nəhayət bu çevrilmiş dəyərləri RGB rənglərinin hər birinə yazacağıq.

Addım 3: Potansiyometrlərdən necə istifadə olunur

Potensiometrlərdən necə istifadə olunur
Potensiometrlərdən necə istifadə olunur
Potensiometrlərdən necə istifadə olunur
Potensiometrlərdən necə istifadə olunur

Bir elektronik dəstinin ən əsas komponentlərindən biri olan potansiyometr bir çox fərqli layihədə istifadə edilə bilər. potansiyometrlər istifadəçinin dövrə müqavimətini fiziki olaraq dəyişdirməsinə imkan verməklə işləyir. Potansiyometrin ən yaxşı nümunəsi işıq dimmeridir. bir düyməni sürüşdürmək və ya çevirmək dövrənin uzunluğunu dəyişir. daha uzun yol daha çox müqavimətlə nəticələnir. Artan müqavimət cərəyanı əksinə azaldır və işıq azalır. Bunlar müxtəlif formalı və ölçülərdə ola bilər, lakin əksəriyyəti eyni əsas quruluşa malikdir. Bir tələbə gitarasını düzəltmək üçün kömək istədi və üzərindəki düymələrin potensiometrlərlə eyni olduğunu öyrəndik. Ümumiyyətlə, 5 volt və yerə bağlı olan xarici ayaqları idiniz və orta ayağınız A0 kimi bir analog pinə gedir

Addım 4: (3x) Potansiyometr üçün Kablolama Şeması

(3x) Potansiyometr üçün Kablolama Şeması
(3x) Potansiyometr üçün Kablolama Şeması
(3x) Potansiyometr üçün Kablolama Şeması
(3x) Potansiyometr üçün Kablolama Şeması
(3x) Potansiyometr üçün Kablolama Şeması
(3x) Potansiyometr üçün Kablolama Şeması

Ən çox sol ayaq 5v -ə, ən sağ ayaq isə GND -yə bağlanacaq. Əslində bu iki addımı geri çevirə bilərsiniz və bu layihəyə çox zərər verməyəcək. Dəyişən tək şey düyməni sola çevirməkdir, əksinə bütün yolun tam parlaqlığı olacaq. Orta ayaq Arduino -dakı analog pinlərdən birinə bağlanacaq. Üç düyməyimiz olacağından, etdiyimiz işi üç qat artırmaq istəyəcəyik. Hər bir düymənin 5v və GND -yə ehtiyacı var, buna görə çörək taxtası istifadə edərək paylaşa bilərsiniz. Çörək lövhəsindəki qırmızı zolaq 5 volt, mavi zolaq isə yerə bağlıdır. Hər bir düymənin öz analog pininə ehtiyacı var, buna görə də A0, A1, A2 -yə qoşulurlar.

Addım 5: AnalogRead () və Dəyişənlərdən istifadə

Doğru qurduğunuz potensialiometr ilə bu dəyərləri oxumağa hazırıq. Bunu etmək istədiyimiz zaman analogRead () funksiyasından istifadə edirik. Doğru sintaksis analogRead (pin#); orta potansiyometrimizi oxumaq üçün analogRead (A1); Düymədən Arduinoya göndərilən nömrələrlə işləmək üçün həmin nömrələri dəyişəndə də saxlamaq istəyəcəyik. Potansiyometr oxuduğumuzda və cari sayını "val" tamsayı dəyişənində saxladıqca kod xətti bu vəzifəni yerinə yetirəcək.

int val = analogRead (A0);

Addım 6: Serial Monitoru 1 Düymədən istifadə edin

Image
Image

Hal -hazırda düymələrdən dəyərlər əldə edə və onları dəyişən bir vəziyyətdə saxlaya bilirik, ancaq bu dəyərləri görə bilsək faydalı olar. Bunu etmək üçün quraşdırılmış serial monitordan istifadə etməliyik. Aşağıdakı kod, saytından yükləyə biləcəyimiz Arduino IDE -də işləyəcəyimiz ilk eskizdir. Void setup () bölməsində hər bir orta ayağa bağlı olan analog pinləri INPUT olaraq aktivləşdirəcəyik və Serial.begin (9600) istifadə edərək Serial monitoru aktivləşdirəcəyik; sonra düymələrdən yalnız birini oxuyuruq və əvvəlki kimi dəyişəndə saxlayırıq. İndi dəyişiklik, dəyişəndə hansı nömrənin saxlanıldığını yazan bir xətt əlavə etməyimizdir. Eskizi tərtib etsəniz və işləsəniz, Serial monitörünüzü aça və nömrələrin ekranda hərəkət etdiyini görə bilərsiniz. Hər dəfə kod döngələrində başqa bir nömrəni oxuyuruq və çap edirik. A0 ilə əlaqəli düyməni döndərsəniz, 0-1023 arasında dəyişən dəyərləri görməlisiniz. Daha sonra, saxlamaq və çap etmək üçün daha 2 analogReads və 2 fərqli dəyişən tələb edəcək bütün 3 potntiometrləri oxumaq olacaq.

boş quraşdırma () {

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

Addım 7: RGB LED -dən istifadə edin

RGB LED istifadə
RGB LED istifadə
RGB LED istifadə
RGB LED istifadə
RGB LED istifadə
RGB LED istifadə

4 Ayaqlı RGB LED i Arduino üçün ən çox sevdiyim komponentlərdən biridir. Əsas rənglərin 3 qarışığından sonsuz rənglər yaratmağın yolunu heyrətləndirici hesab edirəm. Quraşdırma hər hansı bir adi LED -ə bənzəyir, amma burada əsasən qırmızı, mavi və yaşıl LEDləri birləşdiririk. Qısa ayaqların hər biri arduino üzərindəki PWM pinlərindən biri tərəfindən idarə olunacaq. Ən uzun ayağınız, ümumi bir anodda və ya ümumi bir katot LEDində olmağınızdan asılı olaraq, 5 volt və ya yerə bağlanacaq. Problemi həll etmək üçün hər iki yolu sınamalısınız. Artıq çörək taxtasına bağlı 5v və GND -ə sahib olacağıq, dəyişdirilməsi asan olmalıdır. Yuxarıdakı diaqram 3 rezistorun istifadəsini göstərir. Əslində bu addımı atmadığım üçün tez -tez atlayıram və LED mənə üfürür.

Rəng etmək üçün nə qədər qırmızı, mavi və ya yaşıl əlavə edəcəyimizi idarə etmək üçün analogWrite () funksiyasından istifadə edəcəyik. Bu funksiyanı istifadə etmək üçün hansı pinlə danışacağımızı və 0-255 arasında bir rəqəm söyləməlisiniz. 0 tamamilə söndürülmüş və 255 bir rəngin ən yüksək miqdarıdır. Qırmızı ayağı 9 -cu pinlə, yaşılı 10 -u ilə, mavini isə 11 -ə bağlayaq. Bu, hansı ayağın hansı rəngdə olduğunu anlamaq üçün bir az sınaq və səhv tələb edə bilər. Bənövşəyi bir rəng etmək istəsəydim, çoxlu qırmızı, yaşıl yox, bəlkə də mavi gücün yarısı edə bilərdim. Sizi bu rəqəmlərlə məşğul olmağa təşviq edirəm, bu, həqiqətən də həyəcanlıdır. Bəzi ümumi nümunələr yuxarıdakı şəkillərdədir

boş quraşdırma () {

pinMode (9, Çıxış); pinMode (10, Çıxış); pinMode (11, Çıxış); } void loop () {analogWrite (9, 255); analogWrite (10, 0); analogWrite (11, 125)}

Addım 8: RGB LEDini idarə etmək üçün Potansiometrlərdən istifadə (Bir Hata ilə)

RGB LEDini idarə etmək üçün Potansiometrlərdən istifadə (Bir Hata ilə)
RGB LEDini idarə etmək üçün Potansiometrlərdən istifadə (Bir Hata ilə)
RGB LEDini idarə etmək üçün Potansiometrlərdən istifadə (Bir Hata ilə)
RGB LEDini idarə etmək üçün Potansiometrlərdən istifadə (Bir Hata ilə)
RGB LEDini idarə etmək üçün Potansiometrlərdən istifadə (Bir Hata ilə)
RGB LEDini idarə etmək üçün Potansiometrlərdən istifadə (Bir Hata ilə)

İki kodumuzu birləşdirməyə başlamağın vaxtı gəldi. Standart çörək taxtasında hər 3 düyməyə və RGB LED -ə uyğun kifayət qədər yeriniz olmalıdır. Fikir qırmızı mavi və yaşıl dəyərləri yazmaq əvəzinə, rəngləri daim dəyişdirmək üçün hər bir poteniometrdən saxlanılan dəyərləri istifadə edəcəyik. bu vəziyyətdə 3 dəyişənə ehtiyacımız olacaq. redval, greenval, blueval hamısı fərqli dəyişənlərdir. Bu dəyişənlərə istədiyiniz hər şeyi adlandıra biləcəyinizi unutmayın. "yaşıl" düyməni çevirsəniz və qırmızı rəng dəyişərsə, adları düzgün uyğunlaşdıra bilərsiniz. indi hər düyməni çevirib rəngləri idarə edə bilərsiniz !!

boş quraşdırma () {

pinMode (A0, GİRİŞ); pinMode (A1, GİRİŞ); pinMode (A2, GİRİŞ); pinMode (9, Çıxış); pinMode (10, Çıxış); pinMode (11, Çıxış); } void setup () {int redVal = analogRead (A0); int greenVal = analogRead (A1); int blueVal = analogRead (A2); analogWrite (9, redVal); analogWrite (10, greenVal); analogWrite (11, blueVal); }

Addım 9: BONUS: Xəritə () İşlevi və Təmiz Kod

Düyməni bir rəngə çevirməyə başladığınız zaman böyüyəcəyini və sonra birdən -birə aşağı düşəcəyini görə bilərsiniz. Düyməni yuxarıya çevirdikdə böyüyən və sonra tez bağlanan bu model 4 dəfə təkrarlanır. Xatırlayırsınızsa, potansiometrlərin 0 ilə 1023 arasındakı dəyərləri oxuya biləcəyini söylədiyimizi söyləyirik. AnalogWrite () funksiyası yalnız 0 ilə 255 arasında olan dəyərləri qəbul edir. Potensiometr 255 -dən yuxarı keçdikdə əsasən 0 -dan başlayır. map () adlı səhv. bir addımda bir ədəd aralığını başqa bir rəqəm aralığına çevirə bilərsiniz. 0-1023-dən 0-255-ə qədər olan rəqəmləri çevirəcəyik. Məsələn, düymə yarı yolda olsaydı, təxminən 512 oxumalı idi. Bu rəqəm LED üçün yarı güc olan 126 -ya dəyişdiriləcəkdi. Bu son eskizdə rahatlığım üçün sancaqlar dəyişən adlarla adlandırdım. İndi sınamaq üçün tamamlanmış bir rəng qarışdırıcıya sahibsiniz !!!

// potensiometr sancaqları üçün dəyişən adlar

int redPot = A0; int greenPot = A1; int bluePot = A2 // RGB pinləri üçün dəyişən adlar int redLED = 9; int greenLED = 10; int blueLED = 11; void setup () {pinMode (redPot, INPUT); pinMode (greenPOT, INPUT); pinMode (bluePot, GİRİŞ); pinMode (redLED, ÇIXIŞ); pinMode (greenLED, ÇIXIŞ); pinMode (blueLED, ÇIXIŞ); Serial, başlayın (9600); } void loop () {// potentiometersdən dəyərləri oxumaq və saxlamaq int redVal = analogRead (redPot); int greenVal = analogRead (greenPot); int blueVal - analogRead (bluePot); // RGB LED redVal = map (redVal, 0, 1023, 0, 255) üçün 0-1023 olan dəyərləri 0-255-ə çevirin; greenVal = xəritə (greenVal, 0, 1023, 0, 255); blueVal = xəritə (blueVal, 0, 1023, 0, 255); // bu çevrilmiş dəyərləri RGB LED analogWrite (redLED, redVal) hər rənginə yazın; anaogWrite (greenLED, greenVal); analogWrite (blueLED, blueVal); // dəyərləri Serial monitorda göstərin Serial.print ("qırmızı:"); Serial. çap (redVal); Serial.print ("yaşıl:"); Serial. çap (greenVal); Serial.print ("mavi:"); Serial.println (blueVal); }

Tövsiyə: