1024手机基地看电影,午夜福利视频导航,国产精品福利在线一区,亚洲欧美日韩另类成人,在线观看午夜日本理论片,成年超爽免费网站,国产精品成人免费,精品动作一级毛片,成人免费观看网站,97精品伊人久久大香蕉
標題:
arduino小車控制程序,包含與樹莓派通信程序
[打印本頁]
作者:
16271271
時間:
2018-10-2 19:31
標題:
arduino小車控制程序,包含與樹莓派通信程序
小車控制程序,包含與樹莓派通信程序
0.png
(7.02 KB, 下載次數: 15)
下載附件
2018-10-3 00:38 上傳
單片機源程序如下:
int PWMA=10;
int IN1 = 10;
int IN2 = 9;
int PWMB = 6;
int IN3 = 6;
int IN4 = 5;
const int TrigPin = 2;
const int EchoPin = 3;
float distance;
#include <Servo.h> // 聲明調用Servo.h庫
Servo myservo; // 創建一個舵機對象
int pos = 0; // 變量pos用來存儲舵機位置
String comdata = "";
int i;
void setup()
{
pinMode(PWMA, OUTPUT); //PWM
pinMode(IN1, OUTPUT);
pinMode(IN2, OUTPUT);
pinMode(PWMB, OUTPUT); //PWM
pinMode(IN3, OUTPUT);
pinMode(IN4, OUTPUT);
// 初始化串口通信及連接SR04的引腳
Serial.begin(9600);
pinMode(TrigPin, OUTPUT);
// 要檢測引腳上輸入的脈沖寬度,需要先設置為輸入狀態
pinMode(EchoPin, INPUT);
Serial.println("Ultrasonic sensor:");
myservo.attach(5); // 將引腳9上的舵機與聲明的舵機對象連接起來
Serial.begin(9600);
}
void up()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(PWMA, 10);
analogWrite(PWMB, 10);
delay(5000);
}
void down()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(PWMA, 10);
analogWrite(PWMB, 10);
delay(5000);
}
void sto()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, LOW);
analogWrite(PWMA, 0);
analogWrite(PWMB, 0);
delay(5000);
}
void left()
{
digitalWrite(IN1, LOW);
digitalWrite(IN2, HIGH);
digitalWrite(IN3, HIGH);
digitalWrite(IN4, LOW);
analogWrite(PWMA, 10);
analogWrite(PWMB, 10);
delay(5000);
}
void right()
{
digitalWrite(IN1, HIGH);
digitalWrite(IN2, LOW);
digitalWrite(IN3, LOW);
digitalWrite(IN4, HIGH);
analogWrite(PWMA, 10);
analogWrite(PWMB, 10);
delay(5000);
}
void d()
{
// 產生一個10us的高脈沖去觸發TrigPin
digitalWrite(TrigPin, LOW);
delayMicroseconds(2);
digitalWrite(TrigPin, HIGH);
delayMicroseconds(10);
digitalWrite(TrigPin, LOW);
// 檢測脈沖寬度,并計算出距離
distance = pulseIn(EchoPin, HIGH) / 58.00;
}
void roun()
{
for(pos = 0; pos < 180; pos += 1){ // 舵機從0°轉到180°,每次增加1°
myservo.write(pos); // 給舵機寫入角度
delay(15); // 延時15ms讓舵機轉到指定位置
}
for(pos = 180; pos>=1; pos-=1) { // 舵機從180°轉回到0°,每次減小1°
myservo.write(pos); // 寫角度到舵機
delay(15); // 延時15ms讓舵機轉到指定位置
}
}
void loop()
{
d();
while (Serial.available() > 0){
comdata += char(Serial.read());
i=comdata.toInt();//每次讀一個char字符,并相加
delay(2);
}
if (comdata.length() > 0){
if (i<140){
Serial.println("left");
left();
}
if(i>140&i<180){
Serial.println("up");
if(distance<30)
sto();
else
up();
}
if (i>=180){
Serial.println("right");
right();
}
// Serial.println(i); //打印接收到的字符
comdata = "";
}
}
復制代碼
所有資料51hei提供下載:
arduino.rar
(13.71 KB, 下載次數: 18)
2018-10-2 19:30 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
歡迎光臨 (http://m.raoushi.com/bbs/)
Powered by Discuz! X3.1