Robofun 機器人論壇

 找回密碼
 申請會員
搜索
熱搜: 活動 交友 discuz
查看: 2236|回復: 7
打印 上一主題 下一主題

arduino+感測器問題

[複製鏈接]
跳轉到指定樓層
1#
發表於 2016-3-22 15:57:41 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
前輩們好
小弟有個問題想請教

當我使用 arduino + MPU6050     如果透過電腦序列埠monitor 值很正常有跑出來

但有問題的地方是  當如果我將arduino 改為靠著行動電源供電5V    發現感測器的值就出不來了


想請教一下前輩們,問題出在哪邊??      


感激不盡!!


附上程式碼


#include<Servo.h>
#include "I2Cdev.h"
#include "MPU6050.h"
#include "Wire.h"


Servo m1;
Servo m2;
Servo m3;
Servo m4;
int throttlePin = 0;
long LastTime, NowTime, TimeSpan;
float Ax,Ay,Az;
float X,Y,Z; // angle from acclerometer
float Gyro_x, Gyro_y,Gyro_z;// angle accleration from gyro sensor
float ix,iy,iz;// angle from gryo sensor
float Roll,Pitch,Yaw;//Position
const float Kp = 0.5, Ki = 0.00, Kd = 0.00;
float Turn;


MPU6050 accelgyro;


int16_t ax, ay, az;
int16_t gx, gy, gz;


void setup()
{
Wire.begin();
Serial.begin(9600);
accelgyro.initialize();
m1.attach(8);
m2.attach(9);
m3.attach(10);
m4.attach(11);
}


void loop()
{
  int throttle = analogRead(throttlePin);
  throttle = map(throttle, 0, 1023, 0, 179);
  angle();


  Turn = Kp * Roll;


  m1.write(throttle + Turn);
  m2.write(0);
  m3.write(0);
  m4.write(throttle - Turn);
}


void angle(){
  accelgyro.getMotion6(&ax, &ay, &az, &gx, &gy, &gz);


  Ax = ax/16384.00;
  Ay = ay/16384.00;
  Az = az/16384.00;
  X = atan(Ax/sqrt(Az*Az+Ay*Ay))*180/PI; //angle from accelermeter
  Y = atan(Ay/sqrt(Az*Az+Ax*Ax))*180/PI;
  Z = atan(Az/sqrt(Ax*Ax+Ay*Ay))*180/PI;


  Gyro_x = gx/131.00+6; // get angle acceleration
  Gyro_y = gy/131.00;
  Gyro_z = gz/131.00;


  NowTime = millis(); //star to count time
  TimeSpan = NowTime - LastTime; //count time pass
  ix = 0.95*(ix + Gyro_x*TimeSpan / 1000) + 0.05*Y; // position count by Complementary Filter
  iy = 0.94*(iy + Gyro_y*TimeSpan / 1000) + 0.06*X;
  LastTime = NowTime;
  Roll = ix - 1.44500;
  Pitch = iy - 3.4;


  if(Roll >= 1 || Roll <=-1){Roll = Roll;}
  else{Roll = 0;}




  Serial.print("Roll :");
  Serial.print(Roll);
  Serial.print("Pitch :");
  Serial.println(Pitch);


}
2#
發表於 2016-3-22 17:12:26 | 只看該作者
行動電源是應該接 ARDUINO 的 5v , 而不是 Vin
一般 arduino 的 Vin 必須提供 6~12V
3#
 樓主| 發表於 2016-3-22 18:06:21 | 只看該作者
前輩您好

我是使用行動電源透過USB供電


而目前我有換其他的程式碼試試看有沒有感測器的值

結果換其它的程式碼後,是有值跑出來的
這是不是程式碼出了什麼問題??
4#
發表於 2016-3-22 19:14:58 | 只看該作者
用笨一點的方法1.看mpu6050模塊 規格表 輸入電壓要求。

2.用電表量通到mpu6050的電壓是多少?

3.重複2.,當接usb時是多少?
5#
發表於 2016-3-23 08:17:25 | 只看該作者
>>發現感測器的值就出不來了
這句話很奇怪, 如果插著行動電源
那怎麼透過 USB 去監視感測器的值?
你是用那個型號 的 Arduino ?
6#
 樓主| 發表於 2016-3-23 11:33:17 | 只看該作者
我如果是採用行動電源的話   
當下是採用mega 2560 搭配xbee輸出值來看是否有數據
7#
發表於 2016-3-23 16:01:10 | 只看該作者
那如果是接 USB
也是搭配xbee輸出值來看是否有數據嗎?
8#
 樓主| 發表於 2016-3-25 14:57:08 | 只看該作者
如果是搭配 電腦USB PORT + XBEE   是有數據的
您需要登錄後才可以回帖 登錄 | 申請會員

本版積分規則

小黑屋|手機版|Archiver|機器人論壇 from 2005.07

GMT+8, 2024-5-5 16:28 , Processed in 0.136753 second(s), 7 queries , Apc On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回復 返回頂部 返回列表