02-07-2017, 13:55
Sprawa wygląda tak: programuję Arduino Micro, wszystko gra, dopóki jest podłączone przez kabel usb i dopóki jest włączona aplikacja Arduino na PC. Gdy zamknę aplikację na PC, program przestaje działać. Ktoś wie dlaczego?
P.S: program to tylko przykład, ma działać w ten sposób: obracam czujnikiem wokół jednej z osi w lewo: zapala się jedna dioda, obracam w drugim kierunku: zapala się druga. Gdy przestaję obracać dioda jedna i druga gaśnie.
Testowałem kilka różnych programów znalezionych w Sieci, ale we wszystkich to samo.
Natknąłem się na dwie biblioteki MPU6050, jedna działa druga nie, niestety nie wiem na jakich stronach się znajdowały, w załączniku ta, która na 100% działa.
Jeśli
P.S: program to tylko przykład, ma działać w ten sposób: obracam czujnikiem wokół jednej z osi w lewo: zapala się jedna dioda, obracam w drugim kierunku: zapala się druga. Gdy przestaję obracać dioda jedna i druga gaśnie.
Testowałem kilka różnych programów znalezionych w Sieci, ale we wszystkich to samo.
Natknąłem się na dwie biblioteki MPU6050, jedna działa druga nie, niestety nie wiem na jakich stronach się znajdowały, w załączniku ta, która na 100% działa.
Jeśli
Kod:
#include <Wire.h>
#include <MPU6050.h>
MPU6050 mpu;
int button = 0;
void setup()
{
Serial.begin(115200);
pinMode(15, INPUT);
pinMode(10, OUTPUT);
pinMode(16, OUTPUT);
Serial.println("Inicjalizacja MPU6050");
while(!mpu.begin(MPU6050_SCALE_2000DPS, MPU6050_RANGE_2G))
{
Serial.println("Nie mozna znalezc MPU6050 - sprawdz polaczenie!");
delay(500);
}
mpu.calibrateGyro(); // Kalibracja żyroskopu
mpu.setThreshold(1); // Ustawienie czułości
}
void loop()
{
Vector rawGyro = mpu.readRawGyro();
Vector normGyro = mpu.readNormalizeGyro();
//Serial.print(" Yraw = ");
//Serial.print(rawGyro.YAxis);
//Serial.print(" Zraw = ");
//Serial.println(rawGyro.ZAxis);
Serial.print(" Ynorm = ");
Serial.print(normGyro.YAxis);
Serial.print(" Znorm = ");
Serial.println(normGyro.ZAxis);
if (normGyro.ZAxis > 1) {
digitalWrite(16, HIGH);
}
else{
digitalWrite(16, LOW);
}
if (normGyro.ZAxis < -1) {
digitalWrite(10, HIGH);
}
else{
digitalWrite(10, LOW);
}
//delay(2);
}