Proje Kodları
#include "IRremote.h" // IR alıcı kütüphanesinin dahil edilmesi
#include <Servo.h> // Servo motorun kütüphanesinin dahil edilmesi
Servo sg90; //Servo motorun sg90 isimi ile tanıtılması
#define role 8 //role değişkenine 8 sayısının define ile atanması
#define mavi 4 //mavi değişkenine 4 sayısının define ile atanması
#define ldr 0 // ldr değişkenine 0 sayısının atanması
int i=0; // değişken tanımlama
int kontrol = 0; // değişken tanımlama
int servoderece=90; // değişken tanımlama
#define receiver 5 // receiver yani alıcı değişkenine 5 in tanımlanması
IRrecv irrecv(receiver); // create instance of 'irrecv'
decode_results results; // create instance of 'decode_results'
void setup() // Programın asıl döngününden önce çalışan Pinlerin giriş/çıkış durumlarının vb. tanıtıldığı yer
{
sg90.attach(9); // sg90 adlı tanıttığımı servo motorun 9 uncu pin e bağlandığını tanıtıyoruz
pinMode(8,OUTPUT); // 8 inci pini çıkış pini olarak ayarlıyoruz buradan 5V elektrik verilicek
Serial.begin(9600); // Seri haberleşmeyi başlattık
Serial.println("KUMANDA TEST "); //Seri haberleşme ekranına Kumanda Test yazdırdık
irrecv.enableIRIn(); //Alıcı yı başlattık
}
void loop() // Sürekli dönen Ana döngümüz bunun içindeki kodlar kontrol edilip şartları sağlandıktan sonra tekrar baştan aynı şartları sorgular.
{
if(analogRead(ldr)>750){ //ldr adlı değişkenden aldığımız değer 750 den büyükse mavi led yanıyor bu sayede ortam karanlıksa ışığımız yanıyor
digitalWrite(mavi,HIGH);
}
else{ // Ortam aydınlıksa mavi ledi kapatıyor.
digitalWrite(mavi,LOW);
}
if (irrecv.decode(&results)) // Kızıl ötesinden gelen sinyalimizin olup olmadığını kontrol eden if yapısı
{
irrecv.resume(); // Kızıl ötesinden veri almaya devam etmesini saglıyan fonksiyon
switch(results.value) // Kızıl ötesinden gelen sinyallerin switch yapısının şartı olarak atanması
{
case 0xFFC23D: Serial.println(" OYNAT/DURDUR"); // Oynat /Durdur Tuşuna basıldığında pervanenin açılıp kapanmasını sağlayan case yapısı
if(kontrol==0){
digitalWrite(8,HIGH);
kontrol=1;
}
else if(kontrol==1){
digitalWrite(8,LOW);
kontrol=0;
}
break;
case 0xFFE01F: Serial.println(" SES-"); // Ses – tuşuna basıldığında pervanenin 5 derece sola dönmesini sağlıyan case yapısı
if(servoderece>-1){
servoderece=servoderece-5; // Başta oluşturduğumuz servo derece adlı değişkenimizi 5 eksiltiyor
sg90.write(servoderece);
Serial.println(servoderece); //Servo motorun derecesini Seri haberleşme ekranına yazıyor
}
break;
case 0xFFA857: Serial.println(" SES+"); // Ses + tuşuna basıldığında yukarıdaki işlemi sağ tarafa dogru yapıyor.
if(servoderece<181){
servoderece=servoderece+5;
sg90.write(servoderece);
Serial.println(servoderece);
}
break;
case 0xFF906F: Serial.println(" EQ"); // EQ tuşuna basıldığında pervaneyi servo motorun derecesinden sağa doğru yani 180 dereceye doğru birer birer 25 ms beklemelerle arttıran case ve for yapısı
for(servoderece;servoderece<179;servoderece++){
sg90.write(servoderece);
Serial.println(servoderece);
delay(25); // 25 ms bekleme
}break;
case 0xFF6897: Serial.println("0");
for(servoderece;servoderece>0;servoderece--){ // 0 tuşuna basıldığında yukarıdaki işlemin tersi yönde aynı işlemi yapan case ve for yapısı
sg90.write(servoderece);
Serial.println(servoderece);
delay(25);
}break;
default:
}
}
Arduino Hakkındaki İlk Sayfaya Gitmek İçin Tıklayınız
}
Hiç yorum yok:
Yorum Gönder