Ви не увійшли.
Я решил для себя сделать на ардуино управление. Согласен, что подход не очень. Но он на уровне моих знаний языка
Richi, мне сказать просто нечего.
вопрос не по теме
а где Вы планируете работать? или уже работаете ?
Разобрался. Спасибо всем не равнодушным!
/*
* Моя программа 004.2
*/
int sensePin = 4;
int ledPin = 10;
int val;
void setup()
{
analogReference(DEFAULT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void loop()
{
val = analogRead(sensePin);
if (val >= 500) digitalWrite(ledPin, HIGH);
else
{
for (int x=0; ((x<2) && (val<500)); x++)
{
digitalWrite(ledPin, HIGH);
delay(1000);
val = analogRead(sensePin);
}
digitalWrite(ledPin, LOW);
if (val<500)
{
for (int y=0; ((y<30) && (val<500)); y++)
{
digitalWrite(ledPin, LOW);
delay(1000);
val = analogRead(sensePin);
}
for (int z=0; ((z<4) && (val<500)); z++)
{
digitalWrite(ledPin, HIGH);
delay(1000);
val = analogRead(sensePin);
}
digitalWrite(ledPin, LOW);
}
}
}
спасибо,
постараюсь исправится.
Спасибо! Буду смотреть.
Надо было с начала так помочь.
мой пример не работает?
"Что я не так с for делаю понять бы." да все так, но вам бы дочитать книгу "Язык программирования С++" Бьерн Страуструп
да с 10ток проектов на gite просмотреть, чуток поcложнее чем примеры на arduino.cc
успеха.
1сек. нормально. С Вашим я пока не могу разобраться почему не работает.
Что я не так с for делаю понять бы.
взял на себя смелость подправить алгоритм
не будете ли так любезны, проверить как работает
1 сек - предположу, что лишнее, слишком долго
По условию val не выпрыгивает из цикла.
Подскажите плиз, что не так?
/*
* Моя программа 004 и моя v 0.02
*/
int sensePin = 4;
int ledPin = 10;
int val;
int ret;
void setup()
{
analogReference(DEFAULT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
int delay_control (unsigned long time )
{
unsigned long foo;
for ( foo =0; foo < time; foo +=10)
{
val = analogRead(sensePin);
if ( val >= 500 ) return val;
delay_control( 10 );
}
return 0;
}
void loop()
{
val = analogRead(sensePin);
if (val >= 500) digitalWrite(ledPin, HIGH);
else
{
ret = 0;
foo = 0;
for ( ; ; foo++)
{
switch (foo%4)
{
case 0: digitalWrite(ledPin, HIGH); ret = delay_control(2*1000 ); break;
case 1: digitalWrite(ledPin, LOW); ret = delay_control(30*1000); break;
case 2: digitalWrite(ledPin, HIGH); ret = delay_control(4*1000 ); break;
case 3: digitalWrite(ledPin, LOW); ret = delay_control(1*1000 ); break;
}
if ( ret > 0 ) break;
}
}
}
Да! На любом этапе, с интервалом 1сек.
аааааа. я догнал, вот же я тормоз, сразу не понял
пока лампочки "блымкают" нужно контролировать ногу?
я в такие танцы не танцую ) Вы как нибуть сами ) ибо я ничего не понял (
Спасибо за ответ. Но лишних тело движений не было.
Если ВАЛ больше 500 цикл должен не выполняться. И вот если цикл начал выполнение, переменная ВАЛ не выводит из цикла
убрал с Вашего кода лишние телодвижения, а куда программа должна "выпрыгнуть"?
val всегда больше 500 или меньше, нихчего не понять (
/*
* Моя программа 004 и моя v 0.01
*/
int sensePin = 4;
int ledPin = 10;
int val;
int foo;
void setup()
{
analogReference(DEFAULT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void loop()
{
val = analogRead(sensePin);
if (val >= 500) digitalWrite(ledPin, HIGH);
else
{
digitalWrite(ledPin, HIGH); delay(2*1000 );
digitalWrite(ledPin, LOW); delay(30*1000);
digitalWrite(ledPin, HIGH); delay(4*1000 );
digitalWrite(ledPin, LOW);
}
}
По условию val не выпрыгивает из цикла.
Подскажите плиз, что не так?
/*
* Моя программа 004
*/
int sensePin = 4;
int ledPin = 10;
void setup()
{
analogReference(DEFAULT);
pinMode(ledPin, OUTPUT);
digitalWrite(ledPin, LOW);
}
void loop()
{
int val = analogRead(sensePin);
if (val >= 500) digitalWrite(ledPin, HIGH);
else
{
for (int x=0; ((x<2) && (val<500)); x++)
{
digitalWrite(ledPin, HIGH);
delay(1000);
}
digitalWrite(ledPin, LOW);
if (val<500)
{
for (int y=0; ((y<30) && (val<500)); y++)
{
digitalWrite(ledPin, LOW);
delay(1000);
}
for (int z=0; ((z<4) && (val<500)); z++)
{
digitalWrite(ledPin, HIGH);
delay(1000);
}
digitalWrite(ledPin, LOW);
}
}
}