欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2829|回復(fù): 0
收起左側(cè)

arduino小車控制程序,包含與樹莓派通信程序

[復(fù)制鏈接]
ID:404916 發(fā)表于 2018-10-2 19:31 | 顯示全部樓層 |閱讀模式
小車控制程序,包含與樹莓派通信程序
0.png

單片機(jī)源程序如下:

  1. int PWMA=10;
  2. int IN1 = 10;
  3. int IN2 = 9;
  4. int PWMB = 6;
  5. int IN3 = 6;
  6. int IN4 = 5;
  7. const int TrigPin = 2;
  8. const int EchoPin = 3;
  9. float distance;
  10. #include <Servo.h>    // 聲明調(diào)用Servo.h庫
  11. Servo myservo;        // 創(chuàng)建一個(gè)舵機(jī)對象
  12. int pos = 0;          // 變量pos用來存儲舵機(jī)位置
  13. String comdata = "";
  14. int i;

  15. void setup()
  16. {
  17.   pinMode(PWMA, OUTPUT); //PWM
  18.   pinMode(IN1, OUTPUT);
  19.   pinMode(IN2, OUTPUT);
  20.   pinMode(PWMB, OUTPUT); //PWM
  21.   pinMode(IN3, OUTPUT);
  22.   pinMode(IN4, OUTPUT);
  23.   // 初始化串口通信及連接SR04的引腳
  24.         Serial.begin(9600);
  25.         pinMode(TrigPin, OUTPUT);
  26.     // 要檢測引腳上輸入的脈沖寬度,需要先設(shè)置為輸入狀態(tài)
  27.         pinMode(EchoPin, INPUT);
  28.     Serial.println("Ultrasonic sensor:");
  29.   myservo.attach(5);  // 將引腳9上的舵機(jī)與聲明的舵機(jī)對象連接起來
  30.   Serial.begin(9600);
  31. }

  32. void up()
  33. {
  34.   digitalWrite(IN1, LOW);
  35.   digitalWrite(IN2, HIGH);
  36.   digitalWrite(IN3, LOW);
  37.   digitalWrite(IN4, HIGH);
  38.   analogWrite(PWMA, 10);
  39.   analogWrite(PWMB, 10);
  40.   delay(5000);
  41. }

  42. void down()
  43. {
  44.   digitalWrite(IN1, HIGH);
  45.   digitalWrite(IN2, LOW);
  46.   digitalWrite(IN3, HIGH);
  47.   digitalWrite(IN4, LOW);
  48.   analogWrite(PWMA, 10);
  49.   analogWrite(PWMB, 10);
  50.   delay(5000);
  51. }

  52. void sto()
  53. {
  54.   digitalWrite(IN1, LOW);
  55.   digitalWrite(IN2, LOW);
  56.   digitalWrite(IN3, LOW);
  57.   digitalWrite(IN4, LOW);
  58.   analogWrite(PWMA, 0);
  59.   analogWrite(PWMB, 0);
  60.   delay(5000);
  61. }

  62. void left()
  63. {
  64.   digitalWrite(IN1, LOW);
  65.   digitalWrite(IN2, HIGH);
  66.   digitalWrite(IN3, HIGH);
  67.   digitalWrite(IN4, LOW);
  68.   analogWrite(PWMA, 10);
  69.   analogWrite(PWMB, 10);
  70.   delay(5000);
  71. }

  72. void right()
  73. {
  74.   digitalWrite(IN1, HIGH);
  75.   digitalWrite(IN2, LOW);
  76.   digitalWrite(IN3, LOW);
  77.   digitalWrite(IN4, HIGH);
  78.   analogWrite(PWMA, 10);
  79.   analogWrite(PWMB, 10);
  80.   delay(5000);
  81. }

  82. void d()
  83. {
  84.     // 產(chǎn)生一個(gè)10us的高脈沖去觸發(fā)TrigPin
  85.         digitalWrite(TrigPin, LOW);
  86.         delayMicroseconds(2);
  87.         digitalWrite(TrigPin, HIGH);
  88.         delayMicroseconds(10);
  89.         digitalWrite(TrigPin, LOW);
  90.     // 檢測脈沖寬度,并計(jì)算出距離
  91.         distance = pulseIn(EchoPin, HIGH) / 58.00;
  92.         
  93. }

  94. void roun()
  95. {
  96.    for(pos = 0; pos < 180; pos += 1){    // 舵機(jī)從0°轉(zhuǎn)到180°,每次增加1°         
  97.       myservo.write(pos);           // 給舵機(jī)寫入角度   
  98.       delay(15);                    // 延時(shí)15ms讓舵機(jī)轉(zhuǎn)到指定位置
  99.    }
  100.     for(pos = 180; pos>=1; pos-=1) {    // 舵機(jī)從180°轉(zhuǎn)回到0°,每次減小1°                              
  101.        myservo.write(pos);        // 寫角度到舵機(jī)     
  102.        delay(15);                 // 延時(shí)15ms讓舵機(jī)轉(zhuǎn)到指定位置
  103.     }
  104. }

  105. void loop()
  106. {
  107. d();
  108.   while (Serial.available() > 0){
  109.         comdata += char(Serial.read());
  110.         i=comdata.toInt();//每次讀一個(gè)char字符,并相加
  111.         delay(2);
  112.     }
  113.     if (comdata.length() > 0){
  114.         if (i<140){
  115.           Serial.println("left");
  116.            left();
  117.         }
  118.         if(i>140&i<180){
  119.           Serial.println("up");
  120.           if(distance<30)
  121.           sto();
  122.           else
  123.           up();
  124.          
  125.         }
  126.         if (i>=180){
  127.           Serial.println("right");
  128.            right();
  129.         }
  130.        // Serial.println(i); //打印接收到的字符
  131.         comdata = "";
  132.     }
  133.    
  134. }

復(fù)制代碼

所有資料51hei提供下載:
arduino.rar (13.71 KB, 下載次數(shù): 18)


回復(fù)

使用道具 舉報(bào)

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術(shù)交流QQ群281945664

Powered by 單片機(jī)教程網(wǎng)

快速回復(fù) 返回頂部 返回列表