Задержка по прерыванию. Помощь в создании простого реле на Arduino Nano

bortnik27
Offline
Зарегистрирован: 23.06.2019

Друзья, простая задача и что-то ступор.

Надо по прерыванию включать мосфет (пока это просто встроенный led), и держать его включенным Нное количество секунд.

#define msft 13
#define intpin 2
volatile boolean flag = false;
unsigned long timer = 2000;
unsigned long crntt = 0;
void setup() {
  attachInterrupt(digitalPinToInterrupt(intpin), get_in, FALLING);
}

void loop() {
  if (flag)  digitalWrite (msft, HIGH);
  if (millis()- crntt > timer){
  digitalWrite (msft, LOW);
  crntt = millis();
  flag = false;
  }

}

void get_in(){
    flag = !flag;
}

Идея такая, прерывание дергает флаг в положение вкл. В loop проверяем состояние флага, если вкл, то горит диод, пока таймер не переполнится, если переполняется то выкл.

Проблема: Сейчас при срабатывании прерывания диод загорается и не гаснет пока ногу привязанную к прерываниям не замкнуть на землю. Но если ее замкнуть сразу же, то таймер отрабатывает и гаснет через заданное кол-во секунд. По идее такого быть не должно, когда таймер сбрасывается, должно сбрасываться и положение флага, а с ним и гаснуть диод, что я делаю не так? Если прерывания поставить на HIGH ситуация такая же. Может я прерывания както не правильно трактую. Arduino nano

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

Вам же всё сказали на амперке! Исправьте условия и проинициализируйте пин (здесь не сделано ни того, ни другого) и всё заработает. Чего от нас-то хотите?

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

pinMode(msft, OUTPUT);

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

Да, на амперке ему там в три захода уже всё расписали.

bortnik27
Offline
Зарегистрирован: 23.06.2019

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

Да, на амперке ему там в три захода уже всё расписали.

Конечный результат не достигнут..

bortnik27
Offline
Зарегистрирован: 23.06.2019
#define msft A2
#define intpin 2
volatile boolean flag = false;
unsigned long timer = 2000;
unsigned long on = 0;
unsigned long crntt = 0;
void setup() {
  attachInterrupt(0, get_in, FALLING);
  pinMode(msft,OUTPUT);
  pinMode(intpin,INPUT_PULLUP);
}

void loop() {
  if (flag){
  digitalWrite (msft, HIGH);
  on = millis();
}
  if((millis()- on > timer)){
  digitalWrite (msft, LOW);
  flag = false;
  }
}
void get_in(){
    flag = true;
    }

Если прошить данный код и запустить аруино, через две секунды зажигается "мосфет", т.е. по факту ничего не взводит флаг, но ардуино как то получает digitalWrite (msft, HIGH); - это же бред

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

а вот так?
 

void start_Buzzer(){
     pinMode(13,OUTPUT);
     attachInterrupt(1, Buzzer, RISING );
     analogWrite(pinINT1,0x80); //установим на пине частоту 
                                //490 гц скважность 2
 }

void Buzzer(void){
     static int i=490/2;
     if(!i--)
     {
    digitalWrite(13, ! digitalRead(13));
    i=490/2;
      }
} 

void loop{
start_Buzzer();
delay(60000);
}

 

MacSim
Offline
Зарегистрирован: 28.11.2012

работать не будет. чему будет равна i при ее проверке в if? остальное даже не смотрел...

и напишите все в одной функции. и начните вначале с алгоритма работы программы в графическом виде

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

bortnik27 пишет:

#define msft A2
#define intpin 2
volatile boolean flag = false;
unsigned long timer = 2000;
unsigned long on = 0;
unsigned long crntt = 0;
void setup() {
  attachInterrupt(0, get_in, FALLING);
  pinMode(msft,OUTPUT);
  pinMode(intpin,INPUT_PULLUP);
}

void loop() {
  if (flag){
  digitalWrite (msft, HIGH);
  on = millis();
}
  if((millis()- on > timer)){
  digitalWrite (msft, LOW);
  flag = false;
  }
}
void get_in(){
    flag = true;
    }

Если прошить данный код и запустить аруино, через две секунды зажигается "мосфет", т.е. по факту ничего не взводит флаг, но ардуино как то получает digitalWrite (msft, HIGH); - это же бред

Ну Вам же там написали!!! Вы что совсем не понимаете что Вам говорят? Держите, блин,

#define msft 13
#define intpin 2
volatile boolean flag = false;
unsigned long timer = 2000;
unsigned long on = 0;
unsigned long crntt = 0;
void setup() {
  pinMode(intpin, INPUT_PULLUP);
  attachInterrupt(0, get_in, FALLING);
  delay(1);
  pinMode(msft, OUTPUT);
  digitalWrite (msft, LOW);
  flag = false;
}

void loop() {
  if (flag) {
    digitalWrite (msft, HIGH);
    on = millis();
    flag = false;
  }
  if ((millis() - on > timer) && digitalRead(msft)) {
    digitalWrite (msft, LOW);
  }
}
void get_in() {
  flag = true;
}

 

Pyotr
Offline
Зарегистрирован: 12.03.2014

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

... Держите, блин,

Евгений, ну Вы ж преподаватель... слабо было подвести ТС к самостоятельному написанию кода? )))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Некоторых ТС можно подвести только к убийству Ардуины молотком с особой жестокостью и цынизмом. 

Pyotr
Offline
Зарегистрирован: 12.03.2014

DetSimen пишет:

Некоторых ТС можно подвести только к убийству Ардуины молотком с особой жестокостью и цынизмом. 

Я вот раньше думал, что можно любого ребенка обучить например математике, уделив побольше времени. Мой опыт показал какой я был наивный.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Pyotr пишет:

Я вот раньше думал, что можно любого ребенка обучить например математике

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

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

Pyotr пишет:

ну Вы ж преподаватель...

Уже очень давно - нет. Среди студентов моего последнего выпуска уже профессора появились.

Pyotr пишет:

слабо было подвести ТС к самостоятельному написанию кода? )))

Слабо. Нервы сдали.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

MacSim пишет:

работать не будет. чему будет равна i при ее проверке в if? остальное даже не смотрел...

и напишите все в одной функции. и начните вначале с алгоритма работы программы в графическом виде

Ошибаетесь, работает, чуток поправил по необъявленным переменным, одна из версий Блинка получилась )))
 

void setup(){
  pinMode(13,OUTPUT);
}


void start_Buzzer(){
     pinMode(13,OUTPUT);
     attachInterrupt(1, Buzzer, RISING );
     analogWrite(3,0x80); //установим на пине частоту 
                                //490 гц скважность 2
 }

void Buzzer(void){
     static int i=490/2;
     if(!i--)
     {
    digitalWrite(13, ! digitalRead(13));
    i=490/2;
      }
} 

void loop(){
start_Buzzer();
delay(60000);
}

 

Pyotr
Offline
Зарегистрирован: 12.03.2014

DetSimen пишет:

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

Золотые слова... нам бы хоть на три... по пятибальной шкале это от 40 до 60 % знаний. 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

 Теперь я щитаю, что обучить можно только лишь того, кто сам хочет научиться...

А ежели хочет, но не может? )))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Pyotr пишет:

DetSimen пишет:

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

Золотые слова... нам бы хоть на три... по пятибальной шкале это от 40 до 60 % знаний. 

Я тоже за своего млатшенького счас переживаю

 

b707
Offline
Зарегистрирован: 26.05.2017

ua6em пишет:

А ежели хочет, но не может? )))

о, у нас тут такой есть на форуме... Четвертый год прерывания изучает. И дискутирует со всеми :)

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

ua6em пишет:

А ежели хочет, но не может? )))

о, у нас тут такой есть на форуме... Четвертый год прерывания изучает. И дискутирует со всеми :)

а может стандартная ситуация, налил, жахнул,...а поговорить )))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

Pyotr пишет:

DetSimen пишет:

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

Золотые слова... нам бы хоть на три... по пятибальной шкале это от 40 до 60 % знаний. 

Я тоже за своего млатшенького счас переживаю

 

та на аглицком надо общаться, я вот неграмотный, а поговорить могу )))

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

ua6em пишет:

та на аглицком надо общаться, я вот неграмотный, а поговорить могу )))

Ага, слыхал я качество звука на этих ваших коротковолновках. Там чтобы что-то разобрать таким гуру в языке нужно быть! Мне слабо.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

Я тоже за своего млатшенького счас переживаю

 

А куда поступать то собирался... Физика + английский , зачем ?

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

В телекоммуникации падёт. Физика там не нужна, он ее на всякий случай сдавал, типа вдруг надумает, как папа, на физ-тех поступать. 

 

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

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

ua6em пишет:

та на аглицком надо общаться, я вот неграмотный, а поговорить могу )))

Ага, слыхал я качество звука на этих ваших коротковолновках. Там чтобы что-то разобрать таким гуру в языке нужно быть! Мне слабо.

мне нет, в 90% даже национальность (страну проживания) мог сказать, акцент так сказать выдаёт, но теперь всё значительно лучше, некоторых операторов из России от англичан не отличить, про американцев промолчу, там сплошной слэнг, а вот грамоты не знаю )))

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

DetSimen пишет:

В телекоммуникации падёт. Физика там не нужна, он ее на всякий случай сдавал, типа вдруг надумает, как папа, на физ-тех поступать. 

программировать то хоть научил? скрипты писать надо жеж, а то никаких денег не напасёшься

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

В телекоммуникации падёт. Физика там не нужна, он ее на всякий случай сдавал, типа вдруг надумает, как папа, на физ-тех поступать. 

А кто получится на выходе ? 

Мой  физику и матеиатику профиль сдавал 80 и 88, русский 65 :)  Но у него сертификат за третье место по "Шаг в будущее". Можно не рыпаться,  уже студент бауманки (радиоэлектроника).

За репетиторов по русскому столько бабла отвалил.... а результат нулевой :) Весь в папу !

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

У нас рюсске тожэ в папу. :)  

Три последних года он занимал  4-1 места по России на Робофесте , первое место - в этом году, сертификаты есть на зачисление в бывший ЛЭТИ и в ЮжГУ в Ростове, но не хочет.  Хочет или в Томский университет или в наш СибГУТИ.  (чтоб, значить, к мамкиным пирошкам поближе) :) 

На него ФСБ глаз положило, его доклад по криптографии 1 место занял по городу в этом году, предлагали сертификат от них получить и проплатить учебу.  Взамен надо будет в Мухосрансках отработать 5 лет.  Если на бюджет не пройдёт, пойдет от государевых людей учица, у нас выбора нет, платное мы не потянем, папка все свои пособия пропиваеть. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

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

Что касается ФСБ, то это вовсе не круто, как многие думают. Если не династия (читай папа проталкивает), то всею жизнь на младших должностях просидит, да еще и без денег. Не выездной, к тому же. Могут еще и в горячую точку пихнуть. Они и к моему в лицей приходили и всех звали в целевики, это когда ты учишся за деньги государства, но потом обязан отработать пять лет или пять лямов отдать. Получается в 35 освобождаешься от повинности и уже никому нахрен не нужен, а за душой ни гроша. А в случае с ФСБ еще и не выездной 5 лет. А жены за границу просятся, на экскурсию :(

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

я ему то же самое говорю.  Но, если на бюджет самостоятельно не пройдёт - см. выше. Человек - сам пи..ец своего щастья.  Ждём результатов по информатике и можно будет уже куда-нить бумаги относить.  Пусь сам думает. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

ИМХО, в любом случае, если есть возможность зачислится в Ростов, то в любом случае туда подать. Если больше никуда не получится, то там и учится. Конечно, при трудоустройстве, вуз имеет значение, но могу четко сказать,  вовсе не решающее.

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Ну они щас в том возрасте, када не шыбко-то папашек слушают. Тем более, када те из презираемой касты париев-олкашей.  Мамашек, впрочем, тоже.  

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

У меня всё это давно было, 12 лет тому как, мой еще без ЕГЭ поступал, по экзаменам. Мы даже за первый семестр в МИФИ проплатили, а он, гадёныш, как раз решил все силы и средства на вотку, марьванну и бап потратить... ;((! И вылетел зимой. Тогда мы ему сказали, что твой путь - работа которую сам найдёшь и вечерний, который сам найдёшь и сам оплатишь. Оставили ему квартиру и уехали жить в дом, где и живем. Ничего - за ум взялся, институт нашел, денег почти не клянчил... но я б и не дал;). Внучке в августе 5 будет. Сыну 29.

Нужно им вовремя пинка дать, а то дети - они как ёжи - птицы гордые, пока не пнёшь не взлетают!

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

1 в 1 про мою старшенькую.  Тоже трицатник в этом году, и тоже пинков надавали в юности, так что прошла все стадии сама, работала и училась на вечернем, сама себе обучение оплачивая.  Правда, я тогда не был еще синяком, квартиру ей купил и отселил жыть отдельно. :) 

А она нам за это стала чайлд-фри. 

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

Я старшему пинка дал еще в 8ом классе. Так он низенько-низенько в бауманку с сертификатом "без вступительных испытаний" за олимпиаду по физике и прилетел. Уже лет пять как закончил и в одной сильно известнй российской ИТ компании программером трудится и ипотеку платит. Так что пинок полюбасу нужен и не один. Причем пинки разной сили и разного направления, в зависимости от ситуации :) Эх... со старшим как то проще было, может я моложе был....

Че прям совсем чайлдфри ? Приувеличиваешь небось. Они счаз все такие, ждут когда песок посыплтся, тогда и рожают :) Моему 28, супруга его - его ровестница и внуков пока не желают, на собаку в очередь встали...

Основная функия родителя пинкопроизводительность, главное совсем не запинать :)

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

brokly пишет:

 Моему 28, супруга его - его ровестница и внуков пока не желают, на собаку в очередь встали...

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

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

наданапица. 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

DetSimen пишет:

brokly пишет:

 Моему 28, супруга его - его ровестница и внуков пока не желают, на собаку в очередь встали...

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

Книги - они теперь все есть в инете. Я вот помню, в детстве, "Золотой осел" Апулея под одеялом с фонариком читал ;))), а теперь полный инет порнухи и молодежь уже не дрочит на классику! Ни на Апулея, ни на Мопасана! Ужос-на!

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

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

Ага... Но с другой стороны у каждого поколения свои за...бы. И мы становимся все более ворчливыми. Пусть делают, что хотят. Все равно в автопланировании после пинка :)

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

DetSimen пишет:
бывший ЛЭТИ и в ЮжГУ в Ростове
Видимо, ЮФУ.

Если чо, то и там, и там могу посоветовать толковых профессоров, к которым лучше пристроиться на всякие курсовые и дипломы (а там и в аспирантуру).

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

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

DetSimen пишет:
бывший ЛЭТИ и в ЮжГУ в Ростове
Видимо, ЮФУ.

Если чо, то и там, и там могу посоветовать толковых профессоров, к которым лучше пристроиться на всякие курсовые и дипломы (а там и в аспирантуру).

Спасибо. Спрошу

b707
Offline
Зарегистрирован: 26.05.2017

Читаю блин завидую. Дети все прошаренные, в олимпиадах участвуют, без экзаменов поступают :)

У меня две девчонки, старшая врач, институт закончила, в ординатуру пошла. А младшая "типа филолог"  на заочном, а в "свободное время" - стюардессой в Аэрофлоте.

Никаких тебе программистов и МИФИ... Наверно мало пинал :(

andycat
andycat аватар
Offline
Зарегистрирован: 07.09.2017

b707 пишет:

 

эт че, у меня дочь всегда тянулась к точным наукам, куча всяких олимпиад, дипломов и прочего.....никогда не поверите куда пошла учиться - училище МВД, юридический факультет, хочет быть судьей.

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

brokly пишет:

ИМХО, в любом случае, если есть возможность зачислится в Ростов, то в любом случае туда подать. Если больше никуда не получится, то там и учится. Конечно, при трудоустройстве, вуз имеет значение, но могу четко сказать,  вовсе не решающее.

 а что-то Ростов как-то не на слуху, Таганрог да Новочеркасск

ua6em
ua6em аватар
Offline
Зарегистрирован: 17.08.2016

b707 пишет:

Читаю блин завидую. Дети все прошаренные, в олимпиадах участвуют, без экзаменов поступают :)

У меня две девчонки, старшая врач, институт закончила, в ординатуру пошла. А младшая "типа филолог"  на заочном, а в "свободное время" - стюардессой в Аэрофлоте.

Никаких тебе программистов и МИФИ... Наверно мало пинал :(

как там у Пушкина ... учил его всему шутя...не докучал моралью строгой...слегка за шалости бранил...и в Летний Сад гутять водил...
Гулять водили? Значит человек состоялся )))

PS своих вообще не пинал,  даже в школе ни разу не был, и учителей не знал, дочке один раз правда объяснил решение задачи по Химии, минуток десять и всё, а не, сыну на гитаре показывал )))

DetSimen
DetSimen аватар
Offline
Зарегистрирован: 25.01.2017

Узнали баллы по информатике. 91.  Наданапица с радости. 

wdrakula
wdrakula аватар
Offline
Зарегистрирован: 15.03.2016

DetSimen пишет:

Узнали баллы по информатике. 91.  Наданапица с радости. 

Pyotr
Offline
Зарегистрирован: 12.03.2014

ua6em пишет:

b707 пишет:

Читаю блин завидую....

PS своих вообще не пинал,  даже в школе ни разу не был, и учителей не знал, дочке один раз правда объяснил решение задачи по Химии, минуток десять и всё, а не, сыну на гитаре показывал )))

Зато... зато... у вас нет опыта работы с трудными подростками...  уж не знаю какой смайл прицепить.

brokly
brokly аватар
Offline
Зарегистрирован: 08.02.2014

DetSimen пишет:

Узнали баллы по информатике. 91.  Наданапица с радости. 

А вот я о своем такого сказать не могу... Узнал баллы по информатике, пойду застрелюсь. Вторая часть без единой ошибки, за то первая полное дельмо... :(

Правда она ему и не нужна...

sadman41
Offline
Зарегистрирован: 19.10.2016

Нужно же кому-то и сварщиком быть. Что вы расстраиваетесь? У нас в городе сварщик получает больше "кампьютерщика" и ещё кучу калымов имеет. А разработчики чего-либо вообще тут никому не нужны. Почти что один перепродажный "бизнес" остался, а ему стандартной конфы 1С хватает и чувака, который умеет её накатить за банку консервов.

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

ua6em пишет:

 а что-то Ростов как-то не на слуху, Таганрог да Новочеркасск

Посмотрите, какая там профессура! http://dontr.ru/novosti/v-yufu-rabotaet-professor-mim/ Выступление его посмотрите! Он нечто подобное у нас на банке по завершению Форума выдавал.

Кстати, умнейший человек, один из тех, кого я имел в виду, когда говорил деду, что толковых профессоров знаю.