#include <IRremote.h> // kütüphane yükledik
#include <Servo.h> // kütüphane yükledik
Servo mtrSrvo; //değişken tanımladık
IRrecv receiver(2); // 2 nolu pini kızılötesi olarak bağladık
byte cihaz=0; //değişken tanımladık ve değerine 0 verdik
byte led1pwm=0; //değişken tanımladık ve değerine 0 verdik
byte servopwm=0; //değişken tanımladık ve değerine 0 verdik
byte ledpwm=0; //değişken tanımladık ve değerine 0 verdik
byte sayac=0; //değişken tanımladık ve değerine 0 verdik
void setup()
{
receiver.enableIRIn(); //kızılötesini aktif yaptık
mtrSrvo.attach(5); //Servo 5 nolu pine bağlandı
mtrSrvo.write(0); //servo 0 derecede ayarlandı
pinMode(3, OUTPUT); //3 nolu pin çıkış olarak ayarlandı
pinMode(4, OUTPUT); //4 nolu pin çıkış olarak ayarlandı
}
void loop() {
if (receiver.decode()) //pine sinyal gelmiş mi?
{
cihaz=decoder(); //gelen sinyali cihaz değişkenine ata
if(receiver.decodedIRData.command==2) //cihazdan gelen 2 ise aşağıdakileri yap
{
if(cihaz==3)step(1,10,5); //gelen kod 3 ise step fonksiyounu yon 1 adım 10 ve gecikme 5 olacak şekilde çalıştır
if(cihaz==5){if(servopwm<180)mtrSrvo.write(servopwm+=90);} //5 kodu olur ve servopwm 180 den küçük ise servoyu 10 arttır
if(cihaz==6){if(ledpwm<250)analogWrite(cihaz,ledpwm+=50);} //6 kodu olur ve servopwm 180 den küçük ise servoyu 10 arttır
}
if(receiver.decodedIRData.command==152) //IR den 152 kodu alırsak
{
if(cihaz==3)step(0,10,5); //cihaz değişkeni 3 e eşit olursa step fonksiyon değerlerini 0, 10 ve 5 yap
if(cihaz==5){if(servopwm>0)mtrSrvo.write(servopwm-=10);} // cihaz 5 ise ve servopwm 0 dan büyükse servoyu 10 eksilt
if(cihaz==6){if(ledpwm>=50)analogWrite(cihaz,ledpwm-=50);} // cihaz 6 ve ledpwm50 den büyük eşit ise
}
receiver.resume();
}
}
void step(boolean yon, byte adim, byte gecikme) //step fonksiyonu
{
if (yon)
{
digitalWrite(3, HIGH);
if (sayac < 200)
{
for (int i = 0; i < adim; i++)
{
digitalWrite(4, HIGH);
delay(gecikme);
digitalWrite(4, LOW);
delay(gecikme);
}
sayac += 10;
}
}
if (!yon)
{
digitalWrite(3, LOW);
if (sayac >=10)
{
for (int i = 0; i<adim; i++)
{
digitalWrite(4, HIGH);
delay(gecikme);
digitalWrite(4, LOW);
delay(gecikme);
}
sayac -= 10;
}
}
}
byte decoder()
{
if(receiver.decodedIRData.command==48) return 3;
if(receiver.decodedIRData.command==24) return 5;
if(receiver.decodedIRData.command==122) return 6;
}
/*
#include <IRremote.h> // kütüphane yükledik
IRrecv receiver(3); // 3 nolu pini kızılötesi olarak bağladık
byte ledSec=0; //değişken tanımladık
byte led1pwm=250; //led1 pwm değerini parlaklık 250 olarak ayarladık
byte led2pwm=250; //led2 pwm değerini parlaklık 250 olarak ayarladık
byte led3pwm=250; //led3 pwm değerini parlaklık 250 olarak ayarladık
void setup() {
receiver.enableIRIn(); //kızılötesini aktif yaptık
Serial.begin(9600);
pwmYaz(); //fonksiyon
}
void loop() {
if (receiver.decode()) //pine sinyal gelmiş mi?
{
byte kod=receiver.decodedIRData.command; //kumanda basılan kodu al ve byt kod a ata
Serial.println(kod); //gelen bilgiyi okuyor (kumandadan)
if (kod==48)ledSec=9; //1 nolu kumanda düğmesine basılırsa
if (kod==24)ledSec=10; //2 nolu kumanda düğmesine basılırsa
if (kod==122)ledSec=6; //3 nolu kumanda düğmesine basılırsa
if (kod==2) //arttırma kodu
{
if (ledSec==9){if (led1pwm<250)led1pwm=led1pwm+10;}
if (ledSec==10){if (led2pwm<250)led2pwm=led2pwm+10;}
if (ledSec==6){if (led3pwm<250)led3pwm=led3pwm+10;}
pwmYaz();
}
if (kod==152) // eksiltme kodu
{
if (ledSec==9){if (led1pwm>=10)led1pwm=led1pwm-10;}
if (ledSec==10){if (led2pwm>=10)led2pwm=led2pwm-10;}
if (ledSec==6){if (led3pwm>=10)led3pwm=led3pwm-10;}
pwmYaz();
}
receiver.resume();
}
}
void pwmYaz()
{
analogWrite(9,led1pwm);
analogWrite(10,led2pwm);
analogWrite(6,led3pwm);
}
*/