Сейчас съездил в магазин где покупал детали, я им объяснил что вот такая-то проблема,а они сказали что не разбераются и я могу им только сдать детали, но потом случайно зашёл в магазин человек, и продавцы сказали что он хорошо в этом разберается. Я ему тоже объяснил суть проблемы, и он сказал очень интересную мысль - он сказал что возможно это из-за того, что глючит новая версия IDE-1.8.9(у меня винда 10) и скорей всего это из-за неё, а Ардуино скорей всего исправна.
Я, конечно же, не сильно программист, но почему никого на возглас ТС - «включается и через секунду выключается» не обратил своё и его внимание на условия? (Сокрачу код кнопки до ЕВ) - первоеусловие -> код равен EB и rele=0, в этом условии присваиваем rele=1. Смотрим далее - else -> код опять равен EB (его же ещё никто не считывал заново) и rele=1 (1 мы присвоили в прошлом if, для тех кто не понял). В результате оно и «хлопает». Логику менять надо а не дребезг исправлять.
Или я что то упустил (повторю - сам не особо программист)? Буду только рад если ткнёте носом туда, что пропустил.
Я, конечно же, не сильно программист, но почему никого на возглас ТС - «включается и через секунду выключается» не обратил своё и его внимание на условия? (Сокрачу код кнопки до ЕВ) - первоеусловие -> код равен EB и rele=0, в этом условии присваиваем rele=1. Смотрим далее - else -> код опять равен EB (его же ещё никто не считывал заново) и rele=1 (1 мы присвоили в прошлом if, для тех кто не понял). В результате оно и «хлопает». Логику менять надо а не дребезг исправлять.
Или я что то упустил (повторю - сам не особо программист)? Буду только рад если ткнёте носом туда, что пропустил.
Я тоже не особо программист, даже совсем непрограммист, но мне кажется что вы упустили if...else:
"... Когда проверка с результатом ИСТИНА найдена, запускается вложенная в нее блок операторов, и затем программа игнорирует все следующие строки в конструкции if..else."
Я, конечно же, не сильно программист, но почему никого на возглас ТС - «включается и через секунду выключается» не обратил своё и его внимание на условия? (Сокрачу код кнопки до ЕВ) - первоеусловие -> код равен EB и rele=0, в этом условии присваиваем rele=1. Смотрим далее - else -> код опять равен EB (его же ещё никто не считывал заново) и rele=1 (1 мы присвоили в прошлом if, для тех кто не понял). В результате оно и «хлопает». Логику менять надо а не дребезг исправлять.
Или я что то упустил (повторю - сам не особо программист)? Буду только рад если ткнёте носом туда, что пропустил.
Я тоже не особо программист, даже совсем непрограммист, но мне кажется что вы упустили if...else:
"... Когда проверка с результатом ИСТИНА найдена, запускается вложенная в нее блок операторов, и затем программа игнорирует все следующие строки в конструкции if..else."
Если я неправ пусть меня тоже ткнут носом.
Это да, но это на первой итерации цикла. Другими словами - на первом походе. На втором «проходе» выполняется второе условие (что после else, ведь переменная rele у вас глобальная, а код с кнопки не изменился - то есть rele уже равно 1, а код с кнопки тот же ВЕ). Эти итерации происходят со скоростью работы процессора (несколько миллионов раз в секунду, и определяются скоростью ЦП), но инертная реле это делает не сразу. Вообще тема реле другая - суть в том что логика не верна. Моя структура логики такова - если нажата кнопка и реле 0, то перевести реле в 1 и подождать секунд 5 (условно подождать, не обязательно dalay делать, за это время вы отпустите кнопку -ведь нажатие однократное) и как только сработает повторно нажатие кнопки - сделать уже реле 0, если реле равно 1 и сменить флаг. Но это сильно грубо. То есть в конкретном случае просто нажатий с интервалом 5 сек (или 2 - сколько установите’ - работать будет. Но если просто нажать и держать кнопку - будет переключаться с частотой 5сек (или сколько установили, например - 2). Но я не знаю как это побороть по одной простой причине - сам начинающий (этот вопрос вторичен и пока можно его опустить). :-)
а код с кнопки не изменился - то есть rele уже равно 1, а код с кнопки тот же ВЕ).
А строка 36? Конечно при условии что кнопка не нажата и дребезг отсутствует
Так я о том и говорю - за ваше нажатие кнопки длиной в 1 сек (к примеру), в микроконтроллере происходит миллион операций. И дребезг тут ни при чем. Он лишь шум в данной логике. Дребезги по ИК вообще быть не может по моему мнению. Его на стороне передатчика устраняют.
Так я о том и говорю - за ваше нажатие кнопки длиной в 1 сек (к примеру), в микроконтроллере происходит миллион операций. И дребезг тут ни при чем. Он лишь шум в данной логике. Дребезги по ИК вообще быть не может по моему мнению. Его на стороне передатчика устраняют.
[/quote]
Да похоже Вы правы, здесь идут импульсы и дребезга как в обычной кнопке не устраниш. Надо просто дать время. Гдето так
BLINK работает, сейчас попробую BLINK, но только уже со светодиодом(на макетной плате)
А вот уже на макетке не работает
Он вообще не мигает
Строку #4 и #9 сравните - что инитится и чем моргается.
Сейчас съездил в магазин где покупал детали, я им объяснил что вот такая-то проблема,а они сказали что не разбераются и я могу им только сдать детали, но потом случайно зашёл в магазин человек, и продавцы сказали что он хорошо в этом разберается. Я ему тоже объяснил суть проблемы, и он сказал очень интересную мысль - он сказал что возможно это из-за того, что глючит новая версия IDE-1.8.9(у меня винда 10) и скорей всего это из-за неё, а Ардуино скорей всего исправна.
Сейча попробую скачать версию 1.8
Что думаете об этом?
Тему предлогаю перенести в Песочницу!
Поддерживаю и перемещаю.)))
С учётом вот этого
Строку #4 и #9 сравните - что инитится и чем моргается.
всё так и есть! Без вариантов IDE виновата. И ещё, может быть, то, что ардуина китайская.
А вот так попробуйте, вдруг повезёт.
... глючит новая версия IDE-1.8.9(у меня винда 10) и скорей всего это из-за неё, а Ардуино скорей всего исправна.
Сейча попробую скачать версию 1.8
Что думаете об этом?
и перейдите с глючной 10-ки на Windows 3.11
leks, Вы бы хоть проверяли, когда выкладываете! Он же сейчас запустит и точно побежит переустанавливать IDE на 0.0.0 и покупать оригинальную ардуину.
Не, не проверял. Счас, проверю и тоже закричу помогиите!!!
Ой, заругались на меня, слово запретное я использовал в названии светодиода. Вот так надо попробовать.
Константа
LED_BUILTIN
– это номер вывода, к которому подключен встроенный светодиод. На большинстве плат это светодиод подключен к выводу 13.Вот что вычитал.
Так ото ж.
Я тут не перепутал случайно ничего?)
Я, конечно же, не сильно программист, но почему никого на возглас ТС - «включается и через секунду выключается» не обратил своё и его внимание на условия? (Сокрачу код кнопки до ЕВ) - первоеусловие -> код равен EB и rele=0, в этом условии присваиваем rele=1. Смотрим далее - else -> код опять равен EB (его же ещё никто не считывал заново) и rele=1 (1 мы присвоили в прошлом if, для тех кто не понял). В результате оно и «хлопает». Логику менять надо а не дребезг исправлять.
Или я что то упустил (повторю - сам не особо программист)? Буду только рад если ткнёте носом туда, что пропустил.
Я, конечно же, не сильно программист, но почему никого на возглас ТС - «включается и через секунду выключается» не обратил своё и его внимание на условия? (Сокрачу код кнопки до ЕВ) - первоеусловие -> код равен EB и rele=0, в этом условии присваиваем rele=1. Смотрим далее - else -> код опять равен EB (его же ещё никто не считывал заново) и rele=1 (1 мы присвоили в прошлом if, для тех кто не понял). В результате оно и «хлопает». Логику менять надо а не дребезг исправлять.
Или я что то упустил (повторю - сам не особо программист)? Буду только рад если ткнёте носом туда, что пропустил.
Я тоже не особо программист, даже совсем непрограммист, но мне кажется что вы упустили if...else:
"... Когда проверка с результатом ИСТИНА найдена, запускается вложенная в нее блок операторов, и затем программа игнорирует все следующие строки в конструкции if..else."
Если я неправ пусть меня тоже ткнут носом.
Я, конечно же, не сильно программист, но почему никого на возглас ТС - «включается и через секунду выключается» не обратил своё и его внимание на условия? (Сокрачу код кнопки до ЕВ) - первоеусловие -> код равен EB и rele=0, в этом условии присваиваем rele=1. Смотрим далее - else -> код опять равен EB (его же ещё никто не считывал заново) и rele=1 (1 мы присвоили в прошлом if, для тех кто не понял). В результате оно и «хлопает». Логику менять надо а не дребезг исправлять.
Или я что то упустил (повторю - сам не особо программист)? Буду только рад если ткнёте носом туда, что пропустил.
Я тоже не особо программист, даже совсем непрограммист, но мне кажется что вы упустили if...else:
"... Когда проверка с результатом ИСТИНА найдена, запускается вложенная в нее блок операторов, и затем программа игнорирует все следующие строки в конструкции if..else."
Если я неправ пусть меня тоже ткнут носом.
Это да, но это на первой итерации цикла. Другими словами - на первом походе. На втором «проходе» выполняется второе условие (что после else, ведь переменная rele у вас глобальная, а код с кнопки не изменился - то есть rele уже равно 1, а код с кнопки тот же ВЕ). Эти итерации происходят со скоростью работы процессора (несколько миллионов раз в секунду, и определяются скоростью ЦП), но инертная реле это делает не сразу. Вообще тема реле другая - суть в том что логика не верна. Моя структура логики такова - если нажата кнопка и реле 0, то перевести реле в 1 и подождать секунд 5 (условно подождать, не обязательно dalay делать, за это время вы отпустите кнопку -ведь нажатие однократное) и как только сработает повторно нажатие кнопки - сделать уже реле 0, если реле равно 1 и сменить флаг. Но это сильно грубо. То есть в конкретном случае просто нажатий с интервалом 5 сек (или 2 - сколько установите’ - работать будет. Но если просто нажать и держать кнопку - будет переключаться с частотой 5сек (или сколько установили, например - 2). Но я не знаю как это побороть по одной простой причине - сам начинающий (этот вопрос вторичен и пока можно его опустить). :-)
А строка 36? Конечно при условии что кнопка не нажата и дребезг отсутствует
А строка 36? Конечно при условии что кнопка не нажата и дребезг отсутствует
Так я о том и говорю - за ваше нажатие кнопки длиной в 1 сек (к примеру), в микроконтроллере происходит миллион операций. И дребезг тут ни при чем. Он лишь шум в данной логике. Дребезги по ИК вообще быть не может по моему мнению. Его на стороне передатчика устраняют.
Так я о том и говорю - за ваше нажатие кнопки длиной в 1 сек (к примеру), в микроконтроллере происходит миллион операций. И дребезг тут ни при чем. Он лишь шум в данной логике. Дребезги по ИК вообще быть не может по моему мнению. Его на стороне передатчика устраняют.
[/quote]
Да похоже Вы правы, здесь идут импульсы и дребезга как в обычной кнопке не устраниш. Надо просто дать время. Гдето так
А лутше использовать одну кнопку на включение а другую на выключение.