coolwolf / 10/01/2016

Arduino ve DHT11 ile sıcaklık ve nem okuma

Öncelikle SimpleDHT kütüphanesini ekliyoruz :
Önce Taslak -> Library ekle -> library’leri düzenle
dht_1
Ardından arama kutucuğuna dht yazıp enter tuşuna basın:
dht_2
Böylece kütüphanemizi eklemiş olduk.
Şimdi kütüphane ile birlikte gelen örneği çağıralım.
Bunun için; Örnekler -> Simple DHT -> Default sketch’ini çağırıyoruz.
dht_3
Alttaki bağlantı şekline göre Arduino ile DHT arasındaki bağlantıları yapıyoruz
sicaklikoku
Şimdi alttaki kodu içeren (DHT default ile çağırdığımız) derlemeyi ARduinho’ya gönderebiliriz.

#include
// for DHT11,
// VCC: 5V or 3V
// GND: GND
// DATA: 2
int pinDHT11 = 7;
void setup() {
Serial.begin(115200);
}
void loop() {
// start working...
Serial.println("=================================");
Serial.println("Sample DHT11...");
// read without samples.
byte temperature = 0;
byte humidity = 0;
if (simple_dht11_read(pinDHT11, &temperature, &humidity, NULL)) {
Serial.print("Read DHT11 failed.");
return;
}
Serial.print("Sample OK: ");
Serial.print((int)temperature); Serial.print(" *C, ");
Serial.print((int)humidity); Serial.println(" %");
// DHT11 sampling rate is 1HZ.
delay(1000);
}

Arduino portunuzu doğru seçtiğinizden emin olunuz.
115200 hızında Serial Monitör açarsanız alttaki gibi bir çıktı görmeniz gerekiyor :
dht_4

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;
  }
}

coolwolf / 01/07/2013

Arduino and Maximite, an Open Source Adventure

I like arduino. I like using it.
You know, it is open source. You can build it by yourself. It is very good point for users like me.
But what if we look from founder’s eyes ?
Please give a little time and read both Arduino‘s and Maximite‘s experience with Open Source and GNU GPL


Arduino’s Lessons Learned

Geoff Graham’s Learned Lessons
People makes money using free hardware. But no one pays to founder of idea.
This is not fair.