Malzemeler
1 adet Arduino (örnekte uno kullandım)
1 adet RGB led (örnekte katot kullandım, anot kullanırken GND yerine 5v yada 3V3 e bağlayın)
3 adet direnç(Ben 270 ohm kullandım, 1k ya kadar yolu var, eğer direnç değeri az olursa RGB Led bozulabilir)(eğer 5V yerine 3V3 e bağlıyacaksanız gerek yok)
1 adet Breadboard (kullanmadan da yapabilirsiniz ama zor olur )
Jumper yada kablo
Devre Şeması
Ortak anot RGB de uzun bacak güç girişi olacak ve direnç sadece burada kullanılacak(şemada 1K), ortak katot için ise uzun bacak GND ye gidecek ve 3 adet direnç (270 lik kullandım) renk bacaklaına bağlanacak.
Ortak Katot Arduino Devresi
Ortak Anot RGB Arduino devresi
Programlama
Devremizi kurduk sıra geldi kodlamaya. Kod yazmaya başlamadan önce RGB ledimizin Anot veya Katot olmasının burada da fark yaratacığını belirtmek isterim. Aşağıda ki kod Anot için olacak ancak siz katot kullanacaksanız ters düşünmeniz gerekecek yani Anot ta HIGH kapatmak için, LOW açmak için kullanılacak, tabi PWM ile işlem yaparken 0 en yüksek değer 255 ise en düşük değer olacak. Aşağıdaki örnek için katot kullanıcıları PWM değeri X(mesela 100) iken 255-X(255-100) yazarsanız da aynı sonucu alırsınız. Anot ile katot ayırt etme işini ürün alırken öğrenmeniz iyi olacak.
int yesil = 9; //yesil bacağın 9. pinde olacağını belirtiyoruz int mavi = 10; //mavi 10 da int kirmizi = 11; // kırmızı 11 de int bekleme = 5; //renk geçişleri arası beklenecek süreyi yazıyoruz void setup() { //pinleri çıkış olarak ayarlıyoruz pinMode(yesil, OUTPUT); pinMode(mavi, OUTPUT); pinMode(kirmizi, OUTPUT); } void loop() { // her bir bacak için ilk değer oluşturuyoruz int kirmizi_degeri = 255; int mavi_degeri = 0; int yesil_degeri = 0; //bir for göngüsü oluşturuyoruz ve i değerini 255 e kadar birer birer artmasında for içindeki görevler yapılacak for( int i = 0 ; i < 255 ; i += 1 ){ yesil_degeri += 2; // yeşil değeri iki iki artacak mavi_degeri += 1; //mavi bir bir azalacak kirmizi_degeri -= 1; // kırmızı bir bir azalacak //daha sonra değerler bacaklara yazılıyor analogWrite( yesil, yesil_degeri ); analogWrite( kirmizi, kirmizi_degeri ); analogWrite( mavi, mavi_degeri); // eğer ortak katot ise //analogWrite( yesil, 255 - yesil_degeri); gibi yazılacak //bekleme süresi kadar bekleniyor delay( bekleme ); } }
Benzer Yazılar
- Android ile Cihaz Kontrolü
- Arduino ile Termometre
- ARDUIONO’DA PULL-UP ve PULL-DOWN DİRENCİ
- ROBOT TASARIMI
- Arduino ile park sensörü
- Arduino ile PIR Sensör Kullanımı
- Arduino İle Servo Motor Kontrolü
- Adreslenebilir RGB Led
- Arduino ile Flip-Flop
- Arduino ile HC-SR04 Ultrasonik Mesafe Sensörü kullanarak Uzaklık Ölçer