Arduino ile Bilgisayar Arasında USB Yoluyla İletişim Kurmak ve Bilgisayar ile Motor Hızı Kontrol Uygulaması

Arduino UnoGeçenlerde ebay’den bir Arduino Uno almıştım. Yavaş yavaş bu platformu öğreniyorum. Uzun zamandır, devrelerimden aldığım verileri bilgisayarda görebilmeliyim diye düşünüyordum. Bu işi en kolay nasıl yapabilirim diye düşünürken işin sırrının seri iletişimde saklı olduğunu farkettim.

Birkaç gün önce ebay’den, seri iletişim için mutlaka işime yarayacağını düşündüğüm USB to Serial RS232 diye bir eleman aldım. Dün bu aleti kurcalarken ilk defa bilgisayar ile devrem arasında iletişim kurdum. Bugün ise Arduino ile bilgisayarım arasında iletişim kurmak için bu alete gerek olmadığını öğrendim. Zaten elimizdeki Arduino ve USB kablosu ile bu iletişim sağlanıyormuş(Yeniyim bu konularda. Şimdi kendime diyorum be adam yazdığın kodu Arduino’ya aktarıren TX ve RX ledleri yanıyor,demek ki seri iletişebiliyormuş sadece USB kablosu ile:) )

Arduino MotorNeyse, hikaye kısmını geçelim. Daha önce Arduino ile ilgili bir anlatımın olduğu dökümanda Motor kontrolü uygulaması vardı. Aynı devreyi tekrar kurdum. Fakat bu sefer bilgisayar ile kontrol edeceğiz. Yandaki şekilde de göreceğiniz üzere çok basit bir devremiz var. Ben 5V yerine 9V’luk bir pil kullanıyorum(12V Motor ile).

 

 

Arduino’yu bilgisayarınıza bağladıktan sonra, derleyiciyi açarak aşağıdaki kodları yazalım.

int inByte; //Seri yoldan gelen veri
int motorSpeed=125; //İlk durumda motorun çalışma hızı
void setup() {
    Serial.begin(9600); // Seri iletişim ayarı - iletişimi aktifleştir ve hızını ayarla
    analogWrite(9,motorSpeed);  //Motorumuzu çalıştır
}

void loop() {  //Program boyunca çalışan döngü
  if (Serial.available() > 0) { //Eğer seri bilgi gelmişse
    inByte = Serial.read(); //O bilgiyi oku ve inByte değişkenine ata
    Serial.write("Alinan karakter:"); //Bilgisayara seri olarak 'Alınan Karakter:' yazısı gönder
    Serial.println(inByte, DEC);  //Bilgisayara seri olarak inByte değişkenindeki değeri onluk tabanda  gönder(bildiğiniz 10)
    if(inByte==119) //'w' harfi int olarak 119'a karşılık geliyor, yani klavyeden 'w' değeri gönderilmişse
    {
       if(motorSpeed <= 245) //Motor hızı 10 arttırıldığında 25        5'i aşmayacak ise
motorSpeed+=10;  //Motor hızını 10 arttır
      analogWrite(9,motorSpeed);  //9.Pinde motor hızımız kadar PWM uygula
}
if(inByte==115)  //'s' harfi int olarak 115'e karşılık geliyor, yani klavyeden 's' değeri gönderilmişse
 {         if(motorSpeed >= 10)  //Motor hızı 10 azaltığında 0'dan düşük bir duruma gelmeyecek ise
         motorSpeed-=10;  //Motor hızını 10 azalt
       analogWrite(9,motorSpeed);    //9.Pinde motor hızımız kadar PWM uygula
    }
  }
}

Eğer tüm adımları doğru şekilde yaptıysanız, motorunuz dönmeye başlayacaktır. Şimdi kodumuzu yazığımız Arduino Compiler’ımız açıkken CTRL+Shift+M yaparak Serial Monitor’ü açalım. (Tools Menüsü altından da ulaşabilirsiniz).

Arduino Serial Monitorw yazıp send tuşuna bastığınızda moturunuzun hızlandığını, s yazdığınızda ise yavaşladığını gözlemleyeceksiniz.

Tek tek yapmak canınızı sıkıyor ise, wwwwww.. yazarak bir anda hızlandırabilirsiniz:)

NOT: Küçük harf olan w girmelisiniz, W girerseniz değişim gözlenmez.

* Programda Serial.begin() ile belirttiğiniz sayı ile Serial Monitor içinde sağ altta yer alan baud rate’in aynı olmasına dikkat edin

 

6 thoughts on “Arduino ile Bilgisayar Arasında USB Yoluyla İletişim Kurmak ve Bilgisayar ile Motor Hızı Kontrol Uygulaması”

  1. dostum bu arduinoyu nereden temin ettiğini öğrenmek istiyorum.Mümkünse paylaşır mısın?

  2. güzel bir doküman olmuş.
    Teşekkürler.
    Bu anlatım tarzı ile devamını beklerim

  3. Motorun uçlarını nasıl bağlayacağız birini 9 a bağladık ama öbür ucunu nere bağlayacağımızı bilmiyoruz yardım ederseniz seviniriz.

  4. ben Arduinoya bağlı bir tuşa basıldığında bilgisayardaki herhangi birşeyin açılmasını istiyorum. Mesela hesap makinesini. Mümkün mü?

Leave a Reply

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