Гироскоп
- Войдите на сайт для отправки комментариев
Втр, 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);
}
Подскажите где тут ошибка или как это можно сделать иначе
Извиняюсь уже разобрался , тема закрыта