İçindekiler:

Arduino ile Renk Karıştırıcı: 9 Adım (Resimlerle)
Arduino ile Renk Karıştırıcı: 9 Adım (Resimlerle)

Video: Arduino ile Renk Karıştırıcı: 9 Adım (Resimlerle)

Video: Arduino ile Renk Karıştırıcı: 9 Adım (Resimlerle)
Video: ZİHİNSEL YAŞINIZI ORTAYA ÇIKARACAK BİR RENK TESTİ 2024, Kasım
Anonim
Image
Image

Yazar tliguori330Takip et Yazarın daha fazlası:

Arduino ile Renk Küresi
Arduino ile Renk Küresi
Tasarım Süreci ile Doodle Bot
Tasarım Süreci ile Doodle Bot
Tasarım Süreci ile Doodle Bot
Tasarım Süreci ile Doodle Bot
Arduino Dokunmatik Piyano
Arduino Dokunmatik Piyano
Arduino Dokunmatik Piyano
Arduino Dokunmatik Piyano

Hakkında: Her zaman öğreniyorum….. tliguori330 Hakkında Daha Fazla »

Bir renk karıştırıcı, Arduino ile çalışan ve büyüyen herkes için harika bir projedir. Bu talimatın sonunda, 3 düğmeyi çevirerek akla gelebilecek hemen hemen her rengi karıştırıp eşleştirebileceksiniz. Beceri seviyesi, tam bir çaylakın bile başarıyla tamamlayabileceği kadar düşüktür, ancak aynı zamanda deneyimli bir veteriner için eğlenceli olacak kadar da ilginçtir. Bu projenin maliyeti neredeyse sıfırdır ve çoğu Arduino kiti gerekli malzemelerle birlikte gelir. Bu kodun özünde, arduino kullanan herkesin anlamak isteyeceği bazı temel arduino işlevleri vardır. map() adlı başka bir olağan işlev olarak analogRead() ve analogWrite() işlevleri hakkında derinlemesine gideceğiz. Bu bağlantılar sizi bu işlevler için arduino referans sayfalarına götürür.

Adım 1: Parçalar ve Bileşenler

Parçalar ve Bileşenler
Parçalar ve Bileşenler
Parçalar ve Bileşenler
Parçalar ve Bileşenler
Parçalar ve Bileşenler
Parçalar ve Bileşenler
Parçalar ve Bileşenler
Parçalar ve Bileşenler

Arduino Uno

Potansiyometre (x3)

RGB LED'i

220 ohm direnç (x3)

Atlama telleri (x12)

ekmek tahtası

Adım 2: İlerlemenizi Planlayın

İlerlemenizi Planlayın
İlerlemenizi Planlayın

Projenizi nasıl tamamlayacağınızı planlamak çok yardımcı olabilir. Kodlama, bir adımdan diğerine mantıksal ilerleme ile ilgilidir. Eskizimin nasıl çalışmasını istediğimi özetleyen bir akış şeması yaptım. Genel amaç, bir RGB LED'in üç renginin her birini kontrol eden 3 düğme (potansiyometre) bulundurmaktır. Bunu başarmak için akış şemasına uygun bir çizim oluşturmamız gerekecek. Biz isteyeceğiz….

1) 3 farklı potansiyometreyi okuyun ve değerlerini değişkenlere kaydedin.

2) Bu değerleri RGB LED aralığına uyacak şekilde dönüştüreceğiz.

3) Daha sonra son olarak bu dönüştürülmüş değerleri RGB'nin renklerinin her birine yazacağız.

Adım 3: Potansiyometreler Nasıl Kullanılır

Potansiyometreler Nasıl Kullanılır
Potansiyometreler Nasıl Kullanılır
Potansiyometreler Nasıl Kullanılır
Potansiyometreler Nasıl Kullanılır

Elektronik kitlerdeki en temel bileşenlerden biri olan potansiyometre, birçok farklı projede kullanılabilir. potansiyometreler, kullanıcının devrenin direncini fiziksel olarak değiştirmesine izin vererek çalışır. Potansiyometrenin en çiftçi örneği bir ışık dimmeridir. bir düğmeyi kaydırmak veya çevirmek devrenin uzunluğunu değiştirir. daha uzun bir yol daha fazla dirençle sonuçlanır. Artan direnç akımı ters yönde düşürür ve ışık kararır. Bunların hepsi farklı şekil ve boyutlarda olabilir, ancak çoğu aynı temel kuruluma sahiptir. Bir öğrenci gitarını tamir etmek için yardım istedi ve üzerindeki düğmelerin potansiyometre ile birebir aynı olduğunu öğrendik. Genel olarak 5 volt ve toprağa bağlı dış bacaklardı ve orta bacak A0 gibi bir analog pime gidiyor

Adım 4: (3x) Potansiyometre için Kablolama Şeması

(3x) Potansiyometre için Kablolama Şeması
(3x) Potansiyometre için Kablolama Şeması
(3x) Potansiyometre için Kablolama Şeması
(3x) Potansiyometre için Kablolama Şeması
(3x) Potansiyometre için Kablolama Şeması
(3x) Potansiyometre için Kablolama Şeması

En soldaki bacak 5v'ye ve en sağdaki bacak GND'ye bağlanacaktır. Aslında bu iki adımı tersine çevirebilirsiniz ve bu projeye çok fazla zarar vermez. Değişecek olan tek şey, düğmeyi tamamen sola çevirmek, tamamen kapatmak yerine tam parlaklık olacaktır. Orta bacak Arduino üzerindeki analog pinlerden birine bağlanacaktır. Üç düğmemiz olacağından, az önce yaptığımız işi üçe katlamak isteyeceğiz. Her düğme 5v ve GND'ye ihtiyaç duyar, böylece bunlar bir breadboard kullanılarak paylaşılabilir. Ekmek tahtası üzerindeki kırmızı şerit 5 Volt'a, mavi şerit ise toprağa bağlanmıştır. Her düğmenin kendi analog pinine ihtiyacı vardır, böylece A0, A1, A2'ye bağlanırlar.

Adım 5: AnalogRead() ve Değişkenleri Kullanma

Potansiyometreyi doğru bir şekilde ayarladığınızda, bu değerleri okumaya hazırız. Bunu her yapmak istediğimizde analogRead() işlevini kullanırız. Doğru sözdizimi analogRead(pin#); orta potansiyometremizi okumak için analogRead(A1); Düğmeden Arduino'ya gönderilen sayılarla çalışmak için bu sayıları bir değişkene kaydetmek isteyeceğiz. Potansiyometreyi okurken ve mevcut numarasını "val" tamsayı değişkenine kaydederken kod satırı bu görevi yerine getirecektir.

int val = analogRead(A0);

Adım 6: Seri Monitörü 1 Düğmeyle Kullanma

Image
Image

Şu anda topuzlardan değerler alıp bir değişkene kaydedebiliyoruz ama bu değerleri görebilsek daha iyi olurdu. Bunu yapmak için yerleşik seri monitörü kullanmamız gerekiyor. Aşağıdaki kod, kendi sitelerinden indirilebilen Arduino IDE'de çalıştıracağımız ilk çizimdir. void setup()'ta, her bir orta bacağa bağlı analog pinleri bir INPUT olarak etkinleştireceğiz ve Serial.begin(9600) kullanarak Seri monitörü etkinleştireceğiz; sonra düğmelerden sadece birini okuruz ve onu önceki gibi bir değişkende saklarız. Şimdi değişiklik, değişkende hangi sayının saklandığını yazdıran bir satır ekledik. Çizimi derler ve çalıştırırsanız, Seri monitörünüzü açabilir ve ekranda kayan sayıları görebilirsiniz. Kod her döndüğünde başka bir sayı okuyor ve yazdırıyoruz. A0'a bağlı olan düğmeyi çevirdiğinizde 0-1023 arasında değerler görmelisiniz. Daha sonra amaç, kaydetmek ve yazdırmak için 2 analogReads ve 2 farklı değişken gerektiren 3 potansiyometrenin tümünü okumak olacaktır.

geçersiz kurulum(){

pinMode(A0, GİRİŞ); pinMode(A1, GİRİŞ); pinMode(A2, GİRİŞ); Seri.başla(9600); } geçersiz döngü(){ int val = analogRead(A0); Seri.println(val); }

7. Adım: RGB LED'i kullanma

RGB LED'i kullanma
RGB LED'i kullanma
RGB LED'i kullanma
RGB LED'i kullanma
RGB LED'i kullanma
RGB LED'i kullanma

4 Bacaklı RGB LED, Arduino için en sevdiğim bileşenlerden biridir. 3 temel rengin karışımından sonsuz renkler yaratmanın yolunu büyüleyici buluyorum. Kurulum, herhangi bir normal LED'e benzer, ancak burada temelde birlikte birleştirilmiş kırmızı, mavi ve yeşil LED'lerimiz var. Kısa bacakların her biri arduino üzerindeki PWM pinlerinden biri tarafından kontrol edilecektir. En uzun bacak, sizinkinin ortak bir anotta veya ortak katot LED'inde olmasına bağlı olarak 5 volt veya toprağa bağlanacaktır. Bunu çözmek için her iki yolu da denemeniz gerekecek. Breadboard'a zaten bağlı 5v ve GND'ye sahip olacağız, bunun değiştirilmesi kolay olmalı. Yukarıdaki şemada 3 direnç de gösterilmektedir. Aslında sahip olmadığım ve LED'in üzerime patladığı için bu adımı atlıyorum.

Renkleri oluşturmak için ne kadar kırmızı, mavi veya yeşil ekleneceğini kontrol etmek için analogWrite() işlevini kullanacağız. Bu fonksiyonu kullanmak için hangi pin# ile konuşacağımızı ve 0-255 arasında bir sayı söylemelisiniz. 0 tamamen kapalıdır ve 255 bir rengin en yüksek miktarıdır. Kırmızı bacağı pim 9'a, yeşili pim 10'a ve maviyi pim 11'e bağlayalım. Bu, hangi bacağın hangi renk olduğunu anlamak için biraz deneme yanılma gerektirebilir. Mor bir ton yapmak isteseydim, çok fazla kırmızı yapabilirdim, yeşil yok ve belki de yarı güçte mavi. Sizi bu sayılarla uğraşmaya teşvik ediyorum, bu gerçekten heyecan verici. Bazı yaygın örnekler yukarıdaki resimlerde

geçersiz kurulum(){

pinMode(9, ÇIKIŞ); pinMode(10, ÇIKIŞ); pinMode(11, ÇIKIŞ); } geçersiz döngü(){ analogWrite(9, 255); analogWrite(10, 0); analogWrite(11, 125) }

Adım 8: RGB LED'i Kontrol Etmek İçin Potansiyometrelerin Kullanılması (Tek Hata ile)

RGB LED'i Kontrol Etmek İçin Potansiyometre Kullanma (Tek Hata ile)
RGB LED'i Kontrol Etmek İçin Potansiyometre Kullanma (Tek Hata ile)
RGB LED'i Kontrol Etmek İçin Potansiyometre Kullanma (Tek Hata ile)
RGB LED'i Kontrol Etmek İçin Potansiyometre Kullanma (Tek Hata ile)
RGB LED'i Kontrol Etmek İçin Potansiyometre Kullanma (Tek Hata ile)
RGB LED'i Kontrol Etmek İçin Potansiyometre Kullanma (Tek Hata ile)

İki kodu birleştirmeye başlamanın zamanı geldi. Standart bir devre tahtasında 3 düğmenin tümüne ve RGB LED'e uyacak kadar yeterli alana sahip olmalısınız. Buradaki fikir, kırmızı, mavi ve yeşil için değerleri yazmak yerine, renkleri sürekli değiştirmek için her bir potansiyometreden kaydedilen değerleri kullanacağız. Bu durumda 3 değişkene ihtiyacımız olacak. redval, greenval, blueval farklı değişkenlerdir. Bu değişkenleri istediğiniz herhangi bir şekilde adlandırabileceğinizi unutmayın. "Yeşil" düğmeyi çevirirseniz ve kırmızı miktar değişirse, isimleri doğru eşleşecek şekilde değiştirebilirsiniz. şimdi her bir düğmeyi çevirebilir ve renkleri kontrol edebilirsiniz!

geçersiz kurulum(){

pinMode(A0, GİRİŞ); pinMode(A1, GİRİŞ); pinMode(A2, GİRİŞ); pinMode(9, ÇIKIŞ); pinMode(10, ÇIKIŞ); pinMode(11, ÇIKIŞ); } geçersiz kurulum(){ int redVal = analogRead(A0); int greenVal = analogRead(A1); int blueVal = analogRead(A2); analogWrite(9, redVal); analogWrite(10, greenVal); analogWrite(11, blueVal); }

Adım 9: BONUS: Harita() İşlevi ve Temizleyici Kodu

Düğmeyi bir renk yukarı çevirmeye başladığınızda, büyüyeceğini ve ardından aniden aşağı inerek kapanacağını fark edebilirsiniz. Bu büyüme ve ardından hızla kapanma modeli, düğmeyi sonuna kadar çevirdiğinizde 4 kez tekrar eder. Hatırlarsanız potansiyometrelerin 0 ile 1023 arasındaki değerleri okuyabildiğini söylemiştik. analogWrite() işlevi yalnızca 0 ile 255 arasındaki değerleri kabul eder. Potansiyometre 255'in üzerine çıktığında temelde 0'dan başlar. map() adı verilen hata. tek adımda bir sayı aralığını başka bir sayı aralığına dönüştürebilirsiniz. 0-1023 arasındaki sayıları 0-255 arasındaki sayılara çevireceğiz. Örneğin, düğme yarıya ayarlanmışsa, yaklaşık 512 okumalıdır. Bu sayı, LED'in yarı gücü olan 126'ya değiştirilecektir. Bu son çizimde, kolaylık olması için pinleri değişken isimlerle adlandırdım. Artık denemek için tamamlanmış bir renk karıştırıcınız var!!!

// potansiyometre pinleri için değişken isimleri

int redPot = A0; int yeşilPot = A1; int bluePot = A2 // RGB pinleri için değişken isimleri int redLED = 9; int yeşilLED = 10; int maviLED = 11; void setup(){ pinMode(redPot, INPUT); pinMode(greenPOT, INPUT); pinMode(bluePot, INPUT); pinMode(kırmızıLED, ÇIKIŞ); pinMode(yeşilLED, ÇIKIŞ); pinMode(maviLED, ÇIKIŞ); Seri, başla(9600); } void loop(){ // potansiyometrelerden değerleri oku ve kaydet int redVal = analogRead(redPot); int greenVal = analogRead(greenPot); int blueVal - analogRead(bluePot); //RGB LED için değerleri 0-1023'ten 0-255'e çevir redVal = map(redVal, 0, 1023, 0, 255); greenVal = harita(greenVal, 0, 1023, 0, 255); blueVal = harita(blueVal, 0, 1023, 0, 255); // bu dönüştürülmüş değerleri RGB LED analogWrite'ın her rengine yaz(redLED, redVal); anaogWrite(greenLED, greenVal); analogWrite(maviLED, blueVal); //Seri monitördeki değerleri göster Serial.print("red:"); Serial.print(kırmızıVal); Serial.print("yeşil:"); Serial.print(greenVal); Serial.print("mavi:"); Serial.println(blueVal); }

Önerilen: