coolwolf / 31/07/2014

Arduino Nedir

Resmi sitesi www.arduino.cc olan, açık kaynaklı (yani arduino tarafından verilen şemayı ticari veya ticari olmayan ürünlerinizde kullanabilirsiniz.), Atmel AVR mikrodenetleyicileri kullanan elektronik hobi / deney ortamıdır.

Arduino Uno, Arduino Leonardo, Arduino Due, Arduino Yun, Arduino Micro, Arduino Robot, Arduino Esplora, Arduino Mega ADK, Arduino Mega 2560, Arduino Ethernet, Arduino Mini, Arduino Nano, Arduino Pro Mini, Arduino Pro ve Arduino Fio gibi çeşitleri vardır.
Benim en çok kullandığım ürünler Arduino Pro Mini, Arduino Uno ve Arduino Mega 2560. Dolayısı ile örneklerimizde genellikle bu üç ürünü (En çok da arduino uno) kullanacağız.
Arduino’nun bu kadar ilgi görmesinin sebeplerini şu şekilde sıralayabiliriz :
*Bu adresten indirebileceğiniz; kolay kullanımlı ve tek parça IDE’si (programlama aracı) var,
*Arduino şema’sını sizinle paylaşır, yani arduino tarafından verilen şemayı istediğiniz şekilde değiştirerek kullanabilirsiniz,
*Çok basit bir devredir,
*Parçaları ucuzdur ve heryerde bulunabilir,
*Orijinal tasarımı gereği oldukça modülerdir, hazır SHIELD‘ları kullanabileceğiniz gibi kendinize ait SHIELD da yapabilirsiniz,
*Örnek programcıklar konusunda yardım bulmak çok kolay…
Peki Arduino ile ne yapabiliriz ?
*SD Kart Shield’ını kullanarak analog veya dijital verilerinizin kaydını tutabilirsiniz,
*LCD Shield ve Push Button (yada başka bir giriş yöntemi) kullanarak  16×2 LCD ekranda yazılar yazabilirsiniz,
*Ethernet Shield kullanarak Arduino’nunuz Web Sunucusu yapıp, üzerindeki girişlerin durumunu herhangi bir tarayıcı aracılığı ile gösterebilirsiniz,
*Ultrasonic Sensör Shield kullanarak LCD ekranda mesafe österebilir, yada bir buzzer ekleyerek geri vites sensörü yapabilirsiniz,
*Step Motor sürebilirsiniz,
*Servo Motor sürebilirsiniz,
*IR Led kullanarak uzaktan kumandalı denemeler yapabilirsiniz,
*RF Shield kullanarak uzaktan kumanda şeklinde kullanabilirsiniz,
…… bu liste uzayıp gider
Arduino UNO üzerinden gidecek olursak;
Atmega328 kullanır, 14 dijital giriş çıkış, 6 adet analog giriş çıkış mevcuttur.
Dijital girişlerden 6 tanesi PWM olarak kullanılabilir.
Nedir bu PWM derseniz, buradaki Wikipedia entry’sinden faydalanabilirsiniz.
Wikipedia entry’si İngilizce. Kendime v earkadaşlara not:İlk fırsatta Türkçe’sini yazalım.
Kısaca paralel veriyi seri olarak iletmek diyebiliriz.
Şöyle örnek verelim :
Arduino üzerinde 14 adet dijital giriş çıkış var. Diyelim ki kontrol etmek istediğiniz 20 farklı veri giriş kaynağı var. Bu durumda ya bu 20 veriyi binary sisteme çevirip kullanırsınız (Bu durumda 20 giriş için 5 adet arduino girişi kullanmanız gerekecektir.). Yada PWM ile peşpeşe bindirir, tek bir Arduino bacağından 20 girişi de kontrol edebilirsiniz.
Analog girişler 0-5V arası değeri size 0-1024 çözünürlüğünde sunar. Tabi analog çıkışı da bu çözünürlükte kullanabilirsiniz.
Özellikle LCD ile kullanmak üzere 13. girişten sonra SDA ve SCL bacakları eklenmiştir.
SPI girişleri Ethernet gibi Shield’lar için kullanılabilir.
Peki nasıl program yazılır bu Arduino’ya ?
Yukarıda belirtilen adresten Arduino IDE’yi indirip kurun.
Arduino’nuzu bilgisayara USB kablosu ile bağlayın.
Bilgisayarınız, taktığınız Arduino’ya aygıt yöneticisinden de görebileceğiniz bir COM Port atayacaktır.
Arduino IDE’nizi açıp, Tools-> Serial Port menüsünden atanan COM Portunu seçiniz.
Yine Tools-> Board menüsünden hangi Arduino’ya sahipseniz onu seçiniz.
Bundan sonra tek yapmanız gereken programınızı yazıp alttaki resimde görünen düğme ile Arduino’ya göndermek.
gonder

Peki diğer düğmeler ne işe yarıyor derseniz, basitçe göstermeye çalıştım :
butonlar

Kod yapısı iki bölümden oluşur:

void setup()
{
}
void loop()
{
}

setup içerisinde pinmode’larımızı yada diğer tek seferlik tanımlamalarımızı yapıyoruz.
loop içerisinde ise asıl yapılacakları yazıyoruz.
Eğer programımız çok büyükse kendi fonksiyonlarımızı yazıp, loop içerisini basit tutmak mantıklı olabilir.
Yarım saniyede bir yanıp sönecek bir led programı yapmak istersek :

void setup()
{
	pinMode(4,OUTPUT);
}
void loop()
{
	digitalWrite(4,HIGH);
	delay(500);
	digitalWrite(4,LOW);
	delay(500);
}

Yukarıdaki kodu çalıştırmak için Arduino’nuzun digital 4 ayağına bir direnç ile birlikte led bağlamanız yeterlidir.

coolwolf / 25/07/2014

Arduino ile 3 ledi sırayla yakmak

Arduino ile tetiklemeli 3’lü led yakma programı:

int LED1=2;
int LED2=3;
int LED3=4;
int sonLED=0;
int okuIN=8;
unsigned long sonZAMAN=0;
void setup()
{
  Serial.begin(9600);
  pinMode(LED1,OUTPUT);
  pinMode(LED2,OUTPUT);
  pinMode(LED3,OUTPUT);
  pinMode(okuIN,INPUT);
  sonZAMAN=millis();
}
void loop()
{
  int dugme=digitalRead(okuIN);
  if(dugme==HIGH && millis()-sonZAMAN>300)
   {
     Serial.print("sonzaman:");
     Serial.print(sonZAMAN);
     Serial.print("  millis:");
     Serial.println(millis());
     Kaydir();
     sonZAMAN=millis();
   }
}
void Kaydir()
{
  digitalWrite(LED1,LOW);
  digitalWrite(LED2,LOW);
  digitalWrite(LED3,LOW);
  if(sonLED==0 || sonLED==3)
  {
    digitalWrite(LED1,HIGH);
    sonLED=1;
  } else if(sonLED==1)
  {
    digitalWrite(LED2,HIGH);
    sonLED=2;
  }else if(sonLED==2)
  {
    digitalWrite(LED3,HIGH);
    sonLED=3;
  }
}