久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2012|回復: 0
收起左側

三輪小車運動Arduino編程

[復制鏈接]
ID:376891 發表于 2018-7-21 20:42 | 顯示全部樓層 |閱讀模式
  1. const unsigned char PWM1 =13;
  2. const unsigned char AIN11 =12;
  3. const unsigned char AIN12 =11;
  4. const unsigned char PWM2 =10;
  5. const unsigned char AIN21 =9;
  6. const unsigned char AIN22 =8;
  7. const unsigned char PWM3 =7;
  8. const unsigned char AIN31 =6;
  9. const unsigned char AIN32 =5;
  10. const unsigned char Left1=24;
  11. const unsigned char Right1=25;
  12. const unsigned char Left2=26;
  13. const unsigned char Right2=27;
  14. int L1;
  15. int L2;
  16. int L3;
  17. int L4;
  18. int pwm3=0;
  19. int Time=0;
  20. int r=0;
  21. String data ="";
  22. void setup() {
  23.   pinMode(PWM1,OUTPUT);
  24.   pinMode(PWM2,OUTPUT);
  25.   pinMode(PWM3,OUTPUT);
  26.   pinMode(AIN11,OUTPUT);
  27.   pinMode(AIN12,OUTPUT);
  28.   pinMode(AIN21,OUTPUT);
  29.   pinMode(AIN22,OUTPUT);
  30.   pinMode(AIN31,OUTPUT);
  31.   pinMode(AIN32,OUTPUT);
  32.   pinMode(Left1,INPUT);
  33.   pinMode(Right1,INPUT);
  34.   Serial1.begin(9600);
  35. }
  36. // 電機停轉
  37. void motorStop1()
  38. {
  39.     digitalWrite(AIN11, LOW);
  40.     digitalWrite(AIN12, LOW);
  41. }
  42. void motorStop2()
  43. {
  44.     digitalWrite(AIN21, LOW);
  45.     digitalWrite(AIN22, LOW);
  46. }
  47. void motorStop3()
  48. {
  49.     digitalWrite(AIN31, LOW);
  50.     digitalWrite(AIN32, LOW);
  51. }
  52. // 電機以參數設定的 pwm 值順時針轉
  53. void motorCW1(unsigned char pwm)
  54. {
  55.     analogWrite(PWM1,   pwm);
  56.     digitalWrite(AIN12, HIGH);
  57.     digitalWrite(AIN11, LOW);
  58. }
  59. void motorCW2(unsigned char pwm)
  60. {
  61.     analogWrite(PWM2,   pwm);
  62.     digitalWrite(AIN22, HIGH);
  63.     digitalWrite(AIN21, LOW);
  64. }
  65. void motorCW3(unsigned char pwm)
  66. {
  67.     analogWrite(PWM3,   pwm);
  68.     digitalWrite(AIN32, HIGH);
  69.     digitalWrite(AIN31, LOW);
  70. }
  71. // 電機以參數設定的 pwm 值逆時針轉
  72. void motorCCW1(unsigned char pwm)
  73. {
  74.     analogWrite(PWM1,   pwm);
  75.     digitalWrite(AIN11, HIGH);
  76.     digitalWrite(AIN12, LOW);
  77. }
  78. void motorCCW2(unsigned char pwm)
  79. {
  80.     analogWrite(PWM2,   pwm);
  81.     digitalWrite(AIN21, HIGH);
  82.     digitalWrite(AIN22, LOW);
  83. }
  84. void motorCCW3(unsigned char pwm)
  85. {
  86.     analogWrite(PWM3,   pwm);
  87.     digitalWrite(AIN31, HIGH);
  88.     digitalWrite(AIN32, LOW);
  89. }
  90. //前,后,左轉,右轉,左行,右行,停
  91. void forward(unsigned char pwm)
  92. {
  93.   motorStop1();
  94.   motorCW3(pwm);
  95.   motorCCW2(pwm);
  96. }
  97. void backward(unsigned char pwm)
  98. {
  99.   motorStop1();
  100.   motorCW2(pwm);
  101.   motorCCW3(pwm);
  102. }
  103. void LRotate(unsigned char pwm)
  104. {
  105.   motorCW1(pwm);
  106.   motorCW2(pwm);
  107.   motorCW3(pwm);
  108. }
  109. void RRotate(unsigned char pwm)
  110. {
  111.   motorCCW1(pwm);
  112.   motorCCW2(pwm);
  113.   motorCCW3(pwm);
  114. }
  115. void LMove(unsigned char pwm)
  116. {
  117.   motorCW1(pwm);
  118.   motorCCW2(pwm/2);
  119.   motorCCW3(pwm/2);
  120. }
  121. void RMove(unsigned char pwm)
  122. {
  123.   motorCCW1(pwm);
  124.   motorCW2(pwm/2);
  125.   motorCW3(pwm/2);
  126. }
  127. void Stop()
  128. {
  129.   motorStop1();
  130.   motorStop2();
  131.   motorStop3();
  132. }
  133. void loop() {
  134.   motorStop1();
  135.   motorCW3(pwm3+230);
  136.   motorCCW2(230);
  137.   L1=digitalRead(Left1);
  138.   L2=digitalRead(Right1);
  139.   L3=digitalRead(Left2);
  140.   L4=digitalRead(Right2);
  141.   if(r==1){
  142.   if(L1==1&&L2==1){
  143.     Time=0;
  144.   }
  145.   else if(L1==0&&L2==1&&L3==1&&Time==0){
  146.     pwm3=5;
  147.     Time++;
  148.   }
  149.   else if(L1==0&&L2==1&&L3==1&&Time!=0){
  150.     pwm3--;
  151.     Time++;
  152.   }
  153.   else if(L1==0&&L2==1&&L3==0&&Time==0){
  154.     pwm3=10;
  155.     Time++;
  156.   }
  157.   else if(L1==0&&L2==1&&L3==0&&Time!=0){
  158.     pwm3+=5;
  159.     Time++;
  160.   }
  161.   else if(L1==1&&L2==0&&L4==1&&Time==0){
  162.     pwm3=-5;
  163.     Time++;
  164.   }
  165.   else if(L1==1&&L2==0&&L4==1&&Time!=0){
  166.     pwm3++;
  167.     Time++;
  168.   }
  169.   else if(L1==1&&L2==0&&L4==0&&Time==0){
  170.     pwm3=-10;
  171.     Time++;
  172.   }
  173.   else if(L1==1&&L2==0&&L4==0&&Time!=0){
  174.     pwm3-=5;
  175.     Time++;
  176.   }
  177.   }
  178.   while(Serial1.available() > 0)
  179. {
  180.   char inChar=(char)Serial1.read();
  181.   delay(10);
  182.   data+=inChar;
  183. }
  184. if(data!=""){
  185.   if(data == "p"){
  186.     Stop();
  187.     r=0;
  188.   }
  189.   else if(data == "w"){
  190.     r=1;
  191.   }
  192. }
  193. data="";
  194. delay(100);
  195. }
復制代碼


回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产精品综合 | 久久丁香 | 99视频久 | 五月婷婷激情网 | 欧美男人天堂 | 精品国产免费一区二区三区五区 | 日韩美女在线看免费观看 | 精品国产乱码久久久久久1区2区 | 国产精品久久久久久久久久妇女 | 亚洲自拍一区在线观看 | 久久精品一级 | 欧美888| 欧美激情在线精品一区二区三区 | 欧美无乱码久久久免费午夜一区 | 精品视频一区二区三区 | 欧美女优在线观看 | 在线成人免费av | 久久中文字幕视频 | 中文精品一区二区 | 久久久久久久久久久久久九 | 男女污污网站 | 国产日韩欧美在线 | 日韩一二三区 | 日韩精品一区二区久久 | 成人18亚洲xxoo | 亚洲一区二区三区免费在线观看 | 日韩成人在线观看 | 午夜在线免费观看 | 一级欧美一级日韩片免费观看 | 黄免费观看 | 夜色www国产精品资源站 | 日韩欧美国产一区二区 | 91成人在线视频 | 久久精品国产一区二区电影 | 成人h片在线观看 | 国产精品一区二区三 | 欧美成人精品激情在线观看 | 欧美成人激情 | 91精品国产综合久久久久久丝袜 | 亚洲精品99 | 成人久久18免费网站图片 |