Etiketler

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

13 Haziran 2017 Salı

Arduino ile Toprak Nem Sensörü Kullanımı



 Merhabalar


Bu yazımda sizlere Arduino toprak nem sensörü ile ölçüm yapmaktan bahsedeceğim.

Ben bu projelerimde keyestudio'nun UNO R3 kartını (Arduino UNO R3 ile aynıdır) ve  keyestudio sensörlerlerini kullanacağım.

Gerekli Malzemeler : 

  • Arduino Uno
  • Toprak Nem Sensörü
  • Jumper kablo (3 adet dişi-erkek)



Kullandığınız sensörün markasına göre sensörün bağlanma şekillerinde değişiklik gözlenebilmektedir. Keyestudio Moisture Sensor'ün de 'S', '+' ve '-' olmak üzere 3 adet pin bulunmaktadır. 'S' pini sinyali aldığımız pin olup Analog pin olan 'A0' a bağlanmakta, '+' pin güç olacağımız '5V' pinine ve '-' pin ise topraklama pini olan GND'ye bağlanmaktadır.





Eğer sensörününüz üst taraftaki gibi bir modele sahipse sensörde bulunan 2li pini 2 adet dişi-dişi jumper kablo kullanarak karta bağlamanız gerekmektedir. Ardından karta bulunan 4 çıkış pininden A0 pini sensöre gelen veriyi analog olarak okumak için, D0 pini ise potansiyometre ile ayarlananan değere göre digital çıkış almak için kullanılabilmektedir. Buradaki devrede 1.pini A0 pinine, 3.pini GND pinine ve VCC yi ise 5V pinine bağlamanız yeterlidir. [*] 


**Arduino kartımızı bilgisayara bağladıktan ve port ayarlarını yaptıktan sonra,
Arduino kartta kullancağımız kod :

void setup() {
  // put your setup code here, to run once:
  Serial.begin(57600); //serial monitorda kullancağımız hız

}

void loop() {
  // put your main code here, to run repeatedly:

Serial.print ("Moisture Sensor Value:");
Serial .println(analogRead(0)); //sensörden okuduğumuz değer
delay(1000); //sensörden gelen verileri aralıklarla okumak için delay kullanıyoruz
}

Kodumuzu karta upload ettikten sonra serial monitor'u açıyor ve 56K hızında veri alışverişe başlıyoruz.


Serial monitor'de gözlemlenen 0 değerleri, sensörünüz herhangi bir değer almadığında kuru ortamda okuduğu değerlerdir. Sensörünüzü bir miktar su bulunan bardağın içine koyarsanız şekildeki gibi değerleri okuyabilirsiniz.


Bu arada editor olarak bilgisayarınıza Arduino indirebileceğiniz gibi online web editörü de kullanabilirsiniz. Arduino'nun Amazon üzerinden PaaS hizmeti vererek hazır kodlama ortamı sunmasını ben beğendim, tavsiye ederim.

Bu yazımda Arduino ile toprak nem sensörü ile basit bir proje yapılmasını anlattım. Daha sonraki yazılarımda görüşmek üzere...

Kaynaklar :

[*]Bu tip sensörle yapılan proje için @ZaferAyan' ı takip edebilirsiniz.
http://www.keyestudio.cc/h-nd-79.html
https://www.youtube.com/watch?v=PSWdu3rJL5M&index=18&list=PL2K0ws7Tl3rFnvxQYDugxgnl5M3E4GTlZ

11 Haziran 2017 Pazar

Raspberry Pi DHT11 Sıcaklık ve Nem Sensörü ile Termometre

Merhabalar

Bu yazımda Raspberry Pi kullanarak DHT11 sensörü ile sıcaklık ve nem  ölçümünden bahsetmek istiyorum.








Bende eski modellerden birisi olan Raspberry Pi Model B bulunmakta, işletim sistemini çok uzun zaman önce yüklemiştim. İşletim sistemindeki güncellemelerin çok fazla olmasına bağlı olarak raspberry çöktü. :(




Bu yüzden yeniden kurulum yaptım. İşletim sistemi kurulumu için ben pi için ubuntu sürümü olan raspbianı tercih ediyorum. https://www.raspberrypi.org/downloads/raspbian/ sayfasında bulunan raspbian işletim sistemi indirilmelidir. Daha sonrasında bilgisayarınızda bu işletim sistemini raspberry pi de kullanacağınız hafıza kartına boot'lamanız gerekmektedir. Bunun için macOSX'de  Etcher 'i kullanabilirsiniz. 

Raspberry Pi'nize SSH ile bağlanmak için IP adresini bilmeniz gerekmektedir. Bunun için direk olarak ekran bağlantısı yapmadıysanız nmap kullanarak IP adresine erişmeniz mümkündür. macOSX'e nmap kurulumu ile ilgili blog yazıma ulaşmak tıklayınız.
Raspbian işletim sistemine ait giriş bilgileri default olarak aşağıdaki gibidir.

user : pi
password : raspberry

SSH bağlantısı sırasında 'port 22: connection refused' gibi hata ile karşılaşıyorsanız, raspberry pi'nize klavye ve ekran bağlantılarını yaparak direk olarak içine girmeli ve /etc/ssh/sshd.config dosyasında düzenlemeler yapmalı ve SSH servisini yeniden başlatmanız gerekmektedir. 




Sistemimiz sağlıklı bir şekilde çalışmaya başladıktan sonra çalışmaya başlayabiliriz.







Raspberry Pi üzerinde analog giriş bulunmamaktadır. Bu yüzden analog çıkış veren sensörler kullanılamamaktadır. Onun yerine digital çıkış veren sensörler kullanılmalıdır.


Sensörün yapısını inceleyecek olursak 3 bacaklı ve 4 bacaklı DHT11 bulunmaktadır. Ben bu macerada  4 bacaklı  DHT11 sensörü kullandım.

Gerekli malzemeler:

  • Raspberry Pi
  • Breadboard
  • DHT11 Sıcaklık ve Nem Sensörü
  • 10kΩ direnç (1 adet)
  • Jumper kablo (3 adet dişi-erkek)
Proje için devreyi aşağıdaki şekildeki gibi kuruyoruz.
Sensörün 1. bacağını güç olacağımız 1.pine, 2. bacağını topraklama için kullacağımız 3.pine, 2. bacağı sensörden alacağımız sinyal için 4.pine bağlıyoruz ve 1. ve 2. pine 10ohm luk direnç bağlıyoruz. 3. bacağı kullanmıyoruz.


Ardından Python ile programlama yapmak için

git clone https://github.com/adafruit/Adafruit_Python_DHT.git
kütüphanesini indiriyoruz. Bunun için git'in  yüklü olması gerekmektedir. Eğer yüklü değilse;

sudo apt-get install git-core
sudo apt-get update
şeklinde yüklenebilir.
Daha sonrasında;
cd Adafruit_Python_DHT
komutu ile AdaFruit_Pyhton_DHT klasörüne girilir. Gerekli olan python kurulumu ve python kütüphanelerinin kurulumu için;

sudo apt-get install build-essential python-dev

sudo python setup.py install
komutları çalıştırılır.

/home/pi/Adafruit_Python_DHT/examples klasörü altında bulunan 'AdafruitDHT.py' nı kullanarak SSH ile bağlantı yaptığınız terminal ekranına sıcaklık ve nem ölçüm sonucunu alabilirsiniz.
Bu python dosyasının çalıştırılması için kullanacağınız parametreler bağlantınıza ve sensörünüze göre değişiklik gösterebilir.

python AdafruitDHT.py 11 14

AdafruitDHT.py DHT sensörünün 11, 22 ve 2302 modellerini destekleyecek şekilde tasarlanmıştır bu yüzden hangi model sensör kullanıldığı parametre olarak verilmektedir. 14 ise sensörününüz sinyali aldığı pinin numarasıdır.

İsterseniz mevcut kodu düzenlerek sürekli bir şekilde ölçüm görüntülemesi yapabilirsiniz. Burdan sonra yapacağınız geliştirmeler size kalmıştır. İstediğiniz gibi programala ve düzenleme yapabilirsiniz.


Bu yazımda sizlere Raspberry Pi ve DHT11 kullanarak ortamdaki sıcaklık ve nemi ölçerek terminal ekranında görüntülemekten bahsettim. Arduino ile LM35 sensörü ile benzer sonucu elde edebileceğiniz blog yazıma ulaşmak için tıklayınız.

Daha sonraki yazılarımda görüşmek üzere...

Kaynaklar :

http://www.circuitbasics.com/how-to-set-up-the-dht11-humidity-sensor-on-the-raspberry-pi/
http://maker.robotistan.com/raspberry-pi-ile-dht11-sicaklik-nem-sensoru-kullanimi/?utm_source=newsletter3&utm_medium=blog-resim&utm_campaign=devamini-oku

29 Aralık 2014 Pazartesi

Arduino LCD Ekran Parlaklık Ayarı

Merhaba Arkadaşlar

Bu yazımda sizlere Arduino LCD ekrandaki parlaklık ayarından bahsetmek istiyorum.

1 Arduino Uno
1 LCD 16x2 ekran
1 10K potansiyometre
Jumper kablolar

Yukarıdaki malzelemeleri kullanrak devremizi genellikle bu şekilde bağlıyoruz.





Ve kodumuz çalışıyor görüntüyü alıyoruz












 Ama içimizde küçük bir hayal kırıklığı olabiliyor çünkü ekranın görülmesi biraz zor ışığa doğru biraz hareket ettirmemiz gerekiyor.  2 tane daha jumper kablo kullanarak çok güzel bir parlaklık almamız mümkün :)

 LCD ekrandaki  en sondaki  "K" dan potansiyometrenin sağ ayağına yani "GND"  ve hemen yanındaki  "A" dan potansiyometrenin sol ayağına yani "5V" jumper kablolar ile bağlantı yaparsak ;
(Mor ile çizilen kısımlar)





Ve elde edeceğimiz sonuç :))





Arduino LCD ekran ile Akan Yazılar



Merhabalar

Bu yazımda sizlere Arduino ile LCD ekran üzerinde yazıların hareket edip aktığı bir projeden bahsetmek istiyorum. Aynı zamanda  2014 ün son günlerinizdeyiz ve 2015'e kısa bir zaman kaldı..
Şimdiden herkesin yeni yılını kutlar ve herkese sağlık, mutluluk, huzur ve başarı ( iş :D ) getirmesini dilerim. :)

Uygulamamız Arduino içerisinde yer alan "LiquidCrystal" kütüphanesi ile yapılıyor.
LCD ekranın bağlantılarının nasıl yapılacağı daha önceki yazımda mevcuttur. http://ydemiral.blogspot.com.tr/2014/12/arduino-ile-lcd-ekran-uygulamas.html

Kayan yazı uygulamamız için gerekli olan malzemelerimiz:
1 Arduino Uno
1 LCD 16x2 ekran
1 10K potansiyometre
Jumper kablolar

Kaynak Kodumuz :

#include <LiquidCrystal.h>

const int numRows=2;
const int numCols=16;


LiquidCrystal lcd(12,11,5,4,3,2);

void setup(){
  lcd.begin(numCols,numRows);
  

}
void loop(){
  
  slideThis("Merhabalar",200,1,0,000);//üst satır ters
  slideThis("Nice Musmutlu",200,1,1,000); //üst satır ters
  slideThis(":)) :)) :)) :)) :)) ",200,0,1,000);////alt satır düz
  slideThis("Gulucuklu Senelere.. :)",200,1,0,000); //üst satır ters
  slideThis("Yasemin Demiral",200,0,0,000); // üst satır düz
  
  

}
int delaying(int delayVal){
  delay(delayVal);
  return 1;
}
void slideThis(String s, int delayValue, int directionTowards, int whichRow, int duration){
  switch(directionTowards){
    case 0 :
      for(int ctr=s.length(); ctr>0; ctr--){
        lcd.setCursor(0,whichRow);
        lcd.print(s.substring(ctr));
        delay(delayValue);
        lcd.clear();
      }
      for(int i =0; i  <  16 ; i++){
      lcd.setCursor(i,whichRow);
      lcd.print(s);
      delaying(delayValue);
      lcd.clear();
      }
    break;
    case 1 :
      for(int i = 16 ; i>0 ; i--){
        lcd.setCursor(i,whichRow);
        lcd.print(s);
        delaying(delayValue);
        lcd.clear();
      }
      for(int ctr=0; ctr<s.length(); ctr++){
        lcd.setCursor(0,whichRow);
        lcd.print(s.substring(ctr));
        delay(delayValue);
        lcd.clear();
      }
    break;
  }
}


Ve elde edeceğimiz görüntüler :



















Herkese Nice Musmutlu Seneler :))

Yararlandığım Kaynaklar;
http://mcetintas.blogspot.com.tr/2014/12/arduino-lcd-kullanm-ile-kayan-yaz.html
http://www.thewebblog.net/icerikgoster.php?yaziID=78

Arduino ile LCD Ekran Uygulaması

Merhaba Arkadaşlar
Bu yazımda sizlere Arduino da LCD ekran kullanarak ekrana yazı yazmaktan bahsedeceğim.

Gerekli Malzemeler:

1 Arduino Uno
1 LCD 16x2 ekran
1 10K potansiyometre
Jumper kablolar

Devremiz : 


























Kaynak Kodumuz :

#include <LiquidCrystal.h>

// LCD için kullanılacak çıkışlar set edilir. LiquidCrystal(rs, enable, d4, d5, d6, d7)
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);

void setup() {
lcd.begin(16, 2); // LCD ekran arayüzü başlatır ve ekran boyutları (genişlik ve yükseklik) belirtir
lcd.print("merhaba");   // Ekrana Yazı Yazdırılır.
lcd.setCursor(0, 1);    // ekranın alt satırına yazı yazdırmak için cursor konumlandırılır.
lcd.print("hello");

}
void loop() {
}


Kodu yazıp Arduino kartımıza uygulamayı yüklediğimiz zaman elde edeceğimiz görüntü :






















Ekranın fotoğrafını çekerken flaş kullanmama rağmen karanlık ve rahatsız edici bir görüntü alıyoruz.
O yüzde eğer LCD ekrandaki  en sondaki  "K" dan potansiyometrenin sağ ayağına yani "GND"  ba ve hemen yanındaki  "A" dan potansiyometrenin sol ayağına yani "5V" jumper kablolar ile bağlantı yaparsak ;
(Mor ile çizilen kısımlar)

























Elde edeğimiz görüntü :























Sanırım şimdi daha iyi :)

Kurduğunuz düzeneği bozmadan bazı eklemeler yaparak yapabileceğiniz projeler :
http://ydemiral.blogspot.com.tr/2014/12/arduino-lm35-sensoru-ve-lcd-ekran-ile.html


Herkese iyi çalışmalar..

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 Basit Tek LED

Merhabalar

Bu yazımda Arduino'nun "Hello Word" u sayılabilecek bir çok kısa ve basit bir uygulamadan bahsetmek istiyorum.

13.pin üzerinden çalışacağız. LED'imizin uzun bacağını 13.pine kısa bacağını ise GND'ye bağlıyoruz.

Kaynak Kodumuz  :

int led = 13; // Ledimizi hangi pine bağlıyacağımızı burada belirtiyoruz.

void setup() {
   pinMode(led, OUTPUT); //Ledimizi bağladığımız pinin çıkış pini olacağını belirtiyoruz.
}

void loop() {
  digitalWrite(led, HIGH); //Yukarıda tanımaldığımız pinimize akım gönderiyoruz.
  delay(1000); //1000 milisaniye beklemesini söylüyorurz
  digitalWrite(led, LOW); //Tanımladığımız pine akım kesmesini söylüyoruz
  delay(1000); //1000 milisaniye beklemesini söylüyoruz
}




Çalıştığında nasıl birşey oluyor derseniz :




Herkese İyi Çalışmalar :))

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