wwwxxx国产_337p日本欧洲亚洲大胆张筱雨_免费在线看成人av_日本黄色不卡视频_国产精品成熟老女人_99视频一区_亚洲精品97久久中文字幕_免费精品视频在线_亚洲色图欧美视频_欧美一区二三区

 找回密碼
 立即注冊(cè)

QQ登錄

只需一步,快速開(kāi)始

搜索
查看: 22859|回復(fù): 36
打印 上一主題 下一主題
收起左側(cè)

Arduino自平衡小車(chē)……你值得擁有

  [復(fù)制鏈接]
跳轉(zhuǎn)到指定樓層
樓主
ID:100312 發(fā)表于 2016-4-9 10:44 | 只看該作者 回帖獎(jiǎng)勵(lì) |倒序?yàn)g覽 |閱讀模式
  1. #include  "Wire.h"`
  2. const uint8_t IMUAddress = 0x68; // AD0 is logic low on the PCB
  3. const uint16_t I2C_TIMEOUT = 100; // Used to check for errors in I2C communication

  4. uint8_t i2cWrite(uint8_t registerAddress, uint8_t data, bool sendStop) {
  5.   return i2cWrite(registerAddress, &data, 1, sendStop); // Returns 0 on success
  6. }

  7. uint8_t i2cWrite(uint8_t registerAddress, uint8_t *data, uint8_t length, bool sendStop) {
  8.     Wire.beginTransmission(IMUAddress);
  9.     Wire.write(registerAddress);
  10.     Wire.write(data, length);
  11.     uint8_t rcode = Wire.endTransmission(sendStop); // Returns 0 on success
  12.     if (rcode) {
  13.       Serial.print(F("i2cWrite failed: "));
  14.       Serial.println(rcode);
  15.     }
  16.     return rcode; // See: http://arduino.cc/en/Reference/WireEndTransmission
  17. }

  18. uint8_t i2cRead(uint8_t registerAddress, uint8_t *data, uint8_t nbytes) {
  19.     uint32_t timeOutTimer;
  20.     Wire.beginTransmission(IMUAddress);
  21.     Wire.write(registerAddress);
  22.     uint8_t rcode = Wire.endTransmission(false); // Don't release the bus
  23.     if (rcode) {
  24.       Serial.print(F("i2cRead failed: "));
  25.       Serial.println(rcode);
  26.       return rcode; // See: http://arduino.cc/en/Reference/WireEndTransmission
  27.     }
  28.     Wire.requestFrom(IMUAddress, nbytes, (uint8_t)true); // Send a repeated start and then release the bus after reading
  29.     for (uint8_t i = 0; i < nbytes; i++) {
  30.       if (Wire.available())
  31.         data[i] = Wire.read();
  32.       else {
  33.         timeOutTimer = micros();
  34.         while (((micros() - timeOutTimer) < I2C_TIMEOUT) && !Wire.available());
  35.         if (Wire.available())
  36.           data[i] = Wire.read();
  37.         else {
  38.           Serial.println(F("i2cRead timeout"));
  39.           return 5; // This error value is not already taken by endTransmission
  40.         }
  41.       }
  42.     }
  43.     return 0; // Success
  44. }

  45. /******************************************************/

  46. //2560 pin map  引腳定義好即可,然后改變一下PID的幾個(gè)值(kp,kd,ksp,ksi)即可,剩下的全部都是固定的程序,
  47. //可能小車(chē)會(huì)有一點(diǎn)重心不在中點(diǎn)的現(xiàn)象,加一下角度值或者減一點(diǎn)即可
  48. //至于每個(gè)MPU6050的誤差,自己調(diào)節(jié)一下即可,不是很難
  49. //調(diào)試時(shí)先將速度環(huán)的ksp,ksi=0,調(diào)到基本可以站起來(lái),然后可能會(huì)出現(xiàn)倒,或者自動(dòng)跑起來(lái)的時(shí)候加上速度環(huán)
  50. //這時(shí)就會(huì)很穩(wěn)定的站起來(lái),然后用小力氣的手推不會(huì)倒。
  51. int ENA=11;
  52. int ENB=12;

  53. int IN1=4;
  54. int IN2=5;
  55. int IN3=6;
  56. int IN4=7;

  57. int MAS,MBS;


  58. /* IMU Data */
  59. double accX, accY, accZ;
  60. double gyroX, gyroY, gyroZ;
  61. int16_t tempRaw;

  62. double gyroXangle, gyroYangle; // Angle calculate using the gyro only
  63. double compAngleX, compAngleY; // Calculated angle using a complementary filter
  64. double kalAngleX, kalAngleY; // Calculated angle using a Kalman filter
  65. uint8_t i2cData[14]; // Buffer for I2C data
  66. uint32_t timer;
  67. unsigned long lastTime;      

  68. /***************************************/
  69. double P[2][2] = {{ 1, 0 },{ 0, 1 }};
  70. double Pdot[4] ={ 0,0,0,0};
  71. static const double Q_angle=0.001, Q_gyro=0.003, R_angle=0.5,dtt=0.005,C_0 = 1;
  72. double q_bias, angle_err, PCt_0, PCt_1, E, K_0, K_1, t_0, t_1;
  73. double angle,angle_dot,aaxdot,aax;
  74. double position_dot,position_dot_filter,positiono;

  75. /*-------------Encoder---------------*/

  76. #define LF 0
  77. #define RT 1

  78. //The balance PID
  79. float kp,kd,ksp,ksi;

  80. int Lduration,Rduration;
  81. boolean LcoderDir,RcoderDir;
  82. const byte encoder0pinA = 2;
  83. const byte encoder0pinB = 8;
  84. byte encoder0PinALast;
  85. const byte encoder1pinA = 3;
  86. const byte encoder1pinB = 9;
  87. byte encoder1PinALast;

  88. int RotationCoder[2];
  89. int turn_flag=0;
  90. float move_flag=0;
  91. float right_need = 0, left_need = 0;;

  92. int pwm;
  93. int pwm_R,pwm_L;
  94. float range;
  95. float range_error_all;
  96. float wheel_speed;
  97. float last_wheel;
  98. float error_a=0;

  99. void Kalman_Filter(double angle_m,double gyro_m)
  100. {
  101.     angle+=(gyro_m-q_bias) * dtt;
  102.     Pdot[0]=Q_angle - P[0][1] - P[1][0];
  103.     Pdot[1]=- P[1][1];
  104.     Pdot[2]=- P[1][1];
  105.     Pdot[3]=Q_gyro;
  106.     P[0][0] += Pdot[0] * dtt;
  107.     P[0][1] += Pdot[1] * dtt;
  108.     P[1][0] += Pdot[2] * dtt;
  109.     P[1][1] += Pdot[3] * dtt;
  110.     angle_err = angle_m - angle;
  111.     PCt_0 = C_0 * P[0][0];
  112.     PCt_1 = C_0 * P[1][0];
  113.     E = R_angle + C_0 * PCt_0;
  114.     K_0 = PCt_0 / E;
  115.     K_1 = PCt_1 / E;
  116.     t_0 = PCt_0;
  117.     t_1 = C_0 * P[0][1];
  118.     P[0][0] -= K_0 * t_0;
  119.     P[0][1] -= K_0 * t_1;
  120.     P[1][0] -= K_1 * t_0;
  121.     P[1][1] -= K_1 * t_1;
  122.     angle+= K_0 * angle_err;
  123.     q_bias += K_1 * angle_err;
  124.     angle_dot = gyro_m-q_bias;//也許應(yīng)該用last_angle-angle
  125. }

  126. void setup() {
  127.     Wire.begin();
  128.     Serial.begin(9600);
  129.     pinMode(IN1, OUTPUT);
  130.     pinMode(IN2, OUTPUT);
  131.     pinMode(IN3, OUTPUT);
  132.     pinMode(IN4, OUTPUT);  
  133.     pinMode(ENA, OUTPUT);
  134.     pinMode(ENB, OUTPUT);
  135.     TWBR = ((F_CPU / 400000L) - 16) / 2; // Set I2C frequency to 400kHz

  136.     i2cData[0] = 7; // Set the sample rate to 1000Hz - 8kHz/(7+1) = 1000Hz
  137.     i2cData[1] = 0x00; // Disable FSYNC and set 260 Hz Acc filtering, 256 Hz Gyro filtering, 8 KHz sampling
  138.     i2cData[2] = 0x00; // Set Gyro Full Scale Range to ±250deg/s
  139.     i2cData[3] = 0x00; // Set Accelerometer Full Scale Range to ±2g
  140.     while (i2cWrite(0x19, i2cData, 4, false)); // Write to all four registers at once
  141.     while (i2cWrite(0x6B, 0x01, true)); // PLL with X axis gyroscope reference and disable sleep mode

  142.     while (i2cRead(0x75, i2cData, 1));
  143.     if (i2cData[0] != 0x68) { // Read "WHO_AM_I" register
  144.         Serial.print(F("Error reading sensor"));
  145.         while (1);
  146.     }

  147.     delay(20); // Wait for sensor to stabilize

  148.     while (i2cRead(0x3B, i2cData, 6));
  149.     accX = (i2cData[0] << 8) | i2cData[1];
  150.     accY = (i2cData[2] << 8) | i2cData[3];
  151.     accZ = (i2cData[4] << 8) | i2cData[5];


  152.     double roll  = atan2(accX, accZ) * RAD_TO_DEG;
  153.     EnCoderInit();
  154.     timer = micros();

  155.       //The balance PID
  156.     kp= 42;//24.80;43
  157.     kd= 1.9;//9.66;1.4
  158.     ksp= 8.5;//4.14;
  159.     ksi= 2.1;//0.99; 0.550
  160. }

  161. void EnCoderInit()
  162. {
  163.     pinMode(8,INPUT);
  164.     pinMode(9,INPUT);
  165.     attachInterrupt(LF, LwheelSpeed, RISING);
  166.     attachInterrupt(RT, RwheelSpeed, RISING);
  167. }

  168. void pwm_calculate()
  169. {
  170.     unsigned long  now = millis();       // 當(dāng)前時(shí)間(ms)
  171.     int Time = now - lastTime;
  172.     int range_error;
  173.     range += (Lduration + Rduration) * 0.5;
  174.     range *= 0.9;
  175.     range_error = Lduration - Rduration;
  176.     range_error_all += range_error;
  177.    
  178.     wheel_speed = range - last_wheel;   
  179.     //wheel_speed = constrain(wheel_speed,-800,800);
  180.     //Serial.println(wheel_speed);
  181.     last_wheel = range;  
  182.     pwm = (angle + 0.825) * kp + angle_dot * kd + range * ksp + wheel_speed * ksi;     
  183.     if(pwm > 255)pwm = 255;
  184.     if(pwm < -255)pwm = -255;
  185.    
  186.     if(turn_flag == 0)
  187.     {
  188.          pwm_R = pwm + range_error_all;
  189.          pwm_L = pwm - range_error_all;
  190.     }
  191.     else if(turn_flag == 1)     //左轉(zhuǎn)
  192.     {
  193.         pwm_R = pwm ;  //Direction PID control
  194.         pwm_L = pwm + left_need * 68;
  195.         range_error_all = 0;     //clean
  196.     }
  197.     else if(turn_flag == 2)
  198.     {
  199.         pwm_R = pwm + right_need * 68;  //Direction PID control
  200.         pwm_L = pwm ;
  201.         range_error_all = 0;     //clean
  202.     }
  203.       
  204.        Lduration = 0;//clean
  205.        Rduration = 0;
  206.        lastTime = now;
  207. }

  208. void PWMD()
  209. {  
  210.       if(pwm>0)
  211.       {
  212.           digitalWrite(IN1, HIGH);
  213.           digitalWrite(IN2, LOW);
  214.           digitalWrite(IN3, LOW);
  215.           digitalWrite(IN4, HIGH);   
  216.       }
  217.       else if(pwm<0)
  218.       {
  219.           digitalWrite(IN1, LOW);
  220.           digitalWrite(IN2, HIGH);
  221.           digitalWrite(IN3, HIGH);
  222.           digitalWrite(IN4, LOW);
  223.       }
  224.       int PWMr = abs(pwm);
  225.       int PWMl = abs(pwm);
  226.    
  227.       analogWrite(ENB, max(PWMl,60)); //PWM調(diào)速a==0-255  51
  228.       analogWrite(ENA, max(PWMr,60)); //PWM調(diào)速a==0-255  54
  229.       
  230. }

  231. void LwheelSpeed()
  232. {
  233.       if(digitalRead(encoder0pinB))
  234.         Lduration++;
  235.       else Lduration--;
  236. }


  237. void RwheelSpeed()
  238. {
  239.       if(digitalRead(encoder1pinB))
  240.         Rduration--;
  241.       else Rduration++;
  242. }

  243. void control()
  244. {
  245.     if(Serial.available()){
  246.       int val;
  247.       val=Serial.read();
  248.       switch(val){
  249.         case 'w':
  250.           if(move_flag<5)move_flag += 0.5;
  251.           else  move_flag = 0;
  252.           break;
  253.         case 's':
  254.           if(move_flag<5)move_flag -= 0.5;
  255.           else  move_flag = 0;
  256.          Serial.println("back");
  257.           break;
  258.         case 'a':
  259.           turn_flag = 1;
  260.           left_need = 0.6;
  261.           Serial.println("zuo");
  262.           break;
  263.         case 'd':
  264.           turn_flag = 2;
  265.           right_need = 0.6;
  266.           Serial.println("you");
  267.           break;
  268.         case 't':
  269.           move_flag=0;
  270.           turn_flag=0;
  271.           right_need = left_need = 0;
  272.           Serial.println("stop");
  273.           break;
  274.         default:
  275.           break;
  276.           }
  277.       }
  278. }

  279. void loop()
  280. {

  281.     //control();
  282.     while (i2cRead(0x3B, i2cData, 14));
  283.     accX = ((i2cData[0] << 8) | i2cData[1]);
  284.     //accY = ((i2cData[2] << 8) | i2cData[3]);
  285.     accZ = ((i2cData[4] << 8) | i2cData[5]);
  286.     //gyroX = (i2cData[8] << 8) | i2cData[9];
  287.     gyroY = (i2cData[10] << 8) | i2cData[11];
  288.     //gyroZ = (i2cData[12] << 8) | i2cData[13];

  289.     double dt = (double)(micros() - timer) / 1000000; // Calculate delta time
  290.     timer = micros();

  291.     double roll  = atan2(accX, accZ) * RAD_TO_DEG - move_flag;


  292.     //double gyroXrate = gyroX / 131.0; // Convert to deg/s
  293.     double gyroYrate = -gyroY / 131.0; // Convert to deg/s

  294.     //gyroXangle += gyroXrate * dt; // Calculate gyro angle without any filter
  295.     //gyroYangle += gyroYrate * dt;

  296.     Kalman_Filter(roll,gyroYrate);   
  297.     if(abs(angle)<35){
  298.         //Serial.println(angle);   
  299.         pwm_calculate();
  300.         PWMD();
  301.     }
  302.     else{
  303.         analogWrite(ENB, 0); //PWM調(diào)速a==0-255
  304.         analogWrite(ENA, 0); //PWM調(diào)速a==0-255
  305.     }  
  306.     delay(2);
  307. }
復(fù)制代碼

器件:Arduino UNO或者M(jìn)ega2560、LM298模塊,MPU6050傳感器、兩個(gè)編碼電機(jī),
          公母杜邦線,藍(lán)牙HT-06、鋰電池18650(4)——(成本大概200左右)

如果用手機(jī)控制可以下載應(yīng)用寶里面的一個(gè)“小蜜蜂機(jī)器人”APP,個(gè)人覺(jué)得這個(gè)APP功能超強(qiáng)大,大神寫(xiě)的APP就是屌!專(zhuān)門(mén)連接藍(lán)牙的串口助手,還有調(diào)試舵機(jī)的功能,簡(jiǎn)直可以上天了。

調(diào)試過(guò)程中會(huì)學(xué)習(xí)到很多東西,希望大家可以看看,雖然我也做的很好,不過(guò)在這期間學(xué)習(xí)到了很多東西……
幾天就可以看到你想看到的現(xiàn)象喲,還等什么,開(kāi)始動(dòng)手吧,慢慢看資料慢慢理解(不對(duì)之處,敬請(qǐng)諒解)
                                                                                                                                  ——初學(xué)者心聲
http://v.youku.com/v_show/id_XMTUyODUwMDkxMg==.html




評(píng)分

參與人數(shù) 1黑幣 +5 收起 理由
蔡定銀 + 5 很給力!

查看全部評(píng)分

分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏13 分享淘帖 頂2 踩
回復(fù)

使用道具 舉報(bào)

沙發(fā)
ID:1 發(fā)表于 2016-4-9 12:27 | 只看該作者
謝謝分享 樓主能傳個(gè)壓縮包嗎 好像還有些頭文件沒(méi)有
回復(fù)

使用道具 舉報(bào)

板凳
ID:100312 發(fā)表于 2016-4-9 16:55 | 只看該作者
附件里面有wire的庫(kù)文件,MPU6050原始數(shù)據(jù)分析,以及PWM輸出的原理,還有小蜜蜂藍(lán)牙助手的調(diào)試APP……

Wire_bluetooth_MPU6050數(shù)據(jù)分析.zip

5 MB, 下載次數(shù): 146, 下載積分: 黑幣 -5

值得看看

回復(fù)

使用道具 舉報(bào)

地板
ID:91641 發(fā)表于 2016-4-15 22:35 | 只看該作者
s414545584 發(fā)表于 2016-4-9 16:55
附件里面有wire的庫(kù)文件,MPU6050原始數(shù)據(jù)分析,以及PWM輸出的原理,還有小蜜蜂藍(lán)牙助手的調(diào)試APP……

arduino平衡車(chē)自動(dòng)跑起來(lái)的時(shí)候怎么加上速度環(huán)呢?
回復(fù)

使用道具 舉報(bào)

5#
ID:100312 發(fā)表于 2016-4-16 20:07 | 只看該作者
xiaobolinux 發(fā)表于 2016-4-15 22:35
arduino平衡車(chē)自動(dòng)跑起來(lái)的時(shí)候怎么加上速度環(huán)呢?

直接加呀,代碼里面有
回復(fù)

使用道具 舉報(bào)

6#
ID:91641 發(fā)表于 2016-4-17 00:00 | 只看該作者
s414545584 發(fā)表于 2016-4-16 20:07
直接加呀,代碼里面有

但是我的平衡車(chē)能平衡但是只是往一個(gè)方向跑,跑一段就倒了,不能原地控制。
回復(fù)

使用道具 舉報(bào)

7#
ID:91641 發(fā)表于 2016-4-17 09:54 | 只看該作者
s414545584 發(fā)表于 2016-4-16 20:07
直接加呀,代碼里面有

哪句是關(guān)于速度環(huán)的呀
回復(fù)

使用道具 舉報(bào)

8#
ID:91641 發(fā)表于 2016-4-17 10:23 | 只看該作者
然后可能會(huì)出現(xiàn)倒,或者自動(dòng)跑起來(lái)的時(shí)候加上速度環(huán)
//這時(shí)就會(huì)很穩(wěn)定的站起來(lái),然后用小力氣的手推不會(huì)倒。


這個(gè)不行啊,一直往前,倒。 然后代碼里面沒(méi)有加速度環(huán)呀,,怎么加呀,,速度環(huán)是啥呀,,求教
回復(fù)

使用道具 舉報(bào)

9#
ID:100312 發(fā)表于 2016-4-17 12:21 | 只看該作者
xiaobolinux 發(fā)表于 2016-4-17 10:23
然后可能會(huì)出現(xiàn)倒,或者自動(dòng)跑起來(lái)的時(shí)候加上速度環(huán)
//這時(shí)就會(huì)很穩(wěn)定的站起來(lái),然后用小力氣的手推不會(huì)倒 ...

加q414545584,私聊,交流一下
回復(fù)

使用道具 舉報(bào)

10#
ID:134558 發(fā)表于 2016-7-21 23:21 | 只看該作者
  你好 請(qǐng)問(wèn)在哪兒可以調(diào)初始角?
回復(fù)

使用道具 舉報(bào)

11#
ID:134558 發(fā)表于 2016-7-22 19:49 | 只看該作者
  請(qǐng)問(wèn)一下樓主  那個(gè)電機(jī)編碼器的線 接到車(chē)上的腳是要怎么定義?
回復(fù)

使用道具 舉報(bào)

12#
ID:100312 發(fā)表于 2016-7-23 12:21 | 只看該作者
yangtao 發(fā)表于 2016-7-21 23:21
你好 請(qǐng)問(wèn)在哪兒可以調(diào)初始角?

double roll  = atan2(accX, accZ) * RAD_TO_DEG - move_flag;
這個(gè)就是x軸方向的角度,move_flag就是偏移量,調(diào)偏移量,用串口讀數(shù)直到基本為0
回復(fù)

使用道具 舉報(bào)

13#
ID:100312 發(fā)表于 2016-7-23 12:22 | 只看該作者
yangtao 發(fā)表于 2016-7-22 19:49
請(qǐng)問(wèn)一下樓主  那個(gè)電機(jī)編碼器的線 接到車(chē)上的腳是要怎么定義?

編碼電機(jī)上的AB相線一個(gè)用來(lái)檢測(cè)高低電平然后自加或者自減,另外一個(gè)用來(lái)觸發(fā)中斷函數(shù),你可以看上面的引腳定義就知道啦
回復(fù)

使用道具 舉報(bào)

14#
ID:134558 發(fā)表于 2016-7-23 23:34 | 只看該作者
s414545584 發(fā)表于 2016-7-23 12:22
編碼電機(jī)上的AB相線一個(gè)用來(lái)檢測(cè)高低電平然后自加或者自減,另外一個(gè)用來(lái)觸發(fā)中斷函數(shù),你可以看上面的引 ...

謝謝了 已經(jīng)調(diào)平衡了
回復(fù)

使用道具 舉報(bào)

15#
ID:116662 發(fā)表于 2016-8-2 14:11 來(lái)自觸屏版 | 只看該作者
好資料,辛苦樓主了
回復(fù)

使用道具 舉報(bào)

16#
ID:137339 發(fā)表于 2016-8-22 22:46 | 只看該作者
贊一個(gè)
回復(fù)

使用道具 舉報(bào)

17#
ID:137396 發(fā)表于 2016-8-23 15:28 | 只看該作者
這個(gè)還ˊ需要再修改一下 使可以適應(yīng)四處移動(dòng)
回復(fù)

使用道具 舉報(bào)

18#
ID:100312 發(fā)表于 2016-8-25 12:21 | 只看該作者
a98765432180 發(fā)表于 2016-8-23 15:28
這個(gè)還ˊ需要再修改一下 使可以適應(yīng)四處移動(dòng)

里面不是有個(gè)control函數(shù)嗎,那就是用藍(lán)牙控制的呀……
回復(fù)

使用道具 舉報(bào)

19#
ID:139027 發(fā)表于 2016-9-10 19:32 | 只看該作者
樓主可以分享個(gè)接線圖嗎?
回復(fù)

使用道具 舉報(bào)

20#
ID:189412 發(fā)表于 2017-4-14 06:36 | 只看該作者
thank you so much.
回復(fù)

使用道具 舉報(bào)

21#
ID:173821 發(fā)表于 2017-4-17 03:09 | 只看該作者
本帖最后由 bonzewu1213 于 2017-4-19 03:16 編輯

請(qǐng)問(wèn)樓主,目前我按您貼的源碼,上傳後,僅有右輪正常運(yùn)轉(zhuǎn),傾斜加速,反向傾斜,反向加速,但僅有右輪會(huì)動(dòng),左輪完全不動(dòng),是不是源碼有地方被註記起來(lái),沒(méi)有打開(kāi),謝謝。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

22#
ID:173821 發(fā)表于 2017-4-17 20:54 | 只看該作者
哈哈,ENA及ENB應(yīng)接11,12,接錯(cuò)了,接成10,11,改正後就可以了,已經(jīng)解決,只是重心還要調(diào)一下,基本上已正常運(yùn)作,太棒了,感謝樓主,大大感謝。

評(píng)分

參與人數(shù) 1黑幣 +20 收起 理由
admin + 20 回帖助人的獎(jiǎng)勵(lì)!

查看全部評(píng)分

回復(fù)

使用道具 舉報(bào)

23#
ID:191204 發(fā)表于 2017-4-19 14:07 | 只看該作者
bonzewu1213 發(fā)表于 2017-4-17 03:09
請(qǐng)問(wèn)樓主,目前我按您貼的源碼,上傳後,僅有右輪正常運(yùn)轉(zhuǎn),傾斜加速,反向傾斜,反向加速,但僅有右輪會(huì)動(dòng) ...

我上傳后怎么兩個(gè)輪子都沒(méi)動(dòng)
回復(fù)

使用道具 舉報(bào)

24#
ID:173821 發(fā)表于 2017-4-20 00:36 | 只看該作者
仔仔12 發(fā)表于 2017-4-19 14:07
我上傳后怎么兩個(gè)輪子都沒(méi)動(dòng)

據(jù)我所知,L298N 有分A,B 兩型, 你要買(mǎi)那種 6根排針上面都沒(méi)有jumper 的那種,馬達(dá)電源需要有12V,12V接線要接對(duì),接錯(cuò),很容易把線燒著了,得趕緊滅火 XD 如果接線都對(duì)了,應(yīng)該跑得起來(lái)才對(duì),原始作者,應(yīng)該給他大大讚一個(gè)!
回復(fù)

使用道具 舉報(bào)

25#
ID:216395 發(fā)表于 2017-7-2 17:55 | 只看該作者
不錯(cuò),真的不錯(cuò),我正在找呢
回復(fù)

使用道具 舉報(bào)

26#
ID:216395 發(fā)表于 2017-7-2 17:56 | 只看該作者
這些代碼我正需要,沒(méi)想到在這個(gè)網(wǎng)站找到了,不錯(cuò)!
回復(fù)

使用道具 舉報(bào)

27#
ID:232830 發(fā)表于 2017-9-13 10:54 | 只看該作者
這些代碼我正需要,沒(méi)想到在這個(gè)網(wǎng)站找到了,不錯(cuò)!
回復(fù)

使用道具 舉報(bào)

28#
ID:232830 發(fā)表于 2017-9-13 10:54 | 只看該作者
這些代碼我正需要,沒(méi)想到在這個(gè)網(wǎng)站找到了,不錯(cuò)!
回復(fù)

使用道具 舉報(bào)

29#
ID:214383 發(fā)表于 2017-9-16 00:50 來(lái)自觸屏版 | 只看該作者
學(xué)習(xí)了
回復(fù)

使用道具 舉報(bào)

30#
ID:238956 發(fā)表于 2017-10-12 19:40 | 只看該作者
學(xué)習(xí)一下
回復(fù)

使用道具 舉報(bào)

31#
ID:177577 發(fā)表于 2017-11-27 19:54 | 只看該作者
樓主有接線圖嗎?
回復(fù)

使用道具 舉報(bào)

32#
ID:254763 發(fā)表于 2017-11-28 16:40 | 只看該作者
好棒,不知運(yùn)行結(jié)果如何。
回復(fù)

使用道具 舉報(bào)

33#
ID:233519 發(fā)表于 2018-5-1 10:04 | 只看該作者
這個(gè)厲害了!!!
回復(fù)

使用道具 舉報(bào)

34#
ID:315589 發(fā)表于 2018-5-3 11:21 | 只看該作者
真的很溜哦
回復(fù)

使用道具 舉報(bào)

35#
ID:79544 發(fā)表于 2018-7-29 18:10 | 只看該作者
樓主您好!分享出原理圖啊謝謝!!
回復(fù)

使用道具 舉報(bào)

36#
ID:161201 發(fā)表于 2019-1-15 02:28 | 只看該作者
好棒,不知運(yùn)行結(jié)果如何
回復(fù)

使用道具 舉報(bào)

37#
ID:540025 發(fā)表于 2019-5-16 17:17 | 只看該作者
感謝樓主的分享,剛從百度上搜到這篇文章,小蜜蜂app的大神真棒。就是app資源確實(shí)難找
回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

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

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

快速回復(fù) 返回頂部 返回列表
欧美大片免费观看| 美女网站在线看| 三上悠亚激情av一区二区三区| 欧美自拍偷拍| 成+人+亚洲+综合天堂| 欧美三级视频在线| 欧亚精品在线观看| 成年女人18级毛片毛片免费| 国产精品成人无码免费| 狠狠躁夜夜躁av无码中文幕| 免费毛片aaaaaa| 超碰国产一区| 亚洲激情午夜| 亚洲色图视频免费播放| 亚洲天堂网在线观看| 欧美国产一二三区| 国产精品无码一区二区三区免费| 亚洲爱情岛论坛永久| 黄污网站在线观看| 成人动漫视频| 成人高清av在线| 国产a区久久久| 91精品国产免费久久综合| 国产精品视频999| 国产情侣av自拍| 中文字幕人妻一区二区三区视频| 大香一本蕉伊线亚洲网| 亚洲a成人v| 九九精品视频在线看| 欧美日韩色综合| 成人av在线网址| 在线观看免费av网址| 91精品在线视频观看| 国产精品久久久久久久妇| 桃花视频大全不卡免费观看网站| 欧美草逼视频| 国产精品久久久久9999高清| 色婷婷久久一区二区三区麻豆| 欧美综合一区第一页| 亚洲xxx在线观看| 免费看日韩av| 手机在线免费av| 日韩高清电影一区| 日韩女同互慰一区二区| 欧美日韩精品久久久免费观看| 毛片视频免费播放| 丝袜 亚洲 另类 欧美 重口| 麻豆精品不卡国产免费看| xxx性欧美| 日韩和欧美一区二区三区| 日韩一区二区三区免费观看| 蜜桃导航-精品导航| 国产免费久久久久| jizz18欧美| 国产精品免费大片| 一区二区三区四区激情 | 天天看片中文字幕| 色偷偷福利视频| 亚洲成人一品| 亚洲一级二级三级在线免费观看| 国产精品免费视频xxxx| 内射中出日韩无国产剧情| 在线观看免费p片视频网站地址| 欧美日韩视频免费看| 久久久久久久久一| 57pao成人永久免费视频| 91超薄肉色丝袜交足高跟凉鞋| 日韩在线天堂| 久久亚洲人体| 国产精品日日摸夜夜摸av| 8x海外华人永久免费日韩内陆视频| 日韩成人精品视频在线观看| 四虎精品成人免费观看| 亚洲国产天堂| 国产精品卡一卡二| 国产精品入口免费视| 男人舔女人下部高潮全视频| 成人漫画网站免费| 欧美成人直播| 91精品国产91久久久久久最新毛片 | 中文字幕av网址| 看成年女人免费午夜视频| 加勒比视频一区| 午夜精品免费在线观看| 国产精品一区二| 国产成人精品一区二三区| 成人高清网站| 久热成人在线视频| 久热精品在线视频| 亚洲区 欧美区| 国内精品区一区二区三| 亚洲欧美专区| 亚洲婷婷综合色高清在线| 国产在线观看91精品一区| 日本一卡二卡在线播放| 日本最黄视频| 免费视频一区| 精品精品国产国产自在线| 国产精品嫩草影视| 成年人黄色网址| 久久国产中文字幕| 精品欧美一区二区在线观看| 国产成人在线免费看| 一二三四在线观看免费高清中文在线观看| 午夜不卡一区| 欧美日韩国产一区在线| 日韩精品不卡| 精品国产无码一区二区| 国产精品久久久久77777丨| 悠悠色在线精品| 久久婷婷人人澡人人喊人人爽| 波多野结衣av无码| 樱桃视频成人在线观看| 日韩毛片高清在线播放| 精品欧美日韩| 国产日韩欧美中文字幕| 成人性片免费| 五月天激情小说综合| 一区二区精品视频| 天天摸夜夜添狠狠添婷婷| 91久久偷偷做嫩草影院电| 在线视频国产一区| 亚洲色成人www永久在线观看| 性18欧美另类| 日本电影一区二区| 日韩精品中文在线观看| 国产大学生av| 中文字幕网站视频在线| 精品一区二区三区免费毛片爱| 久久久免费观看| 三级黄色免费观看| 免费网站黄在线观看| 91片在线免费观看| 国产美女99p| 国产av一区二区三区精品| 日韩毛片免费看| 在线视频你懂得一区二区三区| 欧美成人小视频| 香蕉网在线播放| 男人天堂资源在线| 99精品1区2区| 国产自产在线视频一区| 成 人 免费 黄 色| 欧美性生活一级片| 精品日韩99亚洲| 中文字幕1区2区| 亚洲精品视频区| 成人成人成人在线视频| 不卡的av一区| 免费看日韩av| 久久美女视频| 久久亚洲国产精品| 波多野结衣不卡视频| 免费成人在线电影| 日韩欧美在线字幕| 在线观看高清免费视频| 日本视频三区| 97久久精品人人澡人人爽| 国产精品区二区三区日本| 午夜美女福利视频| 九色成人国产蝌蚪91| 亚洲一二在线观看| 日本黄区免费视频观看| 亚洲91av| 欧美日韩亚洲成人| caoporn超碰97| 亚洲精品少妇久久久久久| 成人美女视频在线观看18| 国产伦理一区二区三区| av亚洲男人天堂| 欧美另类女人| 国产91精品久久久久久| 亚洲欧美一二三区| 成人动漫视频| 一区二区三区视频免费| 性色av无码久久一区二区三区| 成人免费直播| 91精品国产综合久久香蕉麻豆 | 国产精品一区免费视频| 国产91一区二区三区| 极品美女一区二区三区视频 | 99re在线国产| 狠狠综合久久久综合| 黄色亚洲在线| 国产精品香蕉国产| 亚洲第九十九页| 午夜精品久久久久99热蜜桃导演| 国语对白做受69| 又色又爽又黄无遮挡的免费视频| 青青操综合网| 色综合久久88色综合天天看泰| 毛片在线免费视频| 欧美美女在线直播| 久久福利视频导航| 波多野结衣网站| 国产免费久久| 97国产在线视频| 国产精品久久久久久久成人午夜| 欧美一区二区麻豆红桃视频| 久久久久久国产免费| 一本一道精品欧美中文字幕| 欧美精品尤物在线观看| 蜜臀久久99精品久久久无需会员 | 天堂av资源网| 亚洲免费影院| 精品国产综合| 黄漫在线播放| 久久久久久久久岛国免费| 色视频www在线播放国产成人| 国产一级片网址| 成年永久一区二区三区免费视频| 日韩精品一区二区三区第95| 九九热精品在线观看| 高潮久久久久久久久久久久久久| 久久精品99久久香蕉国产色戒| 亚洲欧美综合另类| 成人一区二区| 国产精品久久久久久久久久尿| 男人午夜视频| 麻豆成人综合网| 亚洲精蜜桃久在线| 草草久视频在线观看电影资源| 国产精品美女久久久久av爽李琼| 毛葺葺老太做受视频| 麻豆视频免费在线观看| 欧美日韩一区二区三区在线| 国产精品国产三级国产专业不 | 欧美特级限制片免费在线观看| 一区二区黄色片| 亚洲国产91视频| 久久国产天堂福利天堂| 99精品在线看| 久久九九免费| 性高潮久久久久久久久| 国产导航在线| 精品欧美激情精品一区| 自拍偷拍亚洲天堂| 亚洲国产视频二区| 98精品国产高清在线xxxx天堂| 免费av一级片| fc2ppv国产精品久久| 亚洲成人久久网| 欧美日韩一级黄色片| 午夜激情一区| 欧美激情第六页| 传媒av在线| 欧美在线free| 久久久www成人免费毛片| 日韩在线看片| 国产精品一区二区在线观看| 日日干天天草| 亚洲国产cao| 中字幕一区二区三区乱码| 久久大胆人体视频| 国产成人精品日本亚洲| 国产叼嘿网站免费观看不用充会员 | 日韩av一二三区| 午夜国产精品视频| 欧美日韩国产免费一区二区三区| 黄页网站视频在线观看| 91国产福利在线| 久操视频免费在线观看| 中文不卡在线| 日韩精品一区二区三区四区五区| 欧美高潮视频| 欧美日韩成人一区二区| 精品成人久久久| 亚洲一区二区| 手机在线观看国产精品| 国产小视频在线| 欧美xxxx老人做受| 在线观看视频中文字幕| 毛片不卡一区二区| 日本一本二本在线观看| 不卡av影片| 久久男人av资源网站| 国产在线观看18| 亚洲欧美激情一区二区| 欧美人与禽zoz0善交| 成人一区而且| 视频一区三区| 黄网页在线观看| 亚洲欧洲一区二区三区久久| 日本xxxxxwwwww| 久久综合色8888| 精品无码人妻少妇久久久久久| 国产美女撒尿一区二区| 91美女高潮出水| 久草在线看片| 精品毛片乱码1区2区3区| 国产乱码精品一区二区三区精东| 国产乱人伦偷精品视频不卡| 国产精品嫩草影院8vv8 | 国产特级嫩嫩嫩bbb| 欧美午夜精品久久久久久孕妇| 亚洲国产综合久久| 欧美一级一区| 韩国日本在线视频| 欧美大陆国产| 成人疯狂猛交xxx| 蜜桃av成人| 日韩精品视频在线| 美女扒开尿口让男人操| 1区2区3区国产精品| 国产麻豆视频在线观看| 亚洲九九精品| 国产男女在线观看| 欧美成人精品午夜一区二区| 亚洲自拍另类欧美丝袜| 深夜福利在线视频| 亚洲偷熟乱区亚洲香蕉av| 中文资源在线官网| 亚洲午夜久久久久中文字幕久| 日本视频www| 韩国午夜理伦三级不卡影院| 中文字幕无人区二| 免费欧美一区| 一区二区三区日韩视频| 忘忧草在线影院两性视频| 国产精品xxxxx| 在线观看国产福利视频| 久久先锋影音av鲁色资源网| 欧美肉大捧一进一出免费视频| 日韩久久久久| 97在线国产视频| 国产亚洲亚洲国产一二区| 国产精品一区视频| 特级毛片在线| 韩国v欧美v日本v亚洲| 大陆一级毛片| 亚洲女成人图区| 91网站观看| 欧美另类videos死尸| 日韩一级中文字幕| 亚洲一区影音先锋| 亚洲精品一区二区二区| 久久综合网色—综合色88| 国产麻豆视频在线观看| 蜜桃视频在线观看一区| 日本黄色录像片| 伊人激情综合| 天天做天天干天天操| 97精品国产一区二区三区| 国产婷婷一区二区三区| 国产精品jk白丝蜜臀av小说| 午夜欧美性电影| 黄色欧美视频| 欧美午夜精品理论片a级大开眼界 欧美午夜精品久久久久免费视 | 青青青草原在线| 麻豆国产精品va在线观看不卡 | 亚洲中文一区二区| 日本一区二区三区免费乱视频 | 欧美夫妻性生活| 中文字幕少妇| 在线观看www91| 天天色综合av| 色欧美片视频在线观看 | 牛牛热在线视频| 欧美精品video| 无线免费在线视频| 久久久女女女女999久久| 小水嫩精品福利视频导航| 欧美极度另类性三渗透| 小明精品国产一区二区三区| 992tv成人免费影院| 岛国大片在线观看| 国产成人在线视频| 麻豆影视在线观看_| 成人性生交大片免费观看嘿嘿视频| 成人av黄色| 91嫩草在线| 韩国成人动漫| 欧美成ee人免费视频| 成人全视频免费观看在线看| 日韩福利二区| 日本超碰一区二区| 日韩一区二区高清视频| 欧美极品中文字幕| 五月婷婷之综合激情| 国产精品theporn| www.日本高清| 精品一区二区三区久久| 亚洲二区在线播放| 久久亚洲精品国产精品紫薇| 国产真人无遮挡作爱免费视频| 亚洲免费在线观看视频| 午夜老司机福利| 欧美日韩一区不卡| 国产寡妇色xxⅹ交肉视频| 日韩高清av一区二区三区| www.大网伊人| 98精品在线视频| 欧美亚洲天堂| 欧美一区二区三区四区夜夜大片| 欧美电影院免费观看| 两根大肉大捧一进一出好爽视频| 一区二区三区四区日韩| 国产又粗又猛又色| 国产成人亚洲精品青草天美| 狠狠人妻久久久久久|