код в void loop исполняется снизу вверх
- Войдите на сайт для отправки комментариев
Пнд, 14/03/2016 - 07:10
Добрый день.
Первый раз подключил Arduino Mega2560.
Сразу столкнулся с особенностью: код в void loop исполняется снизу вверх, т.е первым выполняется delay(1000), а последним digitalWrite(shagAPin,LOW). Почему так? Может быть нужно как то настраивать IDE. Или это особенность моей МЕГИ.
Программный код вот такой:
int shagAPin = 2; int shagCPin = 8; void setup() { pinMode(shagAPin,OUTPUT); pinMode(3,OUTPUT); pinMode(shagCPin,OUTPUT); pinMode(5,OUTPUT); } void loop() { digitalWrite(shagAPin,LOW); digitalWrite(shagCPin,HIGH); delay(500); digitalWrite(shagCPin,LOW); digitalWrite(shagAPin,HIGH); delay(1000); }
Добавь Serial.print и убедись, что пишешь бред.
Сразу столкнулся с особенностью: код в void loop исполняется снизу вверх
безобразие - переверни монитор и всё заработает как нужно
О сколько нам открітий чудных, готовит новичек AmorS!
Сразу столкнулся с особенностью: код в void loop исполняется снизу вверх, т.е первым выполняется delay(1000), а последним digitalWrite(shagAPin,LOW). Почему так? Может быть нужно как то настраивать IDE. Или это особенность моей МЕГИ.
Это особенность Вашего понимания процесса :)
Тут Вам правильно сказали - поставьте печать в Serial и убедитесь.
Вы как определяли последовательность исполнения? П свечению светодиодов? Так они у Вас поди "наоборот" подключениы. В смысле, что подключать их можно как угодно, и то и другое правильно, но Вы ожидаете не того, что на самом деле происходит при Вашем подключении.
Если нужно чёткое объяснение процесса, то 1) дайте схему включения диодов и 2) напишите что и в какой последовательности у Вас светится (хотя, последнее я и сам Вам могу написать, если схему включения дадите).
P.S. А вообще, спасибо, настроение с утра на весь день подняли - давно так не смеялся :)
13
{
14
digitalWrite(shagAPin,LOW);
15
digitalWrite(shagCPin,HIGH);
16
delay(500);
17
digitalWrite(shagCPin,LOW);
18
digitalWrite(shagAPin,HIGH);
19
delay(1000);
20
}
void
loop
()
попробуй вот так скомпилировать
Да я сам понимаю что бред!
Но, помогите разобраться по порядку.
отбросим пока void loop...
Дело обстоит так:
Подключаю к МЕГЕ 4-х релейный модуль
5v (Мега) - VCC (релейный модуль)
GND (Мега) - GND (релейный модуль)
pin2 (Мега) - IN1 (релейный модуль)
pin8 (Мега) - IN2 (релейный модуль)
Загружаю в контроллер только вот это:
И срабатывают реле 1 и 2
Почему? Ведь на пинах 2 и 8 еще ничего нет.
Некоторые модули реле включаются низким уровнем LOW, а не высоким HIGH. В ардуине если принудительно не подать высокий уровень (HIGH), то пины по-умолчанию будут с низким уровнем. Вот реле с самого начала и будет включено. А выключаться будет при HIGH.
Хм..
Да, действительно - включается низким уровнем LOW. С роду бы не подумал.
Все. Разобрался.
Спасибо!
"А кина не будет..."
"А кина не будет..."
Жаль, что так быстро, впрочем еще не вечер :)
Хм..
Да, действительно - включается низким уровнем LOW. С роду бы не подумал.
Все. Разобрался.
Спасибо!
А если бы сразу выложил схему подкоючения, как просили, то гораздо меньше времени пудрил бы мозги и себе и людям. Что за манера не давать информации (и даже игнорировать просьбы о ней) и при это рассчитывать на какую-то помощь?
Хм..
Да, действительно - включается низким уровнем LOW. С роду бы не подумал.
Все. Разобрался.
Спасибо!
к стате поподаюся которые включаются высоким.....имей в виду на будующие
А если бы сразу выложил схему подкоючения, как просили, то гораздо меньше времени пудрил бы мозги и себе и людям. Что за манера не давать информации (и даже игнорировать просьбы о ней) и при это рассчитывать на какую-то помощь?
Свое первое Ардуино распаковал только вчера. Заказывал в Китае. Поэтому ожидал всякое.
Прошу прощения за моветон.
Хм..
Да, действительно - включается низким уровнем LOW. С роду бы не подумал.
Все. Разобрался.
Спасибо!
к стате поподаюся которые включаются высоким.....имей в виду на будующие
Свое первое Ардуино распаковал только вчера. Заказывал в Китае. Поэтому ожидал всякое.
Прошу прощения за моветон.
Да, это-то нормально. Просто, когда задаёшь вопрос, надо давать всю информацию и уж тем более, когда о ней попросили. Не заставляйте людеё гадать на кофейной гуще. Это не им, а Вам нужно.
Да, это-то нормально. Просто, когда задаёшь вопрос, надо давать всю информацию и уж тем более, когда о ней попросили. Не заставляйте людеё гадать на кофейной гуще. Это не им, а Вам нужно.
А я еще бы посоветовал, перед тем как задавать вопрос - поискать, почитать, попробовать решить проблему самому. Так интереснее будет и попути можно многому научиться. а так, только вчера купил ардуино, еще ничего не сделал, а уже вопросы на форум сыпать. ИМХО.