Etiketler

Arduino basic projects etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster
Arduino basic projects etiketine sahip kayıtlar gösteriliyor. Tüm kayıtları göster

21 Aralık 2014 Pazar

Arduino LM35 Sensörü ve LCD ekran ile Termometre Yapımı


Merhabalar
Bu yazımda sizlere LM35 sıcaklık sensörü ve LCD ekran kullanarak Arduino ile görsel bir termometre yapımından bahsedeceğim. LM35 sensörü ile sıcaklık ölçülmesi ve bilgisayar monitorunde değerin okunmasından daha önceki yazımda bahsetmiştim. http://ydemiral.blogspot.com.tr/2014/09/arduino-lm35-scaklk-sensoru-ile.html

Gerekli Malzemeler:

1 Arduino Uno
1 LM35 Sıcaklık Sensörü
1 LCD 16x2 ekran
1 10K potansiyometre
Jumper kablolar

Devremiz :









































Arduino Kodumuz:


#include <LiquidCrystal.h>
// LCD Kütüphanesini bağlanan pin’ler ile başlat.
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int SicaklikPin = 0; // LM35 sensöre bağlı pin (Analog 0)
int OkunanDeger; // Analog 0′dan okunacak değer (0-1023) LM35′in vereceğı en büyük okuma değeri 1V=205 olacak.
int Sicaklik; //

void setup() {
// LCD’yi 16 sütün, 2 satır olarak başlat
lcd.begin(16, 2);
// Birinci satıra “Oda Sıcaklığı:” yaz.
lcd.print("Oda sicakligi:");
}

void loop() {

OkunanDeger = analogRead(SicaklikPin);
Sicaklik = map (OkunanDeger, 0, 205, 0, 100); //(0-1v 0-205 okuma değerini, 0-100 sıcaklığa dönüştür.)

// İmleci 2. satıra getir.
// Not: Satır: 0, Satır 2: 1 olarak geçer. Satır sayıları 0′dan başlar.
lcd.setCursor(0, 1);
lcd.print(Sicaklik); // hesaplanan sıcaklığı yazdır.
lcd.print(" Derece"); // devamına birimi olan derecece yaz.
delay (1000); // Sonraki ölçümden önce 1 saniye bekle.

}

Ve sonuç :))



21 Eylül 2014 Pazar

Arduino LM35 Sıcaklık Sensörü ile Termometre


Merhabalar

Bu yazımda son zamanlarda mutfağımızda sıkça kullandığımız malzeme olan Arduino ile ocağın altını fazla yakmadan yemeklerimizi tam kıvamında olması gereken sıcaklığında pişirebilmek için sıcaklık sensörü ile yeni yardımcı bir yemek yapımından bahsetmek istiyorum :D  Eğer yazımın giriş kısmını okuyorsanız neler oluyor burada diye düşünebilirsiniz :D Sanırım yasemin'in elektronikle uğraşması sonucu oluşan bir yan etki olabilir hele ki blog yazılarında mizaha da yer vermek istiyorsa..  :)) Kısa bir gülümsenin ardından artık mutfağa girebiliriz :D

Aynı zamanda Raspberry Pi ile Termometre blog yazıma ulaşmak için tıklayınız.

Sizlere Arduino LM35 sıcaklık sensörünü kullanarak oda sıcaklığını ölçme uygulamasından bahsetmek istiyorum..

* LM35doğrusal, hassas bir sıcaklık sensörüdür.


















* LM35 her 10mV'ta 1 C ölçüm yapmaktadır, LM35'in sinyal pini Arduino'nun analog 1 (A1) pinine bağlanmıştır.

*LM35 analog değerini sayısal değere çevirmemiz gerekiyor. Bunun için LM35'in karakteristiğine göz atacak olursak;

  • Dereceye kalibre edilmiştir.
  • 1 derecelik sıcaklık artışında çıkışı 10mV artar. Doğrusaldır.
  • -55 derece ile + 150 derece arasında ölçüm yapabilir.
  • Giriş gerilimi olarak 4V-30V arasında çalışabilir.
  • LM35'in beslemesi ve toprağı bağlanır.
  • LM35'in çıkış ucu mikrodenetleyicinin analog girişine bağlanır.Kullanılacak mikrodenetleyicinin ADC biriminin 10 bit çözünürlikte olduğunu varsayalım.
  • 2-150 derece 0V-1,48V ile ölçeklenmiştir.
  • 0V-5V arası da ADC 10 bit olduğu için 2^10=1024 ile ölçeklenmiştir.
  • 0V-1,48V bu hesaba göre analog ölçümün 0-303 değerleri arasına ölçeklenmiş olur.
  • Bu işlemleri formül haline getirecek olursak SıcaklıkDegeri=2+(ADCValue*148/303); olur.

Orta bacağından verilen mV  gerilim her °C için 10 mV üretir. Yani 25 °C için çıkış 250 mV olur. 
Arduino'daki ADC 10 bitlik olduğu için  ve en yüksek değerimiz 5000 mV olduğu için bu 5000 mV'u 1024 parçaya işlemcimiz ayıracaktır. Yani 1023.değer bize 5V'u verecek ve her 10 mV bize 1 °C 'yi verecek şekilde programımızı yazıyoruz.

Gerekli Malzemeler:

1 Arduino Uno
1 LM35 Sıcaklık Sensörü
3 Jumper Kablo


Devremiz:





Arduino Kodumuz:

float sicaklik; //Analog değeri dönüştüreceğimiz sıcaklık 
float olculendeger; //Ölçeceğimiz analog değer
int sicaklikpin=1;  //Analog değer girişi

void setup () {
  Serial.begin(9600); //Seri haberleşme,sıcaklığı ekrandan takip edeceğiz.
}

void loop () {
 olculendeger = analogRead(sicaklikpin); //A1'den değeri alacak
 olculendeger = (olculendeger/1023)*5000;//değeri mV'a dönüştürecek 
 sicaklik = olculendeger /10,0; // mV'u sicakliğa dönüştürecek

 Serial.print("Sicaklik : ");
 Serial.print (sicaklik);
 Serial.println (" derece");
 delay (1000); //1sn aralıklarla yapacak

}


Arduino'ya yükleme işleminden sonra sıcaklık değerlerini görmek için seri haberleşme monitörünü açmalıyız.

Ve sonuç :))
























NOT: Benim odamın sıcaklığı 21.5'dir. Ölçülen değerler doğrudur.


Yaralandığım Kaynaklar:
http://arduinotik.blogspot.com.tr/2014/03/arduino-lm35-scaklk-sensoru-ile.html
http://enginsubasi.blogspot.com.tr/2014/04/lm35-scaklk-sensoru-nasl-kullanlr.html

Arduino RGB LED

Merhabalar

Bu yazımda sizlere Arduino ile RGB led kullarak rasgele farklı renk yakmaktan bahsetmek istiyorum.

Rgb led yeşil, mavi ve kırmızı renklerin bir ledde birleştirilmesi ile oluşturulmuştur. Ana renklerden meydana gelir ve bu renklerin bazılarının beraber kullanılması ile ara renkler elde edilir.








Bu uygulamamızda RGB led kullanarak 1sn aralıklarla kırmızı, mavi, yeşil, sarı, cyan, magenta ve beyaz renklerini rasgele olarak yakacağınız. Gerekli olan malzemeler, şematik ve Arduino kodumuz aşağıdaki gibidir. Kodun nasıl çalıştığı satırların yanındaki yorum kısımlarında mevcuttur. Uygulamanın çalışır haldeki fotografları ve videosu da yazının sonunda yer almaktadır.

Herkese kolay gelsin.


Gerekli olan malzemeler

1-Arduino UNO
1-330ohm direnç
1-RGB led
1-breadboard
4-jumper kablo

Devre :



Kod:

int ledcolor = 0;
int a = 1000; //rengin ne kadar süre yanacağını belirliyoruz. Her renk 1 sn boyunca yanacak.
int red = 11; //kırmızı pin
int green = 12; //yeşil pin
int blue = 13; //mavi pin
void setup() { //çıkış pinlerimizi set ediyoruz

pinMode(red, OUTPUT);
pinMode(green, OUTPUT);
pinMode(blue, OUTPUT);
}

void loop() {
int ledcolor = random(7); //0-6 arası rasgele bir sayı seçiliyor
switch (ledcolor) {
case 0: //eğer sayı 0 ise kırmızı
analogWrite(red, 51); //pwd* (sinyal genişlik modülasyonu)
delay(a);
analogWrite(red, 255);
break;
case 1: //sayı 1 ise yeşil
digitalWrite(green, LOW);
delay(a);
digitalWrite(green, HIGH);
break;
case 2: //2 ise mavi
digitalWrite(blue, LOW);
delay(a);
digitalWrite(blue, HIGH);
break;
case 3: //3 ise sarı , sarı kırmızı ile yeşil rengin beraber yanması sonucu oluşur.
analogWrite(red, 95);// pwd*
digitalWrite(green, LOW);
delay(a);
analogWrite(red, 255);
digitalWrite(green, HIGH);
break;
case 4: //4 ise cyan, cyan rengi kırmızı ve mavinin beraber yanması ile oluşur
analogWrite(red, 168); //pwd*
digitalWrite(blue, LOW);
delay(a);
analogWrite(red, 255);
digitalWrite(blue, HIGH);
break;
case 5: //5 ise magenta, magenta rengi yeşil ile mavinin beraber yanması sonucu oluşur
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
delay(a);
digitalWrite(green, HIGH);
digitalWrite(blue, HIGH);
break;
case 6: //6 ise beyaz, beyaz ise 3 ana rengin beraber yanması sonucu olusur
analogWrite(red, 155);
digitalWrite(green, LOW);
digitalWrite(blue, LOW);
delay(a);
analogWrite(red, 255);
digitalWrite(green, HIGH);
digitalWrite(blue, HIGH);
break;
}

}



Çalışır durumdaki hali:





Çalışır hali;



*  PWM (Pulse Width Modulation),(Sinyal genişlik modülasyonu) darbe genişlik modülasyonu anlamına gelir. Temel olarak çıkışta elde edilmek istenilen sinyalin bant genişliğini (frekans düzenlemesi olarak da düşünülebilir) ve dalga biçimini belirlemek amacıyla kullanılan bir yöntemdir. Digital araçlarda analog sonuç almaya yarar. RED 255 yazdığımızda aslında biz digiyal olarak 1 sonucunu alıyoruz ve 5v veriyoruz. Ancak RED 155 yazdığımızda bu 5v dan farklı bir değer oluyor ve lambaya tam olarak kırmızı değeri, kırmızının parlaklığını vermiyor. Çünkü her renk farklı bir V'da tepki verir. 



 Yararlandığım Kaynaklar;

http://www.instructables.com/id/Arduino-Examples-1-Make-An-RGB-Led-Randomly-Flash/?ALLSTEPS
http://pwm.nedir.com/#ixzz3DxqrEtV5

9 Eylül 2014 Salı

Arduino ile Trafik Lambası


Merhabalar

Bu yazımda sizlerle Arduino üzerinde LEDleri trafik lambası gibi programlayı paylaşmak istiyorum.

Öncelikle trafik lambalarının çalışma prensibine kısaca değinmek istiyorum. Hepimizin bildiği üzere trafik ışıklarında kırmızı ışık belli bir süre yanar sonra kırmızı ile sarı ışık beraber yanar, onlar söner ve arkasından yeşil ışık yanar.. Yeşil ışık belli bir süre tek başına yandıktan sonra yeşil ve sarı beraber yanar, arkasında onlar söner kırmızı ışık yanar.. Döngümüz bu şekilde devam eder..

Uygulamamızı bizde aynı şekilde yapacağımız 4saniye tek başına yanan lambaların 1 saniye boyunca da sarı ışıkla beraber yanmasını sağlayacağız.
 Kaynak kodunu yazarken kod satırlarının yanına ne amaçla kullanıldığını da not ettim. Umarım yararlı olur.

Kod :

int led_K = 5;// kırmızı lambamızın çıkış yeri
int led_S = 4;//sarı lambamızın çıkış yeri
int led_Y = 3;// yeşil lambamızın çıkış yeri

void setup()
{
  pinMode (led_K, OUTPUT );//kırmızı ışığımız için çıkış verdik
  pinMode (led_S, OUTPUT );//sarı ışığımız için çıkış verdik
  pinMode (led_Y , OUTPUT);//yeşil ışığımız için çıkış verdik
  
}
void loop(){
  digitalWrite(led_K ,HIGH); //kırmızı lamba yanıyor
  delay (4000);//4 milisaniye, 4 saniye
  digitalWrite (led_S , HIGH);// sarı ve kırmız lambamız beraber yanıyor
  delay (1000);//1 saniye sarı ve kırmızı lambamız yanıyor.
  
  digitalWrite (led_K, LOW); //kırmızı lambamızı söndürdük
  digitalWrite (led_S , LOW);// sarı lambamızı söndürdük
 digitalWrite (led_Y, HIGH);//yeşil lamba yanıyor
 delay(4000); //4 saniye boyunca yeşil tek başına yanıyor
 digitalWrite (led_S , HIGH);// sarı lambamız tekrar yanıyor
 delay (1000);//sarı ve yeşil beraber 1 saniye boyunca yanıyor
 digitalWrite (led_Y , LOW);//yeşil lambabımızı söndürdük
 digitalWrite (led_S , LOW);//sarı lambamızı söndürdük
 // bundan sonra tekrar loop un içinde başa dönücek ve tekrar kırmızı yanmaya başlayacak..

}




Devre :



Çalışır durumdaki hali ;







En son çalışır hali :





Herkese İyi Çalışmalar :)

Yararlanılan Kaynaklar :
http://batuhankoyuncu.com/tag/arduino-uno/

Arduino Buzzer Kullanımı


Merhabalar

Bugun Arduino'da  buzzer kullanarak yaptığım basit bir uygulamadan bahsetmek istiyorum.
Öncelikle buzzerın ne olduğundan bahsetmek istiyorum.

Buzzer : Elektronik cihazlarda üzerine gelen voltajın büyüklüğü ile orantılı “bip” sesi çıkaran minik hoparlörlerdir. Devreli ve devresiz buzzer olmak üzere iki çeşidir var ve devreli olanlardan daha güçlü bir ses çıkıyor.

Bende çok basit müzik yapan bir uygulama yaptım :))


Arduino kaynak kodumuz aşağıdaki gibidir. 12. pin üzerinden çalışıyoruz.
int speakerPin = 12;
 
int numTones = 10;
int tones[] = {261, 277, 294, 311, 330, 349, 370, 392, 415, 440};
//            mid C  C#   D    D#   E    F    F#   G    G#   A
 
void setup()
{
  for (int i = 0; i < numTones; i++)
  {
    tone(speakerPin, tones[i]);
    delay(500);
  }
  noTone(speakerPin);
}
 
void loop()
{
}


Devrenin Bağlanma şekli:



Son Hali: 




Sonucun ne olduğunu merak edenler için :))




Herkese iyi çalışmalar :))


Yararlandığım kaynaklar :
http://safakesberk.com/2014/01/16/buzzer-nedir/
https://learn.adafruit.com/adafruit-arduino-lesson-10-making-sounds/playing-a-scale