随便按了一个键后,你会看到在编程软件arduino IDE里,串口监视器(在工具一栏)会有一大串数字,那是脉冲,一会儿高一会儿低。
知道了脉冲我们怎么控制马达呢?
还记得程序中将脉冲数据储存进数组吗?
那么我们可以在调用函数里,加入马达。
#define IRpin_PIN PIND
#define IRpin 2
#define MAXPULSE 65000
#define RESOLUTION 20
uint16_t pulses[100][2];
uint8_t currentpulse=0;
int madaPin=13;
int zhwanPin=12;
void setup(void) {
Serial.begin(9600);
Serial.println("Ready to decode IR!");
pinMode(madaPin,OUTPUT);
pinMode(zhwanPin,OUTPUT);
}
void loop(void) {
uint16_t highpulse,lowpulse;
highpulse = lowpulse = 0;
while(IRpin_PIN & (1 << IRpin)){
highpulse++;
delayMicroseconds(20);
if((highpulse >= MAXPULSE) && (currentpulse != 0)) {
printpulses();
currentpulse=0;
return;
}
}
pulses[currentpulse][0] = highpulse;
while(! (IRpin_PIN & _BV(IRpin))){
lowpulse++;
delayMicroseconds(20);
if((lowpulse >= MAXPULSE) && (currentpulse != 0)){
printpulses();
currentpulse=0;
return;
}
}
pulses[currentpulse][1] = lowpulse;
currentpulse++;
}
void printpulses(void){
Serial.println("nrnrReceiced: nrOFFtON");
for (uint8_t i=0; i< currentpulse;i++){
Serial.print(pulses
[0] * RESOLUTION,DEC);
Serial.println(" usec,");
Serial.print(pulses[1] * RESOLUTION,DEC);
Serial.println(" usec");
}
digitalWrite(madaPin,HIGH);
delay(3000);
digitalWrite(madaPin,LOW);
}
下载!
不过arduino接口可能电压不够,最好有个升压模块。马达动力才够。
这个程序只写了直走的,那么转弯呢,大家可以自己发挥想象,做出一个完美的遥控车。谢谢大家!
最后欣赏下作品:
也希望大家回帖告诉我一下缺点,在程序上的或结构上的,没关系,请指出。
比如说我
电源是拖线的,最好带充电宝等等,谢谢支持。