28.10.2011, 17:52 | #1 |
Старший Пользователь
Регистрация: 13.05.2010
Возраст: 40
Город: Воронеж
Регион: 36
Машина: Jetta 6
Сообщений: 899
|
HELP!! Arduino
Подскажите пожалуйста как зациклить программу, чтобы она читалась постоянно по кругу?
|
28.10.2011, 17:54 | #2 |
Старший Пользователь
Регистрация: 13.05.2010
Возраст: 40
Город: Воронеж
Регион: 36
Машина: Jetta 6
Сообщений: 899
|
перерыл все...
void loop() { тело программы } вроде это, но программа доходит до конца и не стартует заново |
28.10.2011, 17:57 | #3 |
Старший Пользователь
Регистрация: 13.05.2010
Возраст: 40
Город: Воронеж
Регион: 36
Машина: Jetta 6
Сообщений: 899
|
Другой вопрос, когда на входе появляется HIGH, на выходе тоже HIGH и программа не идет дальше... как только вход переходит в LOW программа начинает выполнятся дальше... что не правильно делаю?
int Vhod=2; //вход int Vihod=13 //выход void setup() { pinMode(VhodPin, INPUT); pinMode(VihodPin,OUTPUT); } if (digitalRead(VhodPin) == HIGH) { digitalWrite(VihodPin, HIGH); delay(100); digitalWrite(VihodPin, LOW); delay(100); digitalWrite(VihodPin, HIGH); delay(100); digitalWrite(VihodPin, LOW); delay(100); } |
28.10.2011, 20:23 | #4 |
Больной. Диагноз "Car PC"
Регистрация: 01.09.2005
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: 08\Acura\MDX •••• 07\Honda\Civic 4D
Сообщений: 4,379
|
Добавил жирным косяки:
// Неудачное название переменных. Отличаются одной буквой, да она еще в середине и не особо видна. // Код становится хреново читаемый, появляется большая вероятность ошибки // Обычно вход именуют от слова input, выход от output. Типа inPin и outPin будет much better int VhodPin=2; //вход int VihodPin=13 //выход void setup() { pinMode(VhodPin, INPUT); pinMode(VihodPin,OUTPUT); } void loop() //эта функция нужна, она собственно и вызывается в цикле { up_dn(); } // Этот код надо оформлять в функцию и вызывать из loop() // правда я не уверен, что ее нужно вызывать в цикле // к примеру: void up_dn() { if (digitalRead(VhodPin) == HIGH) // насколько я понимаю интересует переход из LOW в HIGH, для этого есть функция PulseIn() { digitalWrite(VihodPin, HIGH); delay(100); digitalWrite(VihodPin, LOW); delay(100); digitalWrite(VihodPin, HIGH); delay(100); digitalWrite(VihodPin, LOW); delay(100); } } Вообщем для начала читать: http://www.freeduino.ru/arduino/lang.html и http://arduino.cc/en/Reference/HomePage
__________________
Старый проект Honda Accord RHD Теперь будет Acura MDX 2008 и Honda Civic 4D 2007 и Mitsubishi Outlander XL 2011 |
28.10.2011, 20:47 | #5 |
Старший Пользователь
Регистрация: 13.05.2010
Возраст: 40
Город: Воронеж
Регион: 36
Машина: Jetta 6
Сообщений: 899
|
это скинул пример... void loop() забыл поставить...
вот собственно программа сама... за ссылки спасибо, но уже все давно распечатано и по 1000000 раз штудировано отладку веду в Proteus... когда нажимаю 2 кнопки StartPin и TormPin программа отрабатывает на ура весь цикл до (выделенного красным) потом если нажать кнопку StartPin, то программа все правильно тушит, если нажать сначала TormPin а потом StartPin, то ничего больше не происходит! если корректно все выполнить то она через раз возвращается в начало программы... int StartPin=0; //вход для кнопки start stop engine int TormPin=1; //вход для лягушки педали тормоза int CamPin=2; //вход для камеры заднего вида int ACCPin=8; //выход на реле зажигания АСС int StPin=9; //выход на реле стартера int MBPin=10; //выход на Блок питания ноутбука int RemPin=11; //выход на включение усилителя (remote) int CmPin=12; //выход кнопки переключения камеры заднего вида int RSPin=13; //Выход кнопки для старта ноутбука void setup() { /*Объявляем входы и выходы*/ pinMode(StartPin, INPUT); pinMode(TormPin, INPUT); pinMode(CamPin, INPUT); pinMode(ACCPin, OUTPUT); pinMode(StPin, OUTPUT); pinMode(MBPin, OUTPUT); pinMode(RemPin, OUTPUT); pinMode(CmPin, OUTPUT); pinMode(RSPin, OUTPUT); } void loop() { if (digitalRead(StartPin) == HIGH && digitalRead(TormPin) == HIGH) //сравнение 2 входов { digitalWrite(ACCPin, HIGH); //включаем зажигание delay(150); digitalWrite(StPin, HIGH); //включаем стартер delay(200); digitalWrite(StPin, LOW); //выключаем стартер через 10 сек delay(50); digitalWrite(MBPin, HIGH); //Подаем напряжение на блок питания ноутбука delay(40); digitalWrite(RSPin, HIGH); //нажатие кнопки ноутбука delay(20); digitalWrite(RSPin, LOW); //отпускаем кнопку delay(1200); digitalWrite(RemPin, HIGH); //remote усилителя } if (digitalRead(StartPin) == HIGH) //сравниваем значение кнопки { digitalWrite(ACCPin, LOW); //выключаем АСС delay(100); digitalWrite(RemPin, LOW); //Усилители digitalWrite(RSPin, HIGH); //кнопка ноутбука delay(100); digitalWrite(RSPin, LOW); //отпускаем delay(1200); digitalWrite(MBPin, LOW); //глушим блок питания бука } } |
28.10.2011, 20:48 | #6 |
Старший Пользователь
Регистрация: 13.05.2010
Возраст: 40
Город: Воронеж
Регион: 36
Машина: Jetta 6
Сообщений: 899
|
if (digitalRead(VhodPin) == HIGH) // насколько я понимаю интересует переход из LOW в HIGH, для этого есть функция PulseIn()
если честно интересует немного другое... а именно авто переключение на камеру заднего вида... но как заставить выполняться программу когда она стопорится пока на входе HIGH, как писал выше... |
28.10.2011, 21:36 | #7 | |
Больной. Диагноз "Car PC"
Регистрация: 01.09.2005
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: 08\Acura\MDX •••• 07\Honda\Civic 4D
Сообщений: 4,379
|
Цитата:
Пример можно посмотреть тут. И вообще, на компкаре по ардуино много интерестного, целый раздел с подразделами.
__________________
Старый проект Honda Accord RHD Теперь будет Acura MDX 2008 и Honda Civic 4D 2007 и Mitsubishi Outlander XL 2011 |
|
28.10.2011, 21:36 | #8 |
Старший Пользователь
Регистрация: 21.10.2009
Возраст: 46
Город: Киселевск
Регион: 42
Машина: Kia Sorento 2.5TD AT TOD LSD
Сообщений: 524
|
Попробуй вот так:
PHP код:
__________________
Планшет на Android -> USB-DAC (PCM2704 - SPDIF) -> Clarion HX-D2 -> Helix H500 Esprit -> Dynaudio MD100 + Миды из комплекта Pioneer TS-C131 PRS, доработанные Михаилом Nitro + Hertz F20 + Alpine PDX-1.600 + Auditor RIP 380. |
28.10.2011, 21:37 | #9 | |
Старший Пользователь
Регистрация: 13.05.2010
Возраст: 40
Город: Воронеж
Регион: 36
Машина: Jetta 6
Сообщений: 899
|
Цитата:
|
|
28.10.2011, 21:38 | #10 |
Больной. Диагноз "Car PC"
Регистрация: 01.09.2005
Возраст: 51
Город: Москва
Регион: 77, 97, 99, 177
Машина: 08\Acura\MDX •••• 07\Honda\Civic 4D
Сообщений: 4,379
|
Программа не может взять и остановиться
Она может зациклится или тупо стоять и ждать определенного события (считай тот же цикл).
__________________
Старый проект Honda Accord RHD Теперь будет Acura MDX 2008 и Honda Civic 4D 2007 и Mitsubishi Outlander XL 2011 |
Здесь присутствуют: 1 (пользователей: 0 , гостей: 1) | |
|
|