1
19
20#include <IRremote.h>
21int RECV_PIN = 7;
22IRrecv irrecv(RECV_PIN);
23decode_results results;
24#define REM_FW 0x00FF629D
25#define REM_RV 0x00FFA857
26#define REM_LF 0x00FF22DD
27#define REM_RT 0x00FFC23D
28#define REM_STOP 0x00FF02FD
29const int LFT_EN=5;
30const int RGT_EN=9;
31const int LEFT_MC1F=12;
32const int LEFT_MC2B=6;
33const int RIGHT_MC1F=2;
34const int RIGHT_MC2B=3;
35byte LPWM_val = 225;
36byte RPWM_val = 225;
37void M_Control_IO_config(void)
38{
39 pinMode(LEFT_MC1F,OUTPUT);
40 pinMode(LEFT_MC2B,OUTPUT);
41 pinMode(RIGHT_MC1F,OUTPUT);
42 pinMode(RIGHT_MC2B,OUTPUT);
43 pinMode(LFT_EN,OUTPUT);
44 pinMode(RGT_EN,OUTPUT);
45}
46void Set_Speed(byte Left,byte Right)
47{
48 analogWrite(LFT_EN,Left);
49 analogWrite(RGT_EN,Right);
50}
51void forward()
52 {
53 digitalWrite(RIGHT_MC1F,LOW);
54 digitalWrite(RIGHT_MC2B,HIGH);
55 digitalWrite(LEFT_MC1F,LOW);
56 digitalWrite(LEFT_MC2B,HIGH);
57 }
58void turnRight()
59 {
60 digitalWrite(RIGHT_MC1F,LOW);
61 digitalWrite(RIGHT_MC2B,HIGH);
62 digitalWrite(LEFT_MC1F,HIGH);
63 digitalWrite(LEFT_MC2B,LOW);
64 }
65void turnLeft()
66 {
67 digitalWrite(RIGHT_MC1F,HIGH);
68 digitalWrite(RIGHT_MC2B,LOW);
69 digitalWrite(LEFT_MC1F,LOW);
70 digitalWrite(LEFT_MC2B,HIGH);
71 }
72void stopp()
73 {
74 digitalWrite(RIGHT_MC1F,HIGH);
75 digitalWrite(RIGHT_MC2B,HIGH);
76 digitalWrite(LEFT_MC1F,HIGH);
77 digitalWrite(LEFT_MC2B,HIGH);
78 }
79void reverse()
80 {
81 digitalWrite(RIGHT_MC1F,HIGH);
82 digitalWrite(RIGHT_MC2B,LOW);
83 digitalWrite(LEFT_MC1F,HIGH);
84 digitalWrite(LEFT_MC2B,LOW);
85 }
86void IR_Control(void)
87{
88 unsigned long Key;
89 if(irrecv.decode(&results))
90 {
91 Key = results.value;
92 switch(Key)
93 {
94 case REM_FW:forward();
95 break;
96 case REM_RV:reverse();
97 break;
98 case REM_LF:turnLeft();
99 break;
100 case REM_RT:turnRight();
101 break;
102 case REM_STOP:stopp();
103 break;
104 default:
105 break;
106 }
107 irrecv.resume();
108 }
109
110}
111void setup()
112{
113 M_Control_IO_config();
114 Set_Speed(LPWM_val,RPWM_val);
115 irrecv.enableIRIn();
116 Serial.begin(9600);
117 stopp();
118}
119
120void loop() {
121 IR_Control();
122
123}
biotronicmaker
3 months ago
Awesome work!