Прошу помочь учащемуся

vbn
Offline
Зарегистрирован: 12.02.2017

Здравствуйте! Прошу сразу не ругаться, из опыта и знаний только школьный курс по бейсику.

Задача сделать следующее: к примеру задействовать пины 12 и 7 как вход и 2 как выход. При подаче сигнала на 12 пин, начать подавать сигнал на 2 пин, в то же время на 7-м пине надо посчитать кол-во сигналов до 4 и, по достижении, перестать подавать сигнал на 2 пин. Где то так. 

Мой воспаленный мозг исходя из информации найденой на сайтах "родил" нечто такое. Понимаю, что это не то. Прошу направьте в нужное русло. Заранее огромное спасибо за советы

int a=12; //начало цикла
int b=7; //счетчик сигнала
int c=2; //клапан
  
void setup()
{
  
  pinMode(a, INPUT);
  pinMode(b, INPUT);
  pinMode(c, OUTPUT);
}
void loop()
{
  if(digitalRead(a)==HIGH);  
  digitalWrite(c, HIGH);
  if (b==4);
  digitalWrite(c, LOW);
    
}
arDubino
Offline
Зарегистрирован: 12.01.2017

:))) все в кучу люди кони.

если перемененные а б с у вас это номера пинов то как пин7 может быть равен 4. 

надо новую пемененную ввести . и еще главное сколько времени собираетсь считать эти 4 сигнала?! бесконечность?!! ну тогда мы с вами точно не доживем и не узнаем заработало у вас или нет :))).

так что вместо б делаете переменную бб 

int b=0; //счетчик сигнала

void loop()
{
   для if(digitalRead(a)==HIGH)  digitalWrite(c, HIGH);
  для if(digitalRead(b)==HIGH)  bb=bb+1;
  для if (bb==4) digitalWrite(c, LOW) и bb=0;    
}
или ставьте условие после if в скобках нельзя закрывать ваши if ;
ЕвгенийП
ЕвгенийП аватар
Offline
Зарегистрирован: 25.05.2015
andriano
andriano аватар
Offline
Зарегистрирован: 20.06.2015

vbn, напишите сначала, что Вы подразумеваете под термином "сигнал".

И, соответственно, что в Вашей терминологии значит "подавать сигнал".

arDubino
Offline
Зарегистрирован: 12.01.2017

он уже его подал ему надо уже его отключить :))

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

А чего к епреподавателю не обратиться? Он бы объяснил.

vbn
Offline
Зарегистрирован: 12.02.2017

По поводу времени, да, есть подобная задача, но, в данное время, не совсем понимаю как к ней подступиться. С ардуино познакомились буквально два дня назад.

Спасибо за помощь, буду вникать в суть ))) Знаю что для многих это ничего не означающая задача, но для меня это первый опыт

vbn
Offline
Зарегистрирован: 12.02.2017

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

vbn
Offline
Зарегистрирован: 12.02.2017

Под сигналом подразумевается 1, в данном случае 5v

arDubino
Offline
Зарегистрирован: 12.01.2017

почитать про if

прочитать как делать счетчик.

и главное понять за какой период длительности в мс считать... исключая вечность

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

vbn пишет:
На данный момент материалов по написанию програм на ардуино нашлось не особо много.
А гуглом пробовали? Этого добра ... на каждом заборе написано.

vbn
Offline
Зарегистрирован: 12.02.2017

Еще раз спасибо!

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

vbn пишет:

Под сигналом подразумевается 1, в данном случае 5v

Да что ж из Вас все клещами нужно вытягивать?

А что такое "перестать"? Это подать низкий уровень или перевести в высокоимпедансное состояние?

Далее: если сигнал - это высокий уровень на выходе, то на одном выходе более одного сигнала никак быть не может. Т.е, скажем, у Вас есть 6 выводов и Вам нужно как-то отследить, чтобы минимум на 4-х любых из них "был сигнал" (т.е. высокий уровень). Это было бы понятно: посчитать количество выводов с высоким уровнем и сравнить с нужной константой.

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

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

arduinec
Offline
Зарегистрирован: 01.09.2015

vbn пишет:

На данный момент материалов по написанию програм на ардуино нашлось не особо много.

Гололобов В.Н. О проекте Arduino для школьников (и не только) 2011
http://vgololobov.narod.ru/content/arduino/intro.html
Руководство по освоению Arduino 2012
http://robot-kit.ru/manual/Arduino_Sketch_Robot-kit.ru.pdf