欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136
標題:
arduino紅外小車在運行時只有一側的兩個輪子運行,且都是正轉,怎么調都不管用
[打印本頁]
作者:
一龍大師
時間:
2018-1-19 20:45
標題:
arduino紅外小車在運行時只有一側的兩個輪子運行,且都是正轉,怎么調都不管用
我在運行時只有一側的兩個輪子運行,且都是正轉,怎么調都不管用,求大神請教
#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
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);
}
void loop() {
if(irrecv.decode(&result))
{
Serial.println(result.value);
switch(result.value)
{
case 16738455: //按鍵0
forward();
break;
case 16724175://按鍵1
allstop();
break;
case 16718055://按鍵2
turnright();
break;
case 16743045://按鍵3
turnleft();
break;
case 16716015: //按鍵4
daotui();
break;
default:
delay(500);
}
irrecv.resume();//接受下一個值
}
}
void allstop()
{ digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
digitalWrite(dir1pinA,LOW);
digitalWrite(dir2pinA,LOW);
digitalWrite(dir1pinB,LOW);
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,80);
analogWrite(speedpinB,80);
delay(100);
}
void turnleft()
{
digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
digitalWrite(dir1pinA,LOW);
digitalWrite(dir2pinA,LOW);
digitalWrite(dir1pinB,HIGH);
digitalWrite(dir1pinB,LOW);
analogWrite(speedpinA,0);
analogWrite(speedpinB,100);
delay(100);
}
void turnright()
{
digitalWrite(led,HIGH);
delay(500);
digitalWrite(led,LOW);
digitalWrite(dir1pinA,HIGH);
digitalWrite(dir2pinA,LOW);
digitalWrite(dir1pinB,LOW);
digitalWrite(dir1pinB,LOW);
analogWrite(speedpinA,100);
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,100);
analogWrite(speedpinB,100);
delay(100);
}
復制代碼
作者:
shuyu
時間:
2018-1-20 17:22
自己做的,用了lm358,L298n,不知道你是不是自己焊接的,358連接的就是紅外傳感器,程序如下,希望對你有用。
#include <STC89C5xRC.H>
#define uint unsigned int
#define uchar unsigned char
/************定義358信號口引腳**************/
sbit left358=P1^0; //(注意P要大寫)
sbit right358=P1^1;
/***********定義車子前進后退引腳***********/
sbit leftgo=P0^0; //左邊輪子前進
sbit leftback=P0^1; //左邊輪子后退
sbit rightgo=P0^2; //右邊輪子前進
sbit rightback=P0^3; //右邊輪子后退
void delay_ms(uint xms)
{
uchar x=0,y=0;
for(x=xms;x>0;x--)
{
for(y=110;y>0;y--);
}
}
void forward() //車子前進
{
leftback=1; //1、0代表高低電平
leftgo=0;
rightback=1;
rightgo=0;
}
void turnright() //車子右轉
{
leftback=1;
leftgo=0;
rightback=0;
rightgo=1;
}
void turnleft() //車子左轉
{
leftback=0;
leftgo=1;
rightback=1;
rightgo=0;
}
void stop() //停車
{
leftback=1;
leftgo=1;
rightback=1;
rightgo=1;
}
void main() //主函數 (單片機所要執行的部分)
{
if(left358==1&&right358==1) //當左358為高電平且右358為高電平時,小車前進
{
forward();
delay_ms(50);
}
if(left358==0&&right358==0) //當左358為低電平且右358為低電平時,小車前進
{
forward();
delay_ms(50);
}
if(left358==1&&right358==0) //當左358為高電平且右358為低電平時,小車右轉
{
turnright();
delay_ms(50);
}
if(left358==0&&right358==1) //當左358為低電平且右358為高電平時,小車左轉
{
turnleft();
delay_ms(50);
}
}
作者:
煙花笑
時間:
2018-1-22 08:41
注意電機驅動板接線
歡迎光臨 (http://www.raoushi.com/bbs/)
Powered by Discuz! X3.1