![]() |
發布時間: 2016-6-4 10:22
正文摘要:里面包含以下3個程序 步進電機 花式運動 紅外遙控 步進電機的驅動需要LN298步進電機驅動器 智能小車的花式運動 紅外遙控智能小車做相對應的運動 下面是紅外遙控的代碼: #include <IRremote.h ... |
哎,沒搞懂 |
#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 |