Bu yazımızda HC-SR501 kızılötesi hareket sensöründen bahsedeceğiz. Ayrıca daha sonra Arduino ile beraber HC-SR501 kızılötesi hareket sensörünü kullanarak küçük bir uygulama yapacağız.
HC-SR501 kızılötesi hareket sensörleri bir ortamda oluşan canlı hareketini algılamak için kullanılan sensörlerdir. Düşük maliyetli, düşük güç tüketimli ve kullanılması kolay bir sensördür. Herhangi bir mikrodenetleyiciye bağlı olmadan kendi başlarına çalışabilecekleri gibi Arduino başta olmak üzere bir çok mikrodenetleyeci platformu ile beraber kullanılabilirdirler.
PIR ( Passive InfraRed Sensor ) sensörleri yayılan kızılaltı (IR) ışın değişimini tespit etmek için bir Fresnel lens ve IR’ye duyarlı sensör yardımıyla, 6 metreye kadar mesafedeki hareketleri algılayabilir. Dijital çıkışlı olan bu modül, ortamda hareket algılamadığı zaman lojik 0, hareket algıladığı zaman ise lojik 1 çıkışı vermektedir.
Sensör üzerinde Sx ve Tx olmak üzere iki adet potansiyometre bulunmaktadır. Sx potansiyometresi (hassasiyet) sensörün görme mesafesini 3 ile 5 metre arasında değiştirmektedir. Tx potu (gecikme) ise sensör gördükten sonra ne kadar süre daha çıkış pininden lojik 1(3.3V) çıkışını vereceğini ayarlamaktadır.
Sensörümüzün üzerinde üç adet pin yer almaktadır. Bu pinlere üstten baktığımızda en soldaki pin GND (toprak), en sağdaki pin +VCC, ortadaki pin de DATA çıkışıdır. Hareket varken DATA çıkışı '1', yokken '0' olmaktadır. HC-SR501 kızılötesi hareket sensörü hakkında yeterli bilgiyi edindiğimize göre uygulamamıza geçebiliriz.
Uygulamamız için gerekli malzemeler :
. 1 adet Arduino Uno
. 1 adet HC-SR501 kızılötesi hareket sensörü
. Breadboard
. 1 adet led
. 1 adet 220 ohm direnç
. 3 adet dişi-erkek jumper kablo
. 2 adet erkek-erkek jumper kablo
Şekildeki gibi devremizin bağlantılarını oluşturduktan sonra kodlama işlemine geçebiliriz. Arduinomuzu bilgisayarımıza bağladıktan sonra uygulamamıza ait kodları derleyip, yüklüyoruz.
UYGULAMANIN KODLARI
int hareket;
void setup() {
pinMode(2, INPUT);
pinMode(3, OUTPUT);
Serial.begin(9600);
}
void loop() {
hareket=digitalRead(2);
Serial.println(hareket);
if (hareket == HIGH){
digitalWrite(3, 1);
}
else{
digitalWrite(3, 0);
}
}
Arduino ile Robotik Projeler
manşet
Arduino ile HC-SR04 Ultrasonik Mesafe Sensörü Kullanımı
Bu uygulamamızda
Arduino ile beraber HC-SR04 mesafe sensoru kullanarak led yakacağız. Öncelikle
HC-SR04 mesafe sensörünün çalışma prensibinden bahsedelim.
Ultrasonik sensörümüz insan kulağının duyamayacağı 40Khz frekansında ses dalgası üretmektedir. Bu ses dalgaları öncelikle sensörden çıkar ve karşılaştığı engele çarptıktan sonra geri yansır. Sensör bu dalganın gidiş dönüş süresini kullanarak mesafeyi belirlememize yardımcı olmaktadır
Ultrasonik sensörümüz insan kulağının duyamayacağı 40Khz frekansında ses dalgası üretmektedir. Bu ses dalgaları öncelikle sensörden çıkar ve karşılaştığı engele çarptıktan sonra geri yansır. Sensör bu dalganın gidiş dönüş süresini kullanarak mesafeyi belirlememize yardımcı olmaktadır
Uygulamamız için gerekli olan malzemeler
- 1 adet arduino uno
- Breadboard
- 1 adet HC-SR04 ultrasonic sensör
- 1 adet led
- 1 adet 220 ohm direnç
- Yeteri kadar jumper kablo
Sensörümüzün üzerinde dört adet pin bulunmaktadır. Bunlar Vcc, Trig, Echo ve GND 'dir. Vcc, 5volt girişi, GND toprak, Trig dalganın çıkış , Echo ise yansıyan dalganın döndüğünü arduinomuza bildiren pinidir. Şekildeki bağlantılarımızı yaptıktan sonra aşağıdaki kodlara geçebiliriz. Projemizde sensörümüz 50 cm ve daha yakın durumlarda ledi yakmata diğer durumlarda ise ledi söndürmektedir.
PROGRAMIN KODLARI
int trigPin=2;
int echoPin=3;
int led=7;
void setup() {
pinMode(trigPin, OUTPUT);
pinMode(echoPin, INPUT);
pinMode(led,OUTPUT);
}
void loop() {
int sure, uzaklik;
digitalWrite(trigPin, HIGH);
delayMicroseconds(1000);
digitalWrite(trigPin, LOW);
sure = pulseIn(echoPin, HIGH);
uzaklik = (sure/58);
if (uzaklik<50)
{digitalWrite(led,HIGH);}
else
{digitalWrite(led,LOW);}
delay(1000) ;
}
Resim yazısı ekle |
ARDUİNO İLE KARA ŞİMŞEK UYGULAMASI
Arduino ile en temel proje olan led yakma projesini öğrendikten sonra artık kara şimşek uygulamasını öğrenebiliriz. Proje başlangıçta biraz karmaşık görünsede sırasıyla yanıp sönen ledlerden oluşan basit bir uygulama aslında.
Bu uygulama için gerekli malzemelerimiz :. 1 adet Arduino Uno
. 6 adet LED
. 6 adet 220 Ohm Direnç
. Breadboard
. 7 adet erkek-erkek jumper kablo
Şekildeki gibi devremizin bağlantılarını oluşturduktan sonra kodlama işlemine geçebiliriz. Arduinomuzu bilgisayarımıza bağladıktan sonra kodlarımızı derleyip, yüklüyoruz.
UYGULAMANIN KODLARI
int led[]={8,9,10,11,12,13}; // Kullandığımız pinlerden bir led dizisi tanımlıyoruz.
int bekleme_suresi=30; // Buradan ledlerin bekleme süresini değiştirebilirsiniz.
void setup() { // Ana fonksiyonumuzu tanımlıyoruz.
for(int i=0 ;i<6 ;i++){
pinMode(led[i],OUTPUT); // Pinlerimizi çıkış olarak tanımlıyoruz.
}
}
void loop() {
// Döngü fonksiyonumuzu tanımlıyoruz.
for (int i=0;i<6;i++){
digitalWrite(led[i],HIGH); // İlk ledi yakıyoruz.
delay(bekleme_suresi); // Bekliyoruz.
digitalWrite(led[i-1],LOW); // Yanındakini yakıyoruz.
delay(bekleme_suresi); // Bekliyoruz.
digitalWrite(led[i+1],HIGH); // İlk yaktığımızı söndürüyoruz.
delay(bekleme_suresi); // Bekliyoruz.
}
//Bu kısımda ise az önceki işlemi tersten uyguluyoruz.
for (int i=5 ;i>=0 ;i--){
digitalWrite(led[i],HIGH);
delay(bekleme_suresi);
digitalWrite(led[i+1],LOW);
delay(bekleme_suresi);
digitalWrite(led[i-1],HIGH);
delay(bekleme_suresi);
}
}
Arduino İle 7 Segment Display Kullanımı
Öncelikle 7 segment display nedir?
7 segment display ledlerden oluşan ortak anot veya katot uclarına sahip elemanlardır.0-9 arası sayısal ifadeleri göstermek için kullanılır.Genel olarak dijital saat, takvim vs sayıcı devrelerinde sıklıkla kullanılmaktadır.
ORTAK KATOT - ORTAK ANOT |
Yukarıda
ki resimde 7-segment displayin iç yapısında ki led bağlantılarının verildiğini
görüyoruz . Eğer ortak uç katot ise gnd , ortak uç anot ise 5V girişine
bağlıyoruz.Ben burada ortak uç katot kullanacağım. Uygulama için gerekli olan malzemelerimiz
- 1 adet arduino uno
- Breadboard
- 1 adet 7 segment display
- 2 adet 220 ohm direnç
- Yeteri kadar jumper kablo
Uygulamamızda 0 ile 9 arasındaki çift sayıları gösteren devre yapacağız. Şekildeki bağlantılarımızı yapıp kod kısmına geçebiliriz.
PROGRAMIN KODLARI
int a = 1;
int b = 2;
int c = 3;
int d = 4;
int e = 5;
int f = 6;
int g = 7;
void setup()
{
pinMode(a, OUTPUT);
pinMode(b, OUTPUT);
pinMode(c, OUTPUT);
pinMode(d, OUTPUT);
pinMode(e, OUTPUT);
pinMode(f, OUTPUT);
pinMode(g, OUTPUT);
}
void rakamyaz(int rakam)
{
switch(rakam)
{
case 0 :
digitalWrite(a,HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,LOW);
break;
case 2:
digitalWrite(a, HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,LOW);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,LOW);
digitalWrite(g,HIGH);
break;
case 4:
digitalWrite(a, LOW);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,LOW);
digitalWrite(e,LOW);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 6:
digitalWrite(a, HIGH);
digitalWrite(b,LOW);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
case 8:
digitalWrite(a, HIGH);
digitalWrite(b,HIGH);
digitalWrite(c,HIGH);
digitalWrite(d,HIGH);
digitalWrite(e,HIGH);
digitalWrite(f,HIGH);
digitalWrite(g,HIGH);
break;
}
}
void loop(){
for(int i=0; i<=9;i++){
rakamyaz(i);
delay(1000);
}
}
Arduino İle RGB Led Kullanımı
Bu projemizde RGB Led kullanımını gerçekleştireceğiz. Öncelikle RGB Led nedir? diyerek başlayalım.
Rgb Led , ana renklerde ki yani kırmızı , yeşil ve mavi ledlerin tek bir led üzerinde toplanmış halidir.Bu ana renkler ile ara renkleri oluşturmak mümkündür.
Uygulama için gerekli olan malzemelerimiz
- 1 adet arduino uno
- Breadboard
- 1 adet RGBLed
- 3 adet 220 ohm direnc
- 4 adet erkek-erkek jumper kablo
Öncelikle şekildeki gibi devre bağlantılarımızı yapalım.Burada dikkat etmemiz gereken ledimizdeki uzun bacağı 5v çıkışına bağlamak olacaktır. Devremiz hazır ise arduinomuzu bilgisayarımıza bağlayıp kodlarımızı yüklüyoruz.
PROGRAMIN KODLARI
int ledcolor = 0;
int a = 500; //renklerin yanma sürelerini ayarlıyoruz
int kirmizi = 11; //kırmızı pin
int yesil = 12; //yeşil pin
int mavi = 13; //mavi pin
void setup() { //çıkış pinlerimizi set ediyoruz.
pinMode(kirmizi, OUTPUT);
pinMode(yesil, OUTPUT);
pinMode(mavi, OUTPUT);
}
void loop() {
int ledcolor = random(6); //0 ile 5 arasında rasgele bir sayı seçiliyor.
switch (ledcolor) {
case 0: // sayı 0 ise kırmızı
analogWrite(kirmizi, LOW);
delay(a);
analogWrite(kirmizi, HIGH);
break;
case 1: //sayı 1 ise yeşil
digitalWrite(yesil, LOW);
delay(a);
digitalWrite(yesil, HIGH);
break;
case 2: //sayı 2 ise mavi
digitalWrite(mavi, LOW);
delay(a);
digitalWrite(mavi, HIGH);
break;
case 3: //3 ise sarı (kırmızı ve yeşil)
analogWrite(kirmizi, HIGH);
digitalWrite(yesil, LOW);
delay(a);
analogWrite(kirmizi, HIGH);
digitalWrite(yesil, HIGH);
break;
case 4: //4 ise cyan, (kırmızı ve mavi)
analogWrite(kirmizi, HIGH);
digitalWrite(mavi, LOW);
delay(a);
analogWrite(kirmizi, HIGH);
digitalWrite(mavi, HIGH);
break;
case 5: //5 ise beyaz, (kırmızı , yeşil ve mavi)
analogWrite(kirmizi, HIGH);
digitalWrite(yesil, LOW);
digitalWrite(mavi, LOW);
delay(a);
analogWrite(kirmizi, HIGH);
digitalWrite(yesil, HIGH);
digitalWrite(mavi, HIGH);
break;
}
}
Kaydol:
Kayıtlar (Atom)