Гироскоп
- Войдите на сайт для отправки комментариев
Втр, 08/10/2013 - 13:59
Подскажите пожалуйста как запустить год с гироскопам
Если нажимаем раз в секунду диод горит постоянно если не нажимаем он гаснет
Тут вроде всё работает хорошо
<BR><BR><BR> int Knopka = 12; int LED = 13; int flag9=1; void setup() { Serial.begin(9600); pinMode(Knopka, INPUT); pinMode(LED, OUTPUT); } void loop() { Serial.println(100); delay(100); static uint32_t millis_start1 = 0; if(digitalRead(Knopka)==HIGH&&flag9==1) { analogWrite(LED, 255); delay(30); flag9=0; } if(digitalRead(Knopka)==HIGH&&flag9==0) millis_start1 = millis(); delay(30); if(millis_start1 && millis()-millis_start1 >= 900) { millis_start1 = 0; analogWrite(LED, 0); flag9=1; } }
Но когда пытаюсь провернуть это с гироскопам программа работает не стабильно
Наклоняешь гироскоп в лево диод загорелся , наклоняешь в право диод горит не гаснет
Суть кода такова если наклоняешь гироскоп в лево раз в секунду диод не гаснет
int LED = 13; int flag9=1; int ledPin22 =22; int z; int pinZ = 0; void setup() { Serial.begin(9600); pinMode(ledPin22, OUTPUT); pinMode(LED, OUTPUT); pinMode(pinZ, INPUT); digitalWrite(ledPin22, HIGH); } void loop() { z = analogRead(pinZ); Serial.println(100); delay(100); static uint32_t millis_start1 = 0; if((z>0)&&(z<320)&&flag9==1) { analogWrite(LED, 255); Serial.print("HIGH"); delay(100); flag9=0; } if((z>321)&&(z<400)&&flag9==0) millis_start1 = millis(); delay(300); if(millis_start1 && millis()-millis_start1 >= 2000) { millis_start1 = 0; analogWrite(LED, 0); Serial.println("LOW"); flag9=1; } Serial.print(" Z="); Serial.println(z); }
Подскажите где тут ошибка или как это можно сделать иначе
Извиняюсь уже разобрался , тема закрыта