Robotik ve Kodlama Dersi-Uygulama Çalışmaları
1-Arduino ile hareket sensörü (PIR Sensörü) Uygulaması
Arduino İle Hareket Sensörü Diğer Adıyla PIR (Passive Infrared Sensör) Kullanımı.
PIR ismi Passive Infra-Red kelimelerinin baş harflerinden gelmektedir. Bu da bu sensörün kızılötesi dalgalarla çalıştığı anlamına gelir. Hareket sensörü ortamdaki sıcaklık ve kızılötesi dalga değişimlerini algılamaya yarayan sensörlerdir. Yapılarında bir fresnel lens bulunur. Bu lens sayesinde ortamdaki nesnelerden gelen ışınlar sensörün odaklanmasını sağlar. Ortamda bir dalga değişimi olduğunda sensör algılama işlemi gerçekleştirir.
Tinkercad Devresinin Ekran Görüntüsü:
Uygulamanın Kodları:
#define yesil 7
#define kirmizi 8
#define pirsensorumuz 3
int hareket;
void setup()
{
pinMode(pirsensorumuz, INPUT);
pinMode(yesil, OUTPUT);
pinMode(kirmizi, OUTPUT);
}
void loop()
{
hareket=digitalRead(pirsensorumuz); // pir sensöründen verileri oku ve hareket isimli değişkene aktar
if (hareket == 1) // hareket algılandıysa
{
digitalWrite(kirmizi, 1);
digitalWrite(yesil,0);
}
else
{
digitalWrite(yesil, 1);
digitalWrite(kirmizi, 0);
}
}
2: Arduino ile Gaz Sensörü Uygulaması.
MQ serisi gaz sensörleri, pratik kullanımları ve uygun fiyatları sebebiyle Arduino ve diğer kontrolcülerle beraber uygulamalarda sıklıkla kullanılmaktadır.
Yapılarının içerisinde gazı algılamaya duyarlı bir tel, ısıtıcı eleman ve bir yük direnci bulunmaktadır. Çalışma prensipleri genel olarak aynıdır. Isıtıcının etkisiyle ısınan metan gazı sensördeki telin üzerinden geçerek telin direncinin değişmesine etki eder. Analog direnç değerini, 0 ile 5V aralığına eş bir değere çevirmek için bir yük direnci kullanılır. Yük direnci pini, Arduino’nun analog giriş pinlerinden birine bağlanarak Arduino’ya bilgi aktarımı sağlanır.
Ayrıca MQ serisi gaz sensörlerinin yapılarında bir dijital çıkış da bulunmaktadır. Gerilim belli bir seviyeye ulaştıktan sonra bu çıkış aktif duruma geçer. Bu seviyeyi sensör modülünde bulunan trimpot ile kontrol etmek mümkündür.
MQ-3 Gaz Sensörü Kullanımı
MQ-3 sensörü 0.04mg/L ve 4mg/L arasında alkol algılamaya yarayan sensördür. Bu sensör ile Alkolmetre uygulamaları yapılmaktadır.
Tinkercad Devresinin Ekran Görüntüsü:
Uygulamanın Kodları:
/*Gaz sensor örneği*/
int mq3 = A0; //connect Gas sensor to analogic pin A0
int buzzer = 7;//connect buzzer to digital pin 7
int red_led = 8;//connect red led to digital pin 8
int green_led = 9;//connect green led to digital pin 9
int threshold =300; //change the threshold value for your use
void setup(){
Serial.begin(9600); //initialize serial comunication at 9600 bps
pinMode(red_led, OUTPUT);//define red_led as output
pinMode(green_led, OUTPUT); //define green_led as output
pinMode(buzzer, OUTPUT); //define buzzer as output
digitalWrite(red_led, LOW);//red_led off
digitalWrite(green_led, LOW);//green_led off
}
void loop()
{
int mq3 = analogRead(mq3);//read sensor value
Serial.println(mq3);//print on serial monitor the sensor value
if(mq3>=threshold){//check if it is exceeded the threshold value
digitalWrite(red_led,HIGH);//red_led on
digitalWrite(green_led,LOW);//green_led off
tone(buzzer,200);//play buzzer
Serial.println(“Dikkat.Eşik Aşıldı!!!”);//print on serial monitor the overcoming threshold notice
delay(1000);
}
else{
digitalWrite(red_led,LOW);//red_led off
digitalWrite(green_led,HIGH);//green_red on
noTone(buzzer);//no play buzzer
}
delay(100); //slow down the output
}
3: Arduino ile Servo Motor Uygulaması.
Servo motorlar 0 ile 180 derece arasında bir açıda döndürebildiğimiz elektronik bileşenlerdir. İhtiyacımız olan güce göre çeşitli büyüklükte ve plastik ve metal dişlilere sahip modelleri bulunmaktadır. Burada Servo motorları Arduino ile nasıl bağlantı sağlayacağımızı ve istediğimiz açı değerinde servo motoru nasıl çevireceğimizi öğreneceğiz.
Tinkercad Devresinin Ekran Görüntüsü:
Uygulamanın Kodları:
#include <Servo.h>
Servo motorumuz; // motorumuz isminde bir servo motor tanımladık
void setup() {
motorumuz.attach(3);
}
void loop()
{
motorumuz.write(180); // 180 dereceye gel
delay(3000); // 3 saniye bekle
motorumuz.write(90); // 90 dereceye gel
delay(3000);
motorumuz.write(0);
delay(3000);
}
4- Servo Motor Pot ile Kontrolü:
Uygulamanın Kodları:
#include <Servo.h> //servo motorun çalışması için kütüphane
#define pot_pin A5 //Pot_pin A5’e define komutu ile sabitledim.
Servo servomotor; // servoyu aktif edecek tanımlama
int pot_deger, yeni_deger; //iki yeni değişken oluşturdum.
void setup(){
Serial.begin(9600);
servomotor.attach(10); //servoyu çalıştıracağımız giriş seçildi: 10 nolu dijital giriş.
servomotor.write(0);
}
void loop() {
pot_deger=analogRead(pot_pin); //
Serial.print(“Potansiyometreden okunan deger: “); //
Serial.println(pot_deger);
int yeni_deger = map(pot_deger, 0, 1023, 0, 180); // 0-180 derece kontrol değeri oluşturdum. servomotor.write(yeni_deger); //Oluşan değeri servoya ilettim.
Serial.print(“Aci degeri: “);
Serial.println (yeni_deger); delay(15); }
5- DC Motor Kullanımı-Butonlu
int buton1=0;
int buton2=0;
int buton3=0;
int sayac=0;
void setup()
{
pinMode(13, INPUT);
pinMode(12, INPUT);
pinMode(11, INPUT);
pinMode(5, OUTPUT);
pinMode(6, OUTPUT);
}
void ileri()
{
digitalWrite(5, 0);
digitalWrite(6, 1);
}
void geri()
{
digitalWrite(5, 1);
digitalWrite(6, 0);
}
void dur()
{
digitalWrite(5, 0);
digitalWrite(6, 0);
}
void loop()
{
buton1=digitalRead(13);
buton2=digitalRead(12);
buton3=digitalRead(11);
if (buton1==1)
{
sayac=1;
}
if (buton2==1)
{
sayac=2;
}
if (buton3==1)
{
sayac=3;
}
if(sayac==1) ileri();
if(sayac==2) geri();
if(sayac==3) dur();
delay(10);
}