Спасибо! На основе этого урока сделал себе простой сигнализатор наполнения ванны =) Взял 1 Arduino Nano, 1 спикер от ПК и из кусочка старого текстолита сделал "датчик дождя". Выяснилось что спикер тихий и взял у жены старую круглую моно-колонку. Сваял все это дело так, разъем Jack 3.5 землю к земле Arduino, левый и правый канал замкнул на пин D3 (3 pin), далее "датчик дождя" по принципу кнопки, 1 контакт к земле Arduino, 2 к пину A5 (19 pin). Код из этого урока с не большыми поправками: #define b 3 //3 pin спикера if (button1H) { Serial.println("hold"); tone (b, 500); //Пищание с частотой 500 Hz delay(100); //Задержка tone(b, 1000); delay(100); button1H = 0; } void setTone(int pin, int note, int duration) { tone(pin, note, duration); delay(duration); noTone(pin); //Прекращение пищания } Коробку потом из под Тик-Так возьму =) А вообще с ESP8266 или с RFками можно зацепить к "умному" проекту как "датчик дождя", сырости или наполнения резервуара.
@georgijwlassow74306 жыл бұрын
Интересные знания, четкое изложение, лаконичность, понятность и точнось и качество монтажа. Супер. Спасибо.
@DenaGur4 жыл бұрын
С каждым уроком становится только интереснее и сам материал разобран практически до мелочи, всё очень доходчиво)) Спасибо автору!!!
@ВалерийСергеев-н2у7 жыл бұрын
Лучшие уроки по ардуинке:)
@_91th7 жыл бұрын
Огромное спасибо автору за работу, очень круто. Лучшие уроки на русском ютубе!
@SlavikSelin6 жыл бұрын
Незнание о существовании некоторых библиотек благоприятно влияет на умственное развитие)
@Lobzik016 жыл бұрын
Золотые слова!
@anon36965 жыл бұрын
Со смыслом
@Dmitriitube5 жыл бұрын
Жиза
@TexnikMain5 жыл бұрын
@@anon3696 САС МЫСЛОМ ПРАВИЛЬНО
@anon36965 жыл бұрын
Life Good 🤣🤣🤣 извиняюсь
@МихаилТруб-г7ф7 жыл бұрын
Автор! Твои уроки просто замечательны! все легко и понятно, формат помогает полностью усвоить все что ты говоришь и показываешь! Продолжай в том же духе! Ты красавчик)
@edelectron10803 жыл бұрын
Человек, ты просто молодец!!!! Я пока ничерта в этом не соображаю, но мне ОЧЕНЬ ИНТЕРЕСНО!!!!
@Lomosat7 жыл бұрын
Прекрасные уроки. Всё по делу, куча полезного материала в единицу времени, приятный голос и музыкальное сопровождение. Вы талантливый преподаватель.
@Спец.агентПетрович9 ай бұрын
Уважаемый автор! Большое вам спасибо за ваши уроки!
@droncheg5 жыл бұрын
Спасибо за труд. Подача материала на высоте, благодаря этим урокам, рискнул взяться за освоение Ардуино
@ДенисГорлач-н5э3 жыл бұрын
Тоже начал осваивать язык ардуино. Спасибо автору за интересные ролики и доступное объяснение! Заметил один нюанс (возможно тут уже кто то об этом писал). Код с millis(); отрабатывает антидребезг только при нажатии на кнопку но не при отпускании (что при отпускамии у меня приводило к ложным срабатываниям). Антидребезг при отпускании устранился дописыванием той же конструкции (- last_press > 50 и last_press = millis();) во второй оператор if.
@mikurrey4168 ай бұрын
Воот, а я думал, это кнопка у меня такая задолбанная, что ей надо 200мс прописывать. Оказалось, тоже отпускание шумит. Спасибо за комментарий!
Все доступно, понятно, лаконично - максимум информации за минимум времени. Наглядно и качественно. Подписка, лайки и пожелание всех благ. Не останавливайтесь!!!
@LigSei4 жыл бұрын
Капец! Как же это интересно!
@wolchara255 жыл бұрын
Спасибо большое за твои уроки, очень хорошо помогли быстро разобраться во всем и решить поставленную задачу)
@ИгорьМягков-г2в6 жыл бұрын
сколько книг с темами по запоминанию состояния кнопки прочитал, это видео - самое понятное и эффективное объяснение! Молодчина, Алекс!
@ИмяФамилия-э4ф7в4 жыл бұрын
Эмммм, мне кажется, что вы слегка преувеличиваете. КНИГ (!) по запоминанию состояния кнопки.
@igorpopov5584 Жыл бұрын
пошел вон
@vsmakeev7 жыл бұрын
Как всегда коротко, но при этом детально разобран вопрос. Спасибо!
@skeppi84127 жыл бұрын
я вот ожидал шутки "батт-флаг - баттплаг". но я с годами, видимо, стал слишком пошлым :-) а вообще хорошее дело делаешь. я ради интереса смотрю, как второй канал любимого автора, хотя мне, к примеру, учиться тут особо нечему, ибо пишу давно и приходилось на дельфи, сишарпе, разных скриптах пилить код. даже клятые ладдеры копать приходилось :-) а со временем привыкаешь, что синтаксис - дело десятое, главное алгоритм :-) но очень многим без опыта поможет. респект!
@ArduNotes7 жыл бұрын
спасибо =) А шутка и правда лучше моей
@__5207 жыл бұрын
Спасибо, что в описании всё оставил!
@ПавелВасильев-д4ф6 жыл бұрын
Как и в остальных Уроках: четко, последовательно и обстоятельно. Великолепно!
@Werbard6 жыл бұрын
Как всегда лайк лучшему ардуинщику ютуба! Но... Есть проблемка... Такой обработчик кнопок отвалится через 49 (49,71026961805556) дней непрерывной работы устройства. Расковырял библиотеку - та же фигня, переход millis через 0 она не отрабатывает. Так что если устройство должно работать нонстоп (у меня это контроллер отопления на даче), то придется корчить сволй обработчик. Вот для примера счетчик секунд, можно и обработчик кнопок аналогично сделать ;) Кстати, пойду сделаю, я сюда именно в расчете на него и залез ) void loop(){ if(!isNewMillis && millis() > nextSec){ newSecond(); } else if(isNewMillis && millis() < oldSec && millis() > nextSec){ newSecond(); } } void newSecond(){ oldSec = nextSec; //задаем значение текущей секунды nextSec += 1000; //вычисляем следующую секунду if(nextSec < oldSec){ //проверяем будет ли следующая меньше текущей (таймер обнулился) isNewMillis = true; } else{ isNewMillis = false; } }
@amantaeveldar13007 жыл бұрын
if aa_old a^= digitalRead(); Функция XOR; С помощью нее можно взвести и сбросить флаг. Сократив цикл if.
@geek42776 жыл бұрын
if это не цикл)
@iriska22557 жыл бұрын
Вот умеет же человек обьяснить, просто и по делу.
@SMTHelse013 жыл бұрын
боже, Гайвер спасибо огромное! Только тут нашёл то, что искал 10 часов! СПАСИБО!
@iserdead4587 жыл бұрын
Шикарные уроки, ждём продолжения!
@Yaroslav.22 Жыл бұрын
Спасибо за классные видео
@vidi32665 жыл бұрын
Очень классно всё объясняешь!! Спасибо!
@МОЙХОСТИНГ-л9р7 жыл бұрын
Молодец. Видео приятно посмотреть, несмотря на то, что ты это всё давно уже знаешь. )
@sf_fs_kida3 жыл бұрын
Качественно, доходчиво, понятно!!!! КЛАС
@korbinos5 жыл бұрын
very well, please keep going in this way :)
@Daniel-lg9rg7 жыл бұрын
Нужно больше видео!!!
@nyanband22917 жыл бұрын
Было бы классно твои видосы внедрить в школы на уроки информатики, потому что там сейчас полный агхтунг! Пейнт, Карл, пейнт ещё самый первый((((( Ты не думал об этом?
@ЕрмаковГерман7 жыл бұрын
а кто там препода1ёт информатику? Зп начинающего учителя 12 000 р. Теперь к зарплате начиначиющего учителя добавь зп начинающего программиста хотя бы. В школе не должны учить программированию. Это прирагатива специализированных кафедр в вузах
@Werbard7 жыл бұрын
nyan band Герман совершенно прав. Ардуино вообще было придумано именно для студентов. А если внедрять это на уроках информатики - это уже уклон в одну сторону... или нужно все уроки усложнить до такого уровня... ммм... литература на уровне первых курсов филфака...
@alexeibelousov32797 жыл бұрын
в конце 90х в школе было то же самое, примитивные рисовалки в винде, примитивная печать текста в текстовых редакторах, немного электронных таблиц + бейсик. К сожалению многие даже этого не тянули. Ардуино в школе можно рассматривать как дополнительный кружок по интересам робототехники\моделирования
@hisbelhul7 жыл бұрын
программирование в среде паскаль с 7-9 класс
@nooooordy7 жыл бұрын
программированию надо учить начиная с детского сада. Никто ж не заставляет учить С++
@jdy.4 жыл бұрын
самое нормальное объяснение, которое я только смог найти, не то что хрень типа debounce прописаная в setup
@Klagerh7 ай бұрын
Спасибо за урок ! - КРУТО !!!
@neatcut51946 жыл бұрын
Просто ОФИГЕННЫЙ УРОК !!!!!!!!
@romaibragimov98725 жыл бұрын
Спасибо!!! Очень интересное видео!
@sergeikolesnikov65964 жыл бұрын
Ochen bistro kommentiruesh i pechataesh, dlya novichkov ochen tiazhelo za toboi uspevat. ne vse zhe programmers like you.
@BDV41 Жыл бұрын
Pause
@АлексейГулин-з7л7 жыл бұрын
Спасибо за видео. Вы лучший
@МойГараж-х9л7 жыл бұрын
Как всегда просто и полезно! С кнопками уже разобрался, но всё равно полезно иметь такую напоминалку =D
@Павел-б9ъ2ь7 жыл бұрын
Хорошо было бы если ты разобрал в видео функции и команды отдельно ,а уже потом показывал их применение .
@АндрейКирюхин-ж2д7 жыл бұрын
как всегда все понятно.
@sparksoul58143 жыл бұрын
Класс,наслаждение от видоса)
@sergeyselishchev40107 жыл бұрын
Алекс предлагаю идейку для проекта на ардуинке. Предлагаю сделать сигналку для дома, дачи квартиры. Канала так на четыре для возможности подключить разные датчики дым ,газ ,вода ,движение. Ну и конечно с оповещением на телефон что за лини сработала.
@Chitinec75rus7 жыл бұрын
Все оч. круто!!!!Жду с нетерпение обещанный урок по спящему режиму ардуино.
@Mexahoid7 жыл бұрын
Лайк за отсылку к флагштоку =)
@АлександрЛюбарчук7 жыл бұрын
Чувак самый что есть крутяк. УВАЖУХА
@vicitacal117 жыл бұрын
ахахахах Библиотека)))) Я об этом не знал, но инженерное мышление подсказало как регистрировать и нажатие, и удержание, и двойное нажатие без всяких библиотек. Теперь такая гордость из за этого.
@TheVitall7 жыл бұрын
Расскажи пожалуйста про это.
@vicitacal117 жыл бұрын
Когда кнопка нажата, запускается цикл, который каждые 100 мс добавляет 1 к переменной, потом когда кнопка отпущена, цикл заканчивается. Затем можно задавать параметры для интервала этой переменной. То есть в ней записано сколько времени кнопка была нажата.
@FaxMaxx5 жыл бұрын
Цитата с сайта alexgyver.ru/lessons/arduino-libraries/ "oneButton - библиотека для расширенной работы с кнопкой. На мой взгляд неудобная". А в видео говорится, что ЗАМЕЧАТЕЛЬНАЯ. За уроки СПАСИБО!!!
@elenapoplos95374 жыл бұрын
Спасибо за видео и советы
@Andrew-hh7ht3 жыл бұрын
СПАСИБО ЗА УРОК
@АндрейЖуравко-ж3с3 жыл бұрын
спасибо все понятно.РАБОТАЕТ!!!
@paulogorodetsky36567 жыл бұрын
Так вот чем ардуинщики в воскресенье утром занимаются:)
@morkoffka7 жыл бұрын
Это вчера вечером под пивко, а выложено утром :-)
@paulogorodetsky36567 жыл бұрын
Владимир Белов возможно 😉
@Taras1957 жыл бұрын
Первые два правила интернетов не забывай. Отсылка, конечно, хороша, но названия переменных и флагов в уроке хорошо было-бы использовать разными по звучанию, очень легко запутаться.
@xxx1667 жыл бұрын
Крутой канал все понятно и доступно, уважение !!!!!!!!!!!!!!!!!!!!!!! так держать, тебя ждет большое успех!!!! Когда следующие видосы ?
@ArduNotes7 жыл бұрын
+David Poshelyk осенью
@joni1234ize4 жыл бұрын
Спасибо за уроки, очень все классно. Единственная проблема у меня - качество моих кнопок такое, что время на устранение дребезга близко к времени, когда уже HOLD надо принимать))))
@jcdfce27076 жыл бұрын
Спасибо за видео. Переработаю свой код кнопки в проекте бортового компьютера для игры ETS2. На языке С не писал до ардуино, так что в новинку некоторые вещи. А Com-порт использую не только для дебага, но и для двухстороннего обмена ардуино с программой на Perl в проекте, в частности надо отслеживать нажатие кнопки.
@АндрійГубін-д5с5 жыл бұрын
Понял все. Спасибо!
@junyjell86146 жыл бұрын
СПАСИБО! НАКОНЕЦТО КНОПКА ЗАРАБОТАЛА
@МОЙХОСТИНГ-л9р7 жыл бұрын
Delay - бичёвская команда! )
@ИмяФамилия-э4ф7в4 жыл бұрын
Delay team...
@огурчикдоктораПопова-ъ2ъ7 жыл бұрын
Алекс!!! АУ, когда gyvermod!??
@МиронСмоляков-ч3ш Жыл бұрын
большое спасибо тебе даже мне школьнику всё ясно
@Jackson_Sam7 жыл бұрын
Спасибо! Всё супер!
@kanjosidr7 жыл бұрын
Отсылку оценил, спасибо :D
@valery46537 жыл бұрын
Расскажи, пожалуйста, как самому написать библиотеку для ардуино.Думаю, многим будет интересно.
@DEDUS.ARASAKA5 жыл бұрын
было бы неплохо начинать названия логических переменных со слова is. например isButtonPressed. повышает читаемость
@НатльяАлмосова3 жыл бұрын
спасибо за урок
@ravgim39542 жыл бұрын
А сколько пинов подтянуты внутренним резистором? Т.е. могу ли я подключить например 5-7 кнопок и все их подтянуть внутренним резистором?
@Disorrder4 жыл бұрын
Oh, yeees! Touch mu butt harder! А вообще, крайне рекомендую или полностью писать button, или хотя бы btn - это более широко известное сокращение, чтобы не было таких казусов) Вместо hold рекомендую события up/down. И в коде программы уже принимать решения как с ними быть. Хоть холд, хоть просто обработка нажатия.
@romanromanov88713 ай бұрын
Как подключить хотя бы 10 кнопок на один цифровой вход? Делаю кабину для авиасимулятора на pro micro, сейчас занимаюсь рудами, потом планирую делать фмс, там 69 кнопок, контактов свободных мало останется, мне нужно информация как подключить 10 - 69 кнопок на один цифровой вход?
@igorpr.81883 жыл бұрын
Класс! Спасибо большое!
@MrBestKenny4 жыл бұрын
Смотрю Ваши уроки. Возник вопрос с переключанием светодиода. Зачем писать состояние светодиода? Его разве нельзя считать через digitalRead? К примеру, когда кнопка нажата выполнять digitalRead пина, к которому подключен светодиод, и если там LOW, то ставить HIGH и наоборот. Или я что-то не так понимаю?
@PoMaHbl4_5574 жыл бұрын
Помогите!)) На Ардуино уно данный скетч не работает как надо... То есть при работе с консолью всё как положено: выводит надписи в соответствии с нажатием/отпусканием кнопки, а при попытке влепить туда управление светодиодом - кнопка срабатывает один раз, при чём сразу на нажатие и отпускание (даже если кнопку нажал и не отпускал) и на этом всё зависает. При этом если из кода исключить управление светодиодом, то в консоли кнопка работает согласно коду (уроку). В чём может быть проблема? пробовал как свой код, так и Alex_Gyver (который скачал и не менял) - результат одинаковый
@wadayom Жыл бұрын
А вот интересно, где скетч кнопки и светодиода через NRF24. Все скетчи в интернете не рабочие
@ПодоляковИван-в2у2 жыл бұрын
Здравствуйте. А где взять этот черновик по отработке нажатий, ссылка под видео не открывается. Спасибо.
@Vetalfoto6 жыл бұрын
Спасибо за классное видео. А как обрабатывать несколько разных кнопок?
@bitbanan4ik7664 жыл бұрын
На разные порты подключать кнопки от земли, либо можно помучаться и сделать все кнопки на аналоговый порт(разное напряжение - разный сигнал)
@SergeyKardakov7 жыл бұрын
Привет. Ты так классно все разжевываешь! Можешь запилить видео по созданию суточного таймера для включения-выключения света на несколько каналов? Таких видео много, но они какие-то неполные.. Авторы показывают конечный результат, и только...
@ВячеславЛяпин-г6з2 жыл бұрын
Ссылка на скетчи не открывается
@Владимир-г2ж4у6 ай бұрын
Имхо, дебаунс лучше писать в блоке отпускания кнопки, а не в блоке нажатия, чтобы МК не видел именно отпускание. А если писать в блоке нажатия, то в случае дребезга и удерживания кнопки дольше продолжительности антидребезга состояние светодиода изменится
@volodya1857 жыл бұрын
Я взял этот скетч.... Флажки - хорошо, но почему-то путает иногда двойное нажатие с одиночным, подумал, подумал, решил сам написать свою программку обработки и ура, всё работает. ( я решил, что выполнение кода всё время пока зажата кнопка не нужно и не добавлял это, а главное, если понадобится можно всегда дописать )
@ArduNotes7 жыл бұрын
+MrKpoT а скинь на почту :3 адрес на странице о канале, для коммерческих вопросов
@kelrimor27205 жыл бұрын
Пасиба, решил свою задачу. Но дописал удобную функцию, чтоб меньше руками писать. Мою функцию вставить после конца главного цикла ... bool btn1=false; bool btn1_flag=false; void loop{ //Здесь ваш код if(btn1 && !btn1_flag && cooldown() ) { btn1_flag=true; } // } // // //Отсюда начинается //моя функция // unsigned long last_press=millis(); unsigned long Time=0; bool cooldown(){ Time=millis()-last_press; bool x=Time>50; //50 можно заменить на //любую свою задержку //в миллисекундах last_press=millis(); return x; } Суть в том, что функция отработает задержку сама если ее вызвать в виде if(A&& cooldown()) ,где А - ваши проверки кнопок или чего-нибудь ещё cooldown () - проверка как в играх откат способности. Тот же смысл и здесь. Проверка на возможность использования части кода в данный момент времени
@kelrimor27205 жыл бұрын
Есть возможность добавить аргумент по умолчанию в функцию для указания времени задержки. Но после этого функция сразу потребовала указывать себя до основного кода. Поэтому сюда не привёл.
@ЕвгенийЗамащиков-д1э7 жыл бұрын
Код в конце видео не спасает от дребезга. Дребезг срабатывает, через указанную millis. Если задержку поставить в секунду, то дребезг и сработает через секунду. Флаг меняется в цикле if, тоесть, сработает после задержки millis. Хорошо только то, что срабатывает повторно, если совпадет условие после дребезга кнопки, а не 5-10 раз как дребезжит кнопка. =)) Надеюсь поняли))) Если попробовать двойной if сделать, в первом меняется логика кнопки, во втором, если задержка меньше - игнорировать, если больше - выполнить код в if. Что-то наподобие вот этого: if (butt == 1 && butt_flag == 0) { butt_flag = 1; if (millis() - last_press > 1000) { releOn = !releOn; digitalWrite(rele1, releOn); Serial.println("Button pressed"); last_press = millis(); } else { Serial.println("drebezggg"); } } Но это не точно. У меня этот код вроде работает. У меня всё на реле завязано, поэтому подписано реле )) В целом код мне нравится, попробовал сделать включение нескольких источников на 4 кнопки, задержку миллис поставил в секунду. Мне нравится, да и эта миллис просто открытие для меня, не то, что этот делей))
@dmitry57546 жыл бұрын
Проверку (millis() - last_press>0) надо вставить на отпускание кнопки: if( !butt && butt_flag && millis() - last_press>0) в примере возможно неточность, т.к. там проверяется время повторного нажатия, что бессмысленно (нажатие уже зафиксировано в butt_flag ).
@murwi96757 жыл бұрын
Алекс, привет! Покажи пожалуйста туториал по ИК приемнику.
@gflviv39177 жыл бұрын
Алекс, привет! Хочу предложить тебе крутую идею для нового видео. В чем суть: прибор на ардуино который будет считать витки, сделанные намоточным станком и выводить их на экран, но при кручении намоточной болванки в одну сторону ардуино будет прибавлять витки, а при кручении в обратную отнимать их. Я думал об этом и вот, к чему дошёл: Появилась идея использовать 2 датчика холла таким образом, чтобы при считывании последовательного сигнала сначала с первого датчика, а потом з второго ардуина понимала , что нужно прибавить виток, а если наоборот (сначала с второго а потом с первого), то убавить. Или как-нибудь механически передавать информацию о стороне кручения болванки на ардуину. Думаю эта идея тебе понравиться. Отпиши мне что думаешь об этом. (или помоги советом)))) Надеюсь на твою помощь.
@НикитаДоронин-р6к6 жыл бұрын
Сделай пожалуйста видео про графику.Что-бы ардуино по желанию могла рисовать на экране.
@radio-active74117 жыл бұрын
А подскажите как сделать нажатие из 4-х раз?
@TarasMoskalenko3 жыл бұрын
уже ссылка на скетч не доступна можно куда нибудь продублировать)
@kirznervadim70725 жыл бұрын
Кстати, скорее всего , что надо устанавливать задержку на антидребезг и для отжатия состояния. Т.к. если нажать кнопку и удерживать ее дольше времени на антидребезг, то может проскочить дребезжание при отжатии кнопки. как-то так.
@netlineWiFi7 жыл бұрын
*Уроки замечательные!* Все шесть прошел и вот жду следующий выпуск, так интересно стало. Кстати, что ты думаешь о Fritzing, я имею ввиду писать код, прошивать МК и смотреть в монитор COM-порта, почти все нужное там есть для прошивки, как в Arduino IDE. Или дефолтная IDE лучше?
@ElfimAirman7 жыл бұрын
подскажи Arduino PRO micro прошивать только через специальную плату для прошивки или можно на прямую с компа
@megacatsky31522 жыл бұрын
дякую
@MakeFirePro7 жыл бұрын
Привет из Люберец :)
@Максим-ш4ж5ъ5 жыл бұрын
Подскажите какую библиотеку или скейч установить для открывания автоматических варот.
@Сергей-л7ж9щ5 жыл бұрын
Супер!!!
@кисаворобьянинов-ь3с3 жыл бұрын
Скетчи из урока не открываются.
@channeltovar3 жыл бұрын
спасибо теперь надо сообразить как работает гирлянда и попытаться повторить в качестве урока
@salmantechnologies2823 жыл бұрын
sir please explain the checkbox how it works
@fensrg2 жыл бұрын
2:53 первое условие выполняется кнопка нажата, флаг не поднят -> поднимаем флаг ( в этот момент пользователь отпускает кнопку и мы попадаем на второе условие конопка отпущена флаг поднят мы попадаем во второе условие и снимаем флаг... тут вместо if + if должно быть else if или elseif в зависимости от языка...
@nikolaiuser31902 жыл бұрын
дребезг можно легко убирать программно. if(digitalRead(0) == 0){ //делаем что-то while (digitalRead(0) == 0); // не даем программе выйти пока кнопка держится) }
@ИванКрасноярский-е3я Жыл бұрын
спасибо, работает
@movsarayubov4793 жыл бұрын
у меня вопрос возник, зачем мы ввели переменную last_press? какую роль он там выполняет? Разве программа не будет работать если просто оставить millis() > 50?
@ДанилаАндреев-ы6л6 жыл бұрын
Скажите пожалуйста, как вы саму схему собирали? в дигитал 3 совали плюс, и со стороны дигитал гнд? или как?
@pavel_light21797 жыл бұрын
Сделай ещё один урок пожалуйста!!)
@Vadim_Dudin7 жыл бұрын
Pavel_Light он уехал минимум до августа, поэтому роликов за это время точно не будет.