哎,没搞懂 |
#include <IRremote.h> IRrecv irrecv(11);//定义的引脚 decode_results result; #define dir1pinA 4 #define dir2pinA 5 #define speedpinA 3 #define led 8 #define dir1pinB 6 #define dir2pinB 7 #define speedpinB 9 long forward_car=0x00FF18E7;//2 long stop_car=0x00FF38C7;//5 long houtui_car=0x00FF4A85;//8 long left_car=0x00FF10EF;//4 long right_car=0x00FF5AA5;//6 int speed; void setup() { Serial.begin(9600); Serial.println("ABCD"); irrecv.enableIRIn(); delay(100); pinMode(dir1pinA,OUTPUT); pinMode(dir2pinA,OUTPUT); pinMode(speedpinA,OUTPUT); pinMode(dir1pinB,OUTPUT); pinMode(dir2pinB,OUTPUT); pinMode(speedpinB,OUTPUT); pinMode(led,OUTPUT); speed=0; delay(5); } void loop() { speed=150; if (irrecv.decode(&result)) { Serial.println(result.value,HEX); if (result.value ==forward_car ) { forward(); } if (result.value ==stop_car) { allstop(); } if (result.value == houtui_car) { daotui(); } if (result.value == left_car ) { turnleft(); } if (result.value==right_car ) { turnright(); } delay(10); irrecv.resume(); } } void allstop() { digitalWrite(led,HIGH); delay(500); digitalWrite(led,LOW); digitalWrite(dir1pinA,HIGH); digitalWrite(dir2pinA,LOW); digitalWrite(dir1pinB,HIGH); digitalWrite(dir2pinB,LOW); analogWrite(speedpinA,0); analogWrite(speedpinB,0); delay(100); } //自定义函数 void forward() { digitalWrite(led,HIGH); delay(500); digitalWrite(led,LOW); digitalWrite(dir1pinA,HIGH); digitalWrite(dir2pinA,LOW); digitalWrite(dir1pinB,HIGH); digitalWrite(dir2pinB,LOW); analogWrite(speedpinA,speed); analogWrite(speedpinB,speed); delay(100); } void turnleft() { digitalWrite(led,HIGH); delay(500); digitalWrite(led,LOW); digitalWrite(dir1pinA,HIGH); digitalWrite(dir2pinA,LOW); digitalWrite(dir1pinB,HIGH); digitalWrite(dir1pinB,LOW); analogWrite(speedpinA,0); analogWrite(speedpinB,speed); delay(100); } void turnright() { digitalWrite(led,HIGH); delay(500); digitalWrite(led,LOW); digitalWrite(dir1pinA,HIGH); digitalWrite(dir2pinA,LOW); digitalWrite(dir1pinB,HIGH); digitalWrite(dir1pinB,LOW); analogWrite(speedpinA,speed); analogWrite(speedpinB,0); delay(100); } void daotui() { digitalWrite(led,HIGH); delay(500); digitalWrite(led,LOW); digitalWrite(dir1pinA,LOW); digitalWrite(dir2pinA,HIGH); digitalWrite(dir1pinB,LOW); digitalWrite(dir1pinB,HIGH); analogWrite(speedpinA,speed); analogWrite(speedpinB,speed); delay(100); } 为什么我的小车只有一侧动,另一侧没反应, |
有没有原理图呢 |
下载分不够,楼主能发给我一份资料吗?谢谢53896567@qq.com |