ARDUİNO KODLAR
#include <IRremote.h>
int RECV_PIN = 7;
int dirPin = 2;
int stepperPin = 3;
int en = 5;
int state = 0;
int oldSpeed = 0;
int rst = 4;
int toplayici=0;
int hiz=160;
IRrecv irrecv(RECV_PIN);
decode_results results;
#define CH1 0xFFA25D
#define CH 0xFF629D
#define CH2 0xFFE21D
#define PREV 0xFF22DD
#define NEXT 0xFF02FD
#define PLAYPAUSE 0xFFC23D
#define VOL1 0xFFE01F
#define VOL2 0xFFA857
#define EQ 0xFF906F
#define BUTON0 0xFF6897
#define BUTON100 0xFF9867
#define BUTON200 0xFFB04F
#define BUTON1 0xFF30CF
#define BUTON2 0xFF18E7
#define BUTON3 0xFF7A85
#define BUTON4 0xFF10EF
#define BUTON5 0xFF38C7
#define BUTON6 0xFF5AA5
#define BUTON7 0xFF42BD
#define BUTON8 0xFF4AB5
#define BUTON9 0xFF52AD
void setup() {
Serial.begin(9600);
irrecv.enableIRIn();
pinMode(dirPin, OUTPUT);
pinMode(stepperPin, OUTPUT);
pinMode(6, OUTPUT);
pinMode(en, OUTPUT); //enable, active low
pinMode(rst, OUTPUT); //rst, active low
delay(1000);
}
void loop(){ // some simple object avoidance
if (irrecv.decode( )) {
// toplayıcı
if (irrecv.decodedIRData.command == 67) {
Serial.println(irrecv.decodedIRData.command);
toplayici+=1;
if (toplayici%2==1)
digitalWrite(6,1);
else digitalWrite(6,0);
}
// hız +
if (irrecv.decodedIRData.command == 21) {
Serial.println(irrecv.decodedIRData.command);
if (hiz >5 && hiz<=160)
hiz-=5;
else hiz=hiz;
state = motors(state, hiz);
}
// hiz -
if (irrecv.decodedIRData.command == 7) {
Serial.println(irrecv.decodedIRData.command);
if (hiz >0 && hiz<=155)
hiz+=5;
else hiz=hiz;
state = motors(state, hiz);
}
if (irrecv.decodedIRData.command == 69) { // ileri
Serial.println(irrecv.decodedIRData.command);
state = motors(1, hiz);
}
if (irrecv.decodedIRData.command == 70) {state = motors(0, hiz); //dur
Serial.println(irrecv.decodedIRData.command);
}
if (irrecv.decodedIRData.command == 71) {state = motors(2, hiz); //
geri
Serial.println(irrecv.decodedIRData.command);
}
if (irrecv.decodedIRData.command == 68) {state = motors(4, hiz); //sağ
Serial.println(irrecv.decodedIRData.command);
}
if (irrecv.decodedIRData.command == 64) {state = motors(5, hiz); //sol
Serial.println(irrecv.decodedIRData.command);
}
Serial.println(irrecv.decodedIRData.command);
}
irrecv.resume();
if (toplayici==30000) toplayici=0;
}
int motors(int robot_direction, int robot_speed) // this determines how
many steps to what direction
{
switch(robot_direction){
case 0: // dur
if(state != robot_direction){
digitalWrite(en, HIGH);
robot_direction = state;
//Serial.println("GERİ");
}
break;
case 1: // ileri
digitalWrite(rst, LOW);
delayMicroseconds(5);
digitalWrite(rst, HIGH);
analogWrite(en, robot_speed);
oldSpeed = robot_speed;
step(2);
break;
case 2: // geri
digitalWrite(rst, LOW);
delayMicroseconds(5);
digitalWrite(rst, HIGH);
analogWrite(en, robot_speed);
oldSpeed = robot_speed;
break;
case 4: //sağ
digitalWrite(rst, LOW);
delayMicroseconds(5);
digitalWrite(rst, HIGH);
digitalWrite(en, LOW);
analogWrite(en, robot_speed);
oldSpeed = robot_speed;
step(1);
break;
case 5: //sol
digitalWrite(rst, LOW);
delayMicroseconds(5);
digitalWrite(rst, HIGH);
digitalWrite(en, LOW);
analogWrite(en, robot_speed);
oldSpeed = robot_speed;
step(3);
break;
}
return(robot_direction);
}
void step(int stepsit){
for(int i=0;i<stepsit;i++){
digitalWrite(stepperPin, HIGH);
delayMicroseconds(800);
digitalWrite(stepperPin, LOW);
delayMicroseconds(800);
}
}