Реализация релейной схемы на ардуино

smexopsix
Offline
Зарегистрирован: 11.08.2017
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'
 
 
 
qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Наверно потому что вы программы пишете с ошибками. А компилятор не может тогда компилировать

/**/
//--------------------------------------
//---------Компановка-----------------------------
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 байт.
*/

 

smexopsix
Offline
Зарегистрирован: 11.08.2017

Да я только начал изучать, сильно не бейте ) в основном работаю с релейными схемами и PLC

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

smexopsix пишет:

Да я только начал изучать, сильно не бейте ) в основном работаю с релейными схемами и PLC

Как вариант посмотрите эту тему. http://arduino.ru/forum/programmirovanie/klassy-arduino-po-qwone-dlya-chainikov

  Может не все будет понятно. Но там есть работающие скетчи и что-то вам поможет упростить написание программ.

smexopsix
Offline
Зарегистрирован: 11.08.2017

Да, он ваш вариант проглотил, но всё равно не происходит того чего я ожидал...

Я хотел написать простейшую схемку включения лампочки с одной кнопки и выключения с другой. Не подскажите почему нечего не работает в таком виде ?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ну вы наверное просто забыли что такое дребезг. Это когда кнопки при включении и выключении идет пакет импульсов. 

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

qwone пишет:

Ну вы наверное просто забыли что такое дребезг. Это когда кнопки при включении и выключении идет пакет импульсов. 

чем ему дребег помешает включать одной, а выключать другой кнопкой?

пять раз выключит или двадцать раз включит? - да и хер с ним.

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Ну вы еще много не знаете. Это как  сантехник решил занятся работой электрика и думает , что главное что бы не было протечек.

/**/
//--------------------------------------
//---------Компановка-----------------------------
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 байт.
*/

У вас кнопки висят на питании. Вы хоть резисторы подтяжки на землю повесили.

T.Rook
Offline
Зарегистрирован: 05.03.2016

Я конечно сильно извинияюсь что влезаю в вашу беседу о дребезге, но зачем в IF-ах странные проверки типа "L1==LOW"?

UPD Ну что за привычка у всех взялась в последнее время прямо перед моим постом новые писать :(

del

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017
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 );
}

 

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

T.Rook пишет:

Я конечно сильно извинияюсь что влезаю в вашу беседу о дребезге, но зачем в IF-ах странные проверки типа "L1==LOW"?

низачем

smexopsix
Offline
Зарегистрирован: 11.08.2017

Собрано нормально. С выхода кнопки через резистор 1.5кОм на землю параллельно входу.

smexopsix
Offline
Зарегистрирован: 11.08.2017

Клапауций 112 пишет:

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 )

Только вот ещё один нюанс. Необходимо чтобы у кнопки стоп был приоритет т.е. при нажатии двух одновременно светодиод гореть не должен, а по факту он просто тускнеет, а на самом деле наверное даже просто очень часто мигает.

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017
12 if (digitalRead(KHPUSK) == 0 && digitalRead(KHSTOP) == 1) digitalWrite (L1, HIGH);
 

 

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

smexopsix пишет:

нормально показали не то что qwone )

smexopsix, Вы бы поосторожнее. Человек хотел Вам помочь, тратил время. Возможно, он что-то неудачно выразил или просто Вы его не поняли, но тем не менее скажите спасибо за попытку помочь, а не обхаивайте, как Вы это делаете.

Я вот это место прочитал и всякое желание Вам помогать пропало. Вдруг Вы и меня не поймёте и будете потом полоскать мое имя почём зря.

Вы понимаете о чём я?

smexopsix
Offline
Зарегистрирован: 11.08.2017

Кажется я немножко сталь понимать :)

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

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

Человек хотел Вам помочь, тратил время.

та, да - хотел помочь, а получилось как всегда... не помог.

smexopsix
Offline
Зарегистрирован: 11.08.2017

Прошу прощения, некого не хотел обидеть. Просто данный человек сравнил меня с сантехником взявшимся за электрику, а я всё таки электронщик. Просто привык релейными схемами мыслить.

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

smexopsix пишет:

сравнил меня с сантехником взявшимся за электрику, а я всё таки электронщик. 

взявшийся за программирование.

Чего обижаться-то? Вы же электронщик, а не гимназистка, правда? :)

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

smexopsix пишет:

Прошу прощения, некого не хотел обидеть. Просто данный человек сравнил меня с сантехником взявшимся за электрику, а я всё таки электронщик. Просто привык релейными схемами мыслить.

Вы что думаете, что сантехник это плохо. У сантехника своя специфика. У электрика своя. Так вот у меня диплом электронщика. Вот только глядя на вас, похоже вы электронщик не очень. Хотя в паянии и изготовлении плат вы получше может быть. Электронщик это еще и программист на Си и ассембеле.Но по вам это не видно.

smexopsix
Offline
Зарегистрирован: 11.08.2017

Я обслуживаю станки с ЧПУ.А эллектроавтоматика ЧПУ программируются на PLC, а PLC это практически таже релейная схема (Булева алгебра (и\или\не)). Ардуинку только взял изучать для общего развития. Вот такие вот дела. Сейчас буду пробовать потенциомметр добавлять в схему для регулирования яркости светодиода.

smexopsix
Offline
Зарегистрирован: 11.08.2017

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

smexopsix пишет:

сравнил меня с сантехником взявшимся за электрику, а я всё таки электронщик. 

взявшийся за программирование.

Чего обижаться-то? Вы же электронщик, а не гимназистка, правда? :)

Гимназистка ? Может и гимназистка... в душЕ xD

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

А я взял Ардуину , что бы мой диплом не превратился в макулатуру. И я работаю не по специальности, зрение сильно просело. И что бы носить гордое звание "электронщика" Ардуину надо знать от и до,примерно как раньше знали что такое транзистор (в разных вариантах), а не только для общего развития. 

Penumbra
Offline
Зарегистрирован: 06.08.2017

сейчас ардуиньщиков ведро и маленькая тележка, но это еще не значит что  все они электронщики, ибо каждый 10  даже не понимает или не знает основ электротехники, каждый 8 не знает что такое  диод и как он работает. и только каждый 5 имеет смутное представление о том как выглядит микроконтроллер и зачем он нужен на плате ардуино...

PS не каждый сисадмин является программистом и не каждый программист является сисадмином

Клапауций 112
Клапауций 112 аватар
Offline
Зарегистрирован: 01.03.2017

Penumbra пишет:

сейчас ардуиньщиков ведро и маленькая тележка

больше чем ЧПУшников или меньше?

qwone
qwone аватар
Offline
Зарегистрирован: 03.07.2016

Penumbra. Видео эпиграф Как художник - художнику https://www.youtube.com/watch?v=qTmnv0yhcT0

А теперь по теме: Я бы промолчал бы если ТС не надувал щеки, что он электронщик блин. Ну получил диплом, ну устроился работать . Надо же где-то работать и за что-то получать деньги. И что? Сейчас что бы называться электронщиком надо еще лет 20-30 заниматься самообразованием. Это же не мясник . У мясника схема разделки не меняется лет 100.  Даже у тех же сантехников идет очень сильный прогресс  в технологиях. Сколько сейчас дома напичканы всякой херней. Это то же кто-то делает.

 Скажите зачем Ардуина электронщику. Так теперешнему электронщику нужно дохрена приборов, и руководство хрен расщедрица на них. Есть поминиму и ладно. Остаток приходится добивать самопалами. А на Ардуине это делать проще и дешевле. Тем более подход похожий и для остального.

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

Penumbra пишет:

каждый 10  даже не понимает или не знает основ электротехники, 

Вы - оптимист.