Реализация релейной схемы на ардуино
- Войдите на сайт для отправки комментариев
Сб, 12/08/2017 - 15:16
int KHPUSK = 3;
int KHSTOP = 4;
int L1 = 13;
void setup() {
pinMode (KHPUSK,INPUT);
pinMode (KHSTOP,INPUT);
pinMode (L1,OUTPUT);
}
void loop() {
if (digitalRead(KHPUSK) == HIGH && L1 == LOW || L1 == HIGH);
{
digitalWrite (L1, HIGH);
}
else (digitalRead(KHSTOP) == HIGH && L1 == HIGH || L1 == LOW);
{
digitalWrite (L1, LOW);
}
}
Ребят, почему не работает и выдаёт ошибку при компиляции ?
Arduino: 1.8.3 (Windows XP), Плата:"Arduino/Genuino Uno"
C:\Documents and Settings\Admin\Рабочий стол\Arduino\SKETHC\PUSK_STOP\sketch_aug09a\sketch_aug09a.ino: In function 'void loop()':
sketch_aug09a:17: error: 'else' without a previous 'if'
exit status 1
'else' without a previous 'if'
Наверно потому что вы программы пишете с ошибками. А компилятор не может тогда компилировать
/**/ //-------------------------------------- //---------Компановка----------------------------- const byte KHPUSK = 3; const byte KHSTOP = 4; const byte L1 = 13; //-----main()--------------------------------- void setup() { pinMode (KHPUSK, INPUT); pinMode (KHSTOP, INPUT); pinMode (L1, OUTPUT); } void loop() { if (digitalRead(KHPUSK) == HIGH && L1 == LOW || L1 == HIGH) { digitalWrite (L1, HIGH); } else if (digitalRead(KHSTOP) == HIGH && L1 == HIGH || L1 == LOW) { digitalWrite (L1, LOW); } } /*Скетч использует 836 байт (2%) памяти устройства. Всего доступно 32256 байт. Глобальные переменные используют 9 байт (0%) динамической памяти, оставляя 2039 байт для локальных переменных. Максимум: 2048 байт. */Да я только начал изучать, сильно не бейте ) в основном работаю с релейными схемами и PLC
Да я только начал изучать, сильно не бейте ) в основном работаю с релейными схемами и PLC
Как вариант посмотрите эту тему. http://arduino.ru/forum/programmirovanie/klassy-arduino-po-qwone-dlya-chainikov
Может не все будет понятно. Но там есть работающие скетчи и что-то вам поможет упростить написание программ.
Да, он ваш вариант проглотил, но всё равно не происходит того чего я ожидал...
Я хотел написать простейшую схемку включения лампочки с одной кнопки и выключения с другой. Не подскажите почему нечего не работает в таком виде ?
Ну вы наверное просто забыли что такое дребезг. Это когда кнопки при включении и выключении идет пакет импульсов.
Ну вы наверное просто забыли что такое дребезг. Это когда кнопки при включении и выключении идет пакет импульсов.
чем ему дребег помешает включать одной, а выключать другой кнопкой?
пять раз выключит или двадцать раз включит? - да и хер с ним.
Ну вы еще много не знаете. Это как сантехник решил занятся работой электрика и думает , что главное что бы не было протечек.
/**/ //-------------------------------------- //---------Компановка----------------------------- const byte btnStartPin = 3; const byte btnStopPin = 4; const byte LedPin = 13; bool Led; //-----main()--------------------------------- void setup() { pinMode (btnStartPin, INPUT); pinMode (btnStopPin, INPUT); pinMode (LedPin, OUTPUT); Led = LOW; digitalWrite (LedPin, Led); } void loop() { if (digitalRead(btnStartPin) == HIGH && Led == LOW) { Led = HIGH; digitalWrite (LedPin, Led); } else if (digitalRead(btnStopPin) == HIGH && Led == HIGH) { Led = LOW; digitalWrite (LedPin, Led); } } /*Скетч использует 1000 байт (3%) памяти устройства. Всего доступно 32256 байт. Глобальные переменные используют 10 байт (0%) динамической памяти, оставляя 2038 байт для локальных переменных. Максимум: 2048 байт. */У вас кнопки висят на питании. Вы хоть резисторы подтяжки на землю повесили.
Я конечно сильно извинияюсь что влезаю в вашу беседу о дребезге, но зачем в IF-ах странные проверки типа "L1==LOW"?
UPD Ну что за привычка у всех взялась в последнее время прямо перед моим постом новые писать :(
del
int KHPUSK = 3; int KHSTOP = 4; int L1 = 13; void setup() { pinMode (KHPUSK,INPUT_PULLUP); pinMode (KHSTOP,INPUT_PULLUP); pinMode (L1,OUTPUT); } void loop() { if (digitalRead(KHPUSK) == 0) digitalWrite (L1, HIGH); if (digitalRead(KHSTOP) == 0) digitalWrite (L1, LOW ); }Я конечно сильно извинияюсь что влезаю в вашу беседу о дребезге, но зачем в IF-ах странные проверки типа "L1==LOW"?
низачем
Собрано нормально. С выхода кнопки через резистор 1.5кОм на землю параллельно входу.
int KHPUSK = 3; int KHSTOP = 4; int L1 = 13; void setup() { pinMode (KHPUSK,INPUT_PULLUP); pinMode (KHSTOP,INPUT_PULLUP); pinMode (L1,OUTPUT); } void loop() { if (digitalRead(KHPUSK) == 0) digitalWrite (L1, HIGH); if (digitalRead(KHSTOP) == 0) digitalWrite (L1, LOW ); }Спосибо большое теперь понял, нормально показали не то что qwone )
Только вот ещё один нюанс. Необходимо чтобы у кнопки стоп был приоритет т.е. при нажатии двух одновременно светодиод гореть не должен, а по факту он просто тускнеет, а на самом деле наверное даже просто очень часто мигает.
12if(digitalRead(KHPUSK) == 0 && digitalRead(KHSTOP) == 1) digitalWrite (L1, HIGH);нормально показали не то что qwone )
smexopsix, Вы бы поосторожнее. Человек хотел Вам помочь, тратил время. Возможно, он что-то неудачно выразил или просто Вы его не поняли, но тем не менее скажите спасибо за попытку помочь, а не обхаивайте, как Вы это делаете.
Я вот это место прочитал и всякое желание Вам помогать пропало. Вдруг Вы и меня не поймёте и будете потом полоскать мое имя почём зря.
Вы понимаете о чём я?
Кажется я немножко сталь понимать :)
Человек хотел Вам помочь, тратил время.
та, да - хотел помочь, а получилось как всегда... не помог.
Прошу прощения, некого не хотел обидеть. Просто данный человек сравнил меня с сантехником взявшимся за электрику, а я всё таки электронщик. Просто привык релейными схемами мыслить.
сравнил меня с сантехником взявшимся за электрику, а я всё таки электронщик.
взявшийся за программирование.
Чего обижаться-то? Вы же электронщик, а не гимназистка, правда? :)
Прошу прощения, некого не хотел обидеть. Просто данный человек сравнил меня с сантехником взявшимся за электрику, а я всё таки электронщик. Просто привык релейными схемами мыслить.
Я обслуживаю станки с ЧПУ.А эллектроавтоматика ЧПУ программируются на PLC, а PLC это практически таже релейная схема (Булева алгебра (и\или\не)). Ардуинку только взял изучать для общего развития. Вот такие вот дела. Сейчас буду пробовать потенциомметр добавлять в схему для регулирования яркости светодиода.
сравнил меня с сантехником взявшимся за электрику, а я всё таки электронщик.
взявшийся за программирование.
Чего обижаться-то? Вы же электронщик, а не гимназистка, правда? :)
Гимназистка ? Может и гимназистка... в душЕ xD
А я взял Ардуину , что бы мой диплом не превратился в макулатуру. И я работаю не по специальности, зрение сильно просело. И что бы носить гордое звание "электронщика" Ардуину надо знать от и до,примерно как раньше знали что такое транзистор (в разных вариантах), а не только для общего развития.
сейчас ардуиньщиков ведро и маленькая тележка, но это еще не значит что все они электронщики, ибо каждый 10 даже не понимает или не знает основ электротехники, каждый 8 не знает что такое диод и как он работает. и только каждый 5 имеет смутное представление о том как выглядит микроконтроллер и зачем он нужен на плате ардуино...
PS не каждый сисадмин является программистом и не каждый программист является сисадмином
сейчас ардуиньщиков ведро и маленькая тележка
больше чем ЧПУшников или меньше?
Penumbra. Видео эпиграф Как художник - художнику https://www.youtube.com/watch?v=qTmnv0yhcT0
А теперь по теме: Я бы промолчал бы если ТС не надувал щеки, что он электронщик блин. Ну получил диплом, ну устроился работать . Надо же где-то работать и за что-то получать деньги. И что? Сейчас что бы называться электронщиком надо еще лет 20-30 заниматься самообразованием. Это же не мясник . У мясника схема разделки не меняется лет 100. Даже у тех же сантехников идет очень сильный прогресс в технологиях. Сколько сейчас дома напичканы всякой херней. Это то же кто-то делает.
Скажите зачем Ардуина электронщику. Так теперешнему электронщику нужно дохрена приборов, и руководство хрен расщедрица на них. Есть поминиму и ладно. Остаток приходится добивать самопалами. А на Ардуине это делать проще и дешевле. Тем более подход похожий и для остального.
каждый 10 даже не понимает или не знает основ электротехники,
Вы - оптимист.