Araçlar - Makaleler

Android ve Arduino İle Bluetooth RGB Kontrol Cihazı

12 Haziran 2017, Yazar 5 comments
Android Bluetooth RGB Kontrol Cihazı

Android telefonunuzla ve Arduino ile RGB Şerit led kontrol edebileceğimiz bir proje yapalım. Evde kullanıyorum ve bir kaç kişiye de sattım. Kullanacağımız mosfetler 5 metre bir RGB şerit ledi kontrol etmeye yetecek kapasiteye sahip. Yatağınızın altına komple dönebilirsiniz 😉 yada mutfak dolabınızın üzerine yerleştirebilirsiniz orası sizin hayal gücünüze kalmış. Bu yazımızda Arduino tarafını anlatacağım.

Gerekli Alet Edevat Listesi
  • Arduino promini 328
  • HC06 Bluetooth Modül
  • IRFZ44N Mosfet 3 adet
  • RGB Şerit Led 5 Mt
  • Klemens 3 adet ikili
  • 10 K Direnç 3 adet
  • 7805 Voltaj Regulatörü
  • Delikli Pertinaks 10 cm 2
  • LedFader Kütüphanesi

Hadi Yapalım

Resimde görüldüğü gibi lehimliyoruz komponentlerimizi. 7805 voltaj regülatörünün sol bacağı ve ledlere giden artı klemensi dışında başka bir yere 12 volt vermiyoruz. HC06 Şifresi 1234 tür. Eğer HC06 Bluetooth bağlantısını yapabiliyor fakat serial monitörde herhangi bir değer göremiyorsanız RX TX girişlerinin doğru olduğunu kontrol edin. HC06 nın isim ve şifre değişikliği için HC06 Command Mode  isimli yazıyı görmek isteyebilirsiniz.





Arduino Programı
#include <SoftwareSerial.h>
#include <LEDFader.h>
SoftwareSerial mySerial(11, 10); // RX, TX soft serial kütüphanesi
#define LED_NUM 3LEDFader leds[LED_NUM] = {
LEDFader(3),
LEDFader(5),
LEDFader(6)
};
LEDFader r = LEDFader(3);
LEDFader g = LEDFader(5);
LEDFader b = LEDFader(6);
char value; // gelen karakter
String incomingByte = “”;int rv = 0;
int gv = 0;
int bv = 0;

int hiz = 1000;

boolean anim1 = false;
boolean anim2 = false;
void setup()
{
mySerial.begin(9600);
Serial.begin(9600);

r.fade(255, 1000); //başlangıçta ne renk yanacağını buradan belirliyoruz.
g.fade(50, 1000); // Kırmızı % 100 yanıyor ve yeşil % 20 amber rengine yakın bir renk oluyor

}

void loop(){

while(mySerial.available()) {
value = mySerial.read();
incomingByte.concat(value);
}
if (incomingByte != “”) {

if (incomingByte.substring(0,1) == “r”) {
anim1 = false;anim2 = false;rv = incomingByte.substring(1,4).toInt(); r.fade(rv, 100);Serial.println(rv);}
if (incomingByte.substring(0,1) == “g”) {
anim2 = false;anim1 = false;gv = incomingByte.substring(1,4).toInt(); g.fade(gv, 100); Serial.println(gv);}
if (incomingByte.substring(0,1) == “b”) {
anim2 = false;anim1 = false;bv = incomingByte.substring(1,4).toInt(); b.fade(bv, 100); Serial.println(bv);}
if (incomingByte.substring(0,3) == “bey”) {
anim2 = false;anim1 = false;b.fade(255, 100);g.fade(255, 100);r.fade(255, 100);}
if (incomingByte.substring(0,3) == “kap”) {anim1 = false;anim2 = true;b.fade(0, 100);g.fade(0, 100);r.fade(0, 100);}
if (incomingByte.substring(0,1) == “h”) {hiz = incomingByte.substring(1,5).toInt(); Serial.println(hiz);}
if (incomingByte.substring(0,2) == “ab”) {anim1 = true;anim2 = false; }

incomingByte = “”;

}
delay(15);
if (anim1 == true){
for (byte i = 0; i < LED_NUM; i++) {
LEDFader *led = &leds[i];
led->update();

// Set new fade
if (led->is_fading() == false) {
int duration = random(hiz , hiz*5); // animasyon hızı

// Up
if (led->get_value() == 0) {
byte color = random(10, 255);
led->fade(color, duration);
}
// Down
else {
led->fade(0, duration);
}
}
}

}
if (anim2 == true){
for (byte i = 0; i < LED_NUM; i++) {
LEDFader *led = &leds[i];
led->update();

// Set new fade
if (led->is_fading() == false) {

led->fade(0, 500);

}
}

}
r.update();
g.update();
b.update();
}

 

Arduino Yeni Kütüphanenin Eklenmesi

LedFader kütüphanesini GitHub dan indirmek için açılan sayfada  a tılıyoruz gelen kütüphaneyi Arduino Kurulum klasörümüzün içinde bulunan libraries klasörünün içine kopyalıyoruz.

Bluetooth RGB Şerit Led Android Uygulaması

Daha önce yazdığım  Android Uygulaması google play’de yüklü bu uygulama ve yukarıdaki Arduino Projesi uyumludur. Sonraki dersimizde Android tarafı nasıl yazılır onu anlatacağım. Bu proje ile yapılmış uygulama videosu alttadır.

 

  1. isocolak

Bir Cevap Yazın

Your email address will not be published. Required fields are marked *