Перезапуск светофора по кнопке

PrimaWEB
Offline
Зарегистрирован: 07.07.2019

Всем привет. Сделал светофорчик простой. Перезапуск производится по кнопке ресет. Все нормально кроме одного - перезапускается не только ардуинка с кодом, но и релюхи (у меня лампы включаются через реле). Соответственно в момент перезапуска загораются обе лампы. Как сделать чтобы запускать программу не перезапуская ардуино, а отдельной кнопкой так и не осилил, я еще совсем сырой в этом деле. Может подскажет кто? Заранее благодарен.

int led_red1 = 2;                        красный светодиод подключен к пину 2
int led_green = 9;                 зеленый светодиод подключен к пину 9

void setup() {

 прописываем пины, к которым подключены светодиоды, как выходные

pinMode(led_red1, OUTPUT);
pinMode(led_green, OUTPUT);

}

void loop() {

digitalWrite(led_red1, HIGH);                    включить красный светодиод
delay(5000);                                                 подождать одну секунду
digitalWrite(led_red1, LOW);                     выключить красный светодиод
digitalWrite(led_green, HIGH);                включить зеленый светодиод
delay(1000);                                                 подождать одну секунду
digitalWrite(led_green, LOW);                 выключить зеленый светодиод
exit(0);   остановить цикл loop до ресета
}

 

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015

PrimaWEB пишет:

exit(0);   остановить цикл loop до ресета

А чё, так можно было?

PrimaWEB
Offline
Зарегистрирован: 07.07.2019

qwone пишет:

#258

Спасибо, но не осилил.

ЕвгенийП пишет:

PrimaWEB пишет:

exit(0);   остановить цикл loop до ресета

А чё, так можно было?

Ну работает, наверное можно было)) Пока так не прописал цикл крутился безостановочно.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

Вообще-то в сообщении №2 была подсказка ответа на Ваш вопрос. Но, похоже, Вы этого не поняли.

Попытайтесь отчетливо сформулировать:

1. Как Вы хотите, чтобы работал скетч.

2. Как на самом деле работает скетч.

3. Чем первое отличается от второго.

PrimaWEB
Offline
Зарегистрирован: 07.07.2019

andriano пишет:

Вообще-то в сообщении №2 была подсказка ответа на Ваш вопрос. Но, похоже, Вы этого не поняли.

Попытайтесь отчетливо сформулировать:

1. Как Вы хотите, чтобы работал скетч.

2. Как на самом деле работает скетч.

3. Чем первое отличается от второго.

Вроде по русски написано. Сейчас цикл перезапускается ресетом, хотел перезапускать кнопкой (не ресетом). В общем не парьтесь, я уже не только разобрался со скетчем, но у спаял и скрутил все в корпусе.

Green
Offline
Зарегистрирован: 01.10.2015

ЕвгенийП пишет:

PrimaWEB пишет:

exit(0);   остановить цикл loop до ресета

А чё, так можно было?

Оказывается да.) Вон чего люди пишут:
"Это не опубликовано на Arduino.cc, но вы можете фактически выйти из цикла с простым выходом (0); Это будет скомпилировано практически на любой плате, имеющейся в вашем списке. Я использую IDE 1.0.6. Я тестировал его с помощью Uno, Mega, Micro Pro и даже брелка Adafruit."
Партизаны, однако.)

Да, вот только из цикла не выходит и рестарт не делает.

andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

PrimaWEB пишет:

Вроде по русски написано.

Не факт

Цитата:

Сейчас цикл перезапускается ресетом, хотел перезапускать кнопкой (не ресетом). В общем не парьтесь, я уже не только разобрался со скетчем, но у спаял и скрутил все в корпусе.

Ну и замечательно!

Именно для того, чтобы у Вас была возможность разобраться самостоятельно, Вам и были даны наводящие вопросы вместо прямых ответов.

PrimaWEB
Offline
Зарегистрирован: 07.07.2019

Цитата:

Ну и замечательно!

Именно для того, чтобы у Вас была возможность разобраться самостоятельно, Вам и были даны наводящие вопросы вместо прямых ответов.

В том что я разобрался самостоятельно, заслуга этого форума нулевая)) Он только отвлекал меня от поиска решения и пайки))

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

PrimaWEB пишет:

В том что я разобрался самостоятельно, заслуга этого форума нулевая)) Он только отвлекал меня от поиска решения и пайки))

Так и нехрен было всякий бред постить. Только отвлекал нас от порнхаба.

PrimaWEB
Offline
Зарегистрирован: 07.07.2019

Ворота пишет:

PrimaWEB пишет:

В том что я разобрался самостоятельно, заслуга этого форума нулевая)) Он только отвлекал меня от поиска решения и пайки))

Так и нехрен было всякий бред постить. Только отвлекал нас от порнхаба.

Зря ты так. Мой код можно было приспособить для управления механической рукой и освободить руки собственные при просмотре порнхаба. Очень удобно - писюлька теребенькается как обычно, но механической рукой, а своими можно вырезать тёток из Хастлера))

Гриша
Offline
Зарегистрирован: 27.04.2014

PrimaWEB пишет:

Всем привет. Сделал светофорчик простой. Перезапуск производится по кнопке ресет

int led_red1 = 2;                        красный светодиод подключен к пину 2
int led_green = 9;                 зеленый светодиод подключен к пину 9

void setup() {

 прописываем пины, к которым подключены светодиоды, как выходные

pinMode(led_red1, OUTPUT);
pinMode(led_green, OUTPUT);

}

void loop() {

digitalWrite(led_red1, HIGH);                    включить красный светодиод
delay(5000);                                                 подождать одну секунду
digitalWrite(led_red1, LOW);                     выключить красный светодиод
digitalWrite(led_green, HIGH);                включить зеленый светодиод
delay(1000);                                                 подождать одну секунду
digitalWrite(led_green, LOW);                 выключить зеленый светодиод
exit(0);   остановить цикл loop до ресета
}

 

вы кнопку ресет вытащили с платы? для перезапуска?!!! 

delay(5000); подождать одну секунду   - строка 16... может это и очипятка, но с такими  delay кнопки вообще никогда не дружат. сам МК с delay плохо дружит (в плане работы) он тока отдыхает и ничерта не делает...

переходите на Мигаем светодиодом без delay() сперва без кнопки

PrimaWEB
Offline
Зарегистрирован: 07.07.2019

Цитата:

вы кнопку ресет вытащили с платы? для перезапуска?!!! 

К кнопке припаивается два провода и она "вытаскивается" хоть на километр

Цитата:

delay(5000); подождать одну секунду   - строка 16... может это и очипятка, но с такими  delay кнопки вообще никогда не дружат. сам МК с delay плохо дружит (в плане работы) он тока отдыхает и ничерта не делает...

переходите на Мигаем светодиодом без delay() сперва без кнопки

Строка 16 ничего не меняет. Просто забыл изменить подсказку. Да, когда придет нужда, перейду на код без дилея, пока дилей мне совершенно не мешает. Спасибо

sadman41
Offline
Зарегистрирован: 19.10.2016

PrimaWEB пишет:

Мой код можно было приспособить для управления механической рукой 

А вы не из СПб случаем, с Арнольдом не знакомы?

PrimaWEB
Offline
Зарегистрирован: 07.07.2019

sadman41 пишет:

PrimaWEB пишет:

Мой код можно было приспособить для управления механической рукой 

А вы не из СПб случаем, с Арнольдом не знакомы?

К сожалению нет, не из СПб. А с Арнольдом тоже нет, но уже наверное к счастью, исходя из контекста)))

Ворота
Ворота аватар
Offline
Зарегистрирован: 10.01.2016

PrimaWEB пишет:
Мой код можно было приспособить для управления механической рукой и освободить руки собственные при просмотре порнхаба.
Не, это ты своё хозяйство своему коду доверяй. Я как-нибудь, ... не сертифицирован твой код под такие задачи.