Доброе время суток. Имеется сабжевый гироскоп, подключенный к Pro Mini 3.3V 8 MHz (пробовал также 5V 16 mHz). Подключение аналогичное этой схеме Код примерно такой Код (C++): #include<Wire.h> int i=0; const int MPU_addr=0x68; int16_t AcX,AcY,AcZ,Tmp,GyX,GyY,GyZ; void setup() { Wire.begin(); Wire.beginTransmission(MPU_addr); Wire.write(0x6B); Wire.write(0); Wire.endTransmission(true); pinMode (13,OUTPUT); digitalWrite(13,LOW); Serial.begin(9600); } void loop() { Wire.beginTransmission(MPU_addr); Wire.write(0x3B); // starting with register 0x3B (ACCEL_XOUT_H) Wire.endTransmission(false); Wire.requestFrom(MPU_addr,14,true); // request a total of 14 registers AcX=Wire.read()<<8|Wire.read(); // 0x3B (ACCEL_XOUT_H) & 0x3C (ACCEL_XOUT_L) AcY=Wire.read()<<8|Wire.read(); // 0x3D (ACCEL_YOUT_H) & 0x3E (ACCEL_YOUT_L) AcZ=Wire.read()<<8|Wire.read(); // 0x3F (ACCEL_ZOUT_H) & 0x40 (ACCEL_ZOUT_L) Tmp=Wire.read()<<8|Wire.read(); // 0x41 (TEMP_OUT_H) & 0x42 (TEMP_OUT_L) i=AcZ/100; if (i<150) { Serial.println(" EMERGENCY!!!! "); Serial.println(AcZ/100); Serial.println(AcY/100); Serial.println(AcX/100); digitalWrite(13,HIGH); delay (500); digitalWrite(13,LOW); delay(500); } } смысл в чем - в горизонтальном положении i равно 150-152, при малейшем отклонении на любую ось значение i уменьшается, при этом выдается соответствующее сообщение в Serial,+ мыргает ламочка, и как только гироскоп возвращается в горизонталь - ламочка тухнет. Так вот - это все идеально работает, когда ардуина подключена к USB - все просто изюмительно. Но если подключить ардуину к батарейке (+ на RAW и - на GND) - то гироскоп не отрабатывает (сразу начинает моргать лампочкой, как будто значение i меньше 150. Подключенный "на горячую" разъем USB показывает, что значение i=0). При этом если стартовать через USB, потом подключить батарею, и потом отключить USB - то все работает корректно. В чем может быть затык?
Вопрос снят. Дело было не в батарейке и не в пайке. Оказалось, что почему-то не сбрасывался гироскоп после отключения и обратного включения питания от батареи. Если после включения от батареи нажать ресет - то потом все корректно работает. Добавил функцию программного ресета в код - все заработало.