itar. вы настолько криворукий. что даже готовый код не в состоянии использовать?
Для наглядности добавил вывод в Сериал:
const int ledPin = 13;
int State = LOW;
unsigned long previousMillis;
const long interval_1 = 1000;
const long interval_2 = 2000;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis ( );
if ( State == LOW ) {
if ( currentMillis - previousMillis >= interval_1 ) {
previousMillis = currentMillis;
State = HIGH;
Serial.print(" Go to High ");
Serial.println(currentMillis);
digitalWrite (ledPin, State );
}}
if ( State == HIGH ) {
if ( currentMillis - previousMillis >= interval_2 ) {
previousMillis = currentMillis;
State = LOW;
Serial.print(" Go to Low ");
Serial.println(currentMillis);
digitalWrite ( ledPin, State );
}
}
}
А вот результат работы
Go to High 1000
Go to Low 3000
Go to High 4000
Go to Low 6000
Go to High 7000
Go to Low 9000
Go to High 10000
вот в таком виде действительно получилось,то что и требовалось.
const int ledPin = 13;
int State = LOW;
unsigned long previousMillis;
const long interval_1 = 10000;
const long interval_2 = 1000;
void setup() {
pinMode(ledPin, OUTPUT);
Serial.begin(9600);
}
void loop() {
unsigned long currentMillis = millis ( );
if ( State == LOW ) {
if ( currentMillis - previousMillis >= interval_1 ) {
previousMillis = currentMillis;
State = HIGH; //потушили
Serial.print(" Go to High ");
Serial.println(currentMillis);
digitalWrite (ledPin, State );
}}
if ( State == HIGH ) {
if ( currentMillis - previousMillis >= interval_2 ) {
previousMillis = currentMillis;
State = LOW; //включили
Serial.print(" Go to Low ");
Serial.println(currentMillis);
digitalWrite ( ledPin, State );
Вышел я из возраста, на слабО и писькометрии. Любой, желающий поплеваться желчью, может это сделать, если хотя-бы равен оппоненту по уровню. А Архатовщина, еще два года назад достала. В результате оставил код от Петра.
Влад, твой последний пост тоже зачистил, захочет разобраться, сам найдет. ИМХО.
Написал проверочный код. Самые первые действия идут через 40, 60, 80 мс, а дальше каждое действие строго через 100 мс.
При переполнении currMillis интервалы сохраняют свое значение в 100 мс.
Где кошмар??
Спасибо. Это важное замечание, особенно если требуется строгая очередность действий.
В проверочном коде выше я специально оставил как есть, чтоб видно было.
вот целиком
вот целиком
Работает.
Вот такой код тоже работает.
itar. вы настолько криворукий. что даже готовый код не в состоянии использовать?
Для наглядности добавил вывод в Сериал:
А вот результат работы
Вот такой код тоже работает.
не забудьте только правильно указать типы данных - а то ТС сам не справится. У него, заметьте - интервал типа long
Если наоборот.
вот в таком виде действительно получилось,то что и требовалось.
Спасибо.
Если наоборот.
вот в таком виде действительно получилось,то что и требовалось.
Ну слава богу - заказчик принял работу :)
itar, так в чем выражалось "не работает" ? - то что я в примере поставил интервал 2 сек вместо нужных Вашему Сиятельству 10-ти? :)
Офигеть - уже и значения констант в готовом скетче сами поменять не могут.
Офигеть - уже и значения констант в готовом скетче сами поменять не могут.
Не царское это дело! Взялся, так будь любезен не халтурить, а выставлять все константы как надо! Совсем помогатели распустились, блин!
я не знаю почему вариант ven-tilа не работал . светодиод просто горел.
я не знаю почему вариант ven-tilа не работал
причем тут вариант ven-tilа - я спрашиваю про свой код - который ваш скетч из #51
Столько агрессии.я же не утверждал, что я специалист.
приобрел плату месяц назад, это весь мой опыт.
ваш код работал .только я местами поменял интервалы и все.
Столько агрессии.я же не утверждал, что я специалист.
приобрел плату месяц назад, это весь мой опыт.
Они тут такие.

всего пару дней поплевали. Зато результат.
И на том спасибо.
всего пару дней поплевали. Зато результат.
И на том спасибо.
Просто кто-то наплевательски отнесся к вразумительной подаче ответов.
Часто так строю loop()
Часто так строю loop()
Спасибо за пример. Маленькое замечание. У вас нумерация действий идет в обратном порядке. Сначала выполнится 3 потом 2 потом 1.
И получаешь не пропуски так повторы. Кошмар.
И получаешь не пропуски так повторы. Кошмар.
rkit, почему кошмар? Обычный быдлокод ардуинщика.
Сейчас проверить не могу, покажи, если не трудно, код где видны пропуски и повторы.
Вышел я из возраста, на слабО и писькометрии. Любой, желающий поплеваться желчью, может это сделать, если хотя-бы равен оппоненту по уровню. А Архатовщина, еще два года назад достала. В результате оставил код от Петра.
Влад, твой последний пост тоже зачистил, захочет разобраться, сам найдет. ИМХО.
можно и через миллис, но нужно ли?
{
digitalWrite(LED,HIGH);
delay(1000);
digitalWrite(LED,LOW);
delay(10000);
}
И получаешь не пропуски так повторы. Кошмар.
Написал проверочный код. Самые первые действия идут через 40, 60, 80 мс, а дальше каждое действие строго через 100 мс.
При переполнении currMillis интервалы сохраняют свое значение в 100 мс.
Где кошмар??
Маленькое замечание. У вас нумерация действий идет в обратном порядке. Сначала выполнится 3 потом 2 потом 1.
Спасибо. Это важное замечание, особенно если требуется строгая очередность действий.
В проверочном коде выше я специально оставил как есть, чтоб видно было.
Я бы таким как ты пасть зашивал, чтобы лаял меньше