Что бы там ни говорили "серьёзные дядьки-программисты", осознание того, что светодиод загорелся потому, что это микроконтроллер выполнил, написанный тобой, программный код, доставляет огромную радость! Алекс, спасибо за твои уроки! Смотрю и учусь потихоньку, восторгаясь открытиями :)
вы пишите не код, а СИ-образный скрипт. а уже среда компилирует его в код данного МК. с ей (среде) только известной степенью эффективности. если хочется писать код, то это ассемблер. разный, с кучей разных заморочек под разные МК.
@@fokinDim но ведь программа, написанная на языке ассемблера, - это тоже скрипт для ассемблера. Вот если хочется писать "настоящий код", тогда уже машинными кодами в бинарном виде. Все остальное так - детские поделки всяких ассемблер скриптеров-недоучек. А если по существу, так все эти ваши ужимки на программируемом чипе - это неэффективно, программы надо паять прямо в железе nand-гейтами, тогда работать будет быстро. Это точно тру.
@@agilov @agilov нет, ассемблер это не скрипт! это и есть машинный код определенного процессора/контроллера, просто в виде лучше читаемой мнемоники. например, эти записи совершенно тождественны. это одно и то же: org $A000 ld a, FF call $1000 A000: 3E A001: FF A002: CD A003: 00 A004: 10 A005: но я кажется понял, о чём вы: если вы выставляете кусок на асме (да хоть в 0x0000h кодах) среди скрипта в си-компиляторе приложений под операционные системы (!) и такой радостный думаете, что на этом куске процессор, для которого вы пишите реально откроет вам свои регистры, какие вы назначили, флаги, адресное пространство .. то хаха, скорее всего - нет. но это не отменяет факта, что ассемблер - это и есть машинный код.
@@fokinDim все верно ассемблер это не скрипт, ассемблер это программа, которая читает скрипт написанный на языке ассемблера, интерпретирует его и на выходе выдает последовательность машинных комманд уже на чистом машинном языке. Если мне не верите - почитайте вот эту статью например: ru.wikipedia.org/wiki/Ассемблер. Прошу прощения, конечно, что срываю покровы и разрываю шаблоны, но файл с текстом на языке ассемблера это скрипт и с этим ничего не поделать, придется с этим жить.
Когда я первый раз запрограммировал моргание светодиода лет 20 назад, и он заморгал, я поумал, что это совпадение, и на этой ноге всегда все моргает и лишь изменив delay я понял что я повелитель моргания
Где были эти уроки, когда я решился попробовать дуинки и писать скетчи... Без понимания простых вещей даже сайт с описанием команд не особо помогал. А теперь вот смотрю выпуски, имея маленькое понимание происходящего, да познаю новое) большое спасибо!
Самое главное даже ребёнку в 12 лет все понятно. Я поражаюсь до них доходит быстрее, чем до некоторых взрослых. Классно приподносишь материал. Респект!
Так детский мозг более пластичен и готов ко всему новому. Я помню в младших классах запоминала английские слова чуть ли не с первого раза, а сейчас так не могу, надо напрягаться немного.
Спасибо за видео. Можно дополнить, что если включить между А5 и 5+ резистор (по примеру резистора между А5 и GND), то получим INPUT_PULLUP с внешним резистором (А5 "притянется" к 5+). То же самое произойдет со всеми остальными входами, они перестанут "дребезжать" и притянутся туда куда включат резистор.
Одно понять не могу, на 4:37 у автора пропиcан pinMode(13, INPUT); И при запуске COM порта на button2 нулевое значение, а сведиот L не светиться, у меня также прописан код,только (МК UNO), но при запуске светиод L загорается и button2 выдает значение 1. C чем это связано?
В самом последнем скетче: строку boolean button1 и далее - упразднить. Cледующую за ней строку тоже стоит упразднить (ибо 13 порт - выходной, и зачем мы с него что-то читаем - непонятно). Условие if - упразднить. добавить digitalWrite(13,!digitalRead(A5));
Блин, ну ты даешь! Я поставил видео на паузу, написал код как ты показал - так все начало глючить при приближении руки к плате. Полез в нет, ничего толком не нашел, задолбал после посетителей форума амперки - и тогда нашел эти два варианта с резистором и через пуллап. После этого как все начало получатся продолжил смотреть ролик - и ты все через 30 сек сказал!)
Привет, Алекс! Никак не могу понять почему на моменте 4:52 у тебя на второй кнопке сигнал равен нулю. Ведь ты убрал старую прошивку, на которой подавал на D13 низкий сигнал. Разве светодиод на плате не должен снова гореть и сигнал быть единицей на Button2 ?
Алекс, спасибо за материал. Только по синтаксису хотел бы тебе на заметку сказать, что есть практики написания "читаемого" кода, в котрых рекомендуется, например, в обязательном порядке, ставить фигурные скобки для конструкций иф-элс, и прочее-прочее (есть дажее штуки типа tslint и типа того, которые подсвечивают "кривой" синтаксис в средах разработки).... В том числе различные принципы типа DRY и тому подобное. Думаю тебе, как человеку увлеченному, полезно будет ознакомиться, хотя бы для общего развития + опять же плюс в карму от бородатых трукодеров :) Код станет более читаемый и понятный. Это не претензия и не нравоучение - просто заметка бывалого программиста :) В остальном - спасибо! Большое дело делаешь, и делаешь хорошо!
Это все правильно и хорошо, но Arduino IDE просто заставляет ненавидеть чистый код со всеми ее через задницу работающими отступами, глючащими подсказками и прочими "прелестями".
@@Bagasl Нет. КЗ это короткое замыкание, при котором по элементам цепи идёт недопустимо большой ток, в следствии чего как правило элемент выходит из строя. А резистор ограничивает этот ток до приемлемых величин
Я с тобой не соглашусь по портам. Один порт объединяет несколько пинов. На ардуино нано доступно три порта: PORTD(цифровые пины D0-D7), PORTB(цифровые пины D8-D13), PORTC(аналоговые пины А0-А5). Вместо того, чтобы возиться с каждым пином по отдельности, иногда легче задавать значение всего порта сразу, к примеру, при управлении семи-сегментным дисплеем в режиме развёртки напрямую от ардуино.
Вот информация на официальном сайте arduino: www.arduino.cc/en/Reference/PortManipulation Следует заметить, что управление портами напрямую работает быстрее, нежели digitalWrite или digitalRead, об этом написано тут, например: www.billporter.info/2010/08/18/ready-set-oscillate-the-fastest-way-to-change-arduino-pins/
😅 отлично но здесь надо было добавить в описании подтягивающий резистор входу Ардуино. Но и так понятно. Но выходным ненужны ли стягивающие? Потому что они тоже могут давать наводки или нет? Потому что если один выход равно 1 а другой выход 0. То будут ли неверные показатели??😊
(5:00) Может статься, что у меня NANO слишком уж китайская, но в моем случае определение цифрового сигнала происходит корректно без резистора и без INPUT_PULLUP
Для новичков. Итоговый код будет более оптимален в таком виде: boolean but; void setup() { Serial.begin(9600); pinMode(A5, INPUT_PULLUP); pinMode(13, OUTPUT); } void loop() { if (but == digitalRead(A5)) { but = !digitalRead(A5); digitalWrite(13, but); Serial.print("Button: ");Serial.println(but); }
} Не будет постоянной отправки данных на 13 пин и в консоль, в которой не будет постоянного мерцания значений.
Алекс, а что по поводу встроенной поддтяжки входов, есть ограничения? Читал рассуждения на тему выжигания ног МК... Не будет ли надежнее использовать внешние резисторы? Что думаешь на этот счет?
отлично работает от USB, но когда питаю от кроны 9В через входы Vin и GND то не работает. Как правильно подключать кнопку при использовании внешнего питания?
У проводов есть паразитная емкость. Убираем провод - заряд остаётся. С резистором по другому - у него огромное сопротивление, и когда подключены настоящие 5 вольт, то он не может спустить весь ток на землю (ардуино видит высокий сигнал), но когда мы выдернули провод - резистор спускает маленький остаточный заряд на землю (ардуино видит слабый сигнал 0v или LOW). С pullup резистором всё примерно так же, но притягиваем не к земле, а к 5 вольтам. Как то так.
+kkjey wheiss он не убирает ошибки. Он устанавливает на пине четко понятное для микроконтроллера напряжение. Без подтяжки пин висит в воздухе, и ловит всякие наводки
Спасибо. Но хотелось бы обьяснения почему с подключением резистора сигнал начал читаться нормально. И почему когда мы используем PULLUP нам не нужны +5V, а вместо этого мы подключаем к земле. Откуда у нас тогда высокий сигнал идет?
Алекс, ты МОЛОДЕЦ!!! У меня есть то набор, который ты показывал(или рекламировал))) и ещё дополнительно куча барахла к нему. Вот я в JavaScript - прошареный паца, а в c++ вообще 0. Половину того, что ты рассказываешь я знаю. Только немного отличается.
Алекс, дай пожалуйста ссылку, чтобы почитать и понять, зачем и когда и насколько Ом подключать резисторы?! (что здесь, что при работе с масфет-транзисторами - не пойму) Буду очень признателен!
Хотелось бы подробнее узнать о нюансах ардуинки и основах электроники, для понимания, а не для запоминания. Например, не понятно откуда берётся питание 5v в последней схеме на входе pinMode(A5, INPUT_PULLUP). Как я понял, вписывая "INPUT_PULLUP", мы не просто добавляем подтягивающий резистор, а ещё напряжение 5v на входной пин. То есть, ардуинка замыкает 5v и пин и постоянно выдаёт логическую единицу на любом пине, где прописано "INPUT_PULLUP".
Пулап и есть подключение (подтягивание) пина внутренним резистором к пяти вольтам. То есть на пине они есть и стабильно читаются как логическая единица. Однако при прямом замыкании пина на землю кнопкой на нем получается логический ноль.
Я сам не очень шарю и возможно стоить спросить у ChatGPT. Насколько я понимаю все дело в законе Ома(можете погуглить), короче говоря, без сопраьевления что-то сгорит
Конкретно в этом случае резистор нужен, так как после отключения порта А5 от порта 5V, тот остается «чувствительным» и ловит всякие шумы, поэтому его значение может скакать то на 0, то на 1. А резистор это как клапан, через который мы сливаем этим заряды-шумы в заземление, чтобы они нам не мешали. И так как сопротивление маленькое, то оно при этом никак не влияет на то, когда мы порт А5 снова подключаем к 5V - порт будет снова показывать 1. ЧатГПТ и правда может неплохо объяснить. Можно его еще просить объяснить подробнее и с аналогией в виде воды и труб.
Если брать аналогию с водой, то без резистора у нас порт А5 чувствительный остается и на нем может оседать роса или дождик мелкий идет (шумы из окружающей среды) и он это улавливает, и то 1 показывает, то 0. Заземление в нашем случае это огромный бездонный бак в земле для слива воды в него ненужной. А резистор это тоненький шланг небольшого диаметра - такой тоненький, что через него совсем немного воды утекает. И он подключен к А5 порту и к заземлению. И поэтому все шумы, которые оказываются на порту А5 - вся эта небольшая влага, стекают в наш бездонный бак заземления и никак не влияют на порт А5, поэтому он показывает 0 благополучно, а не скачет туда-сюда. А если мы подключаем порт 5В, то это как водонапорная башня - в ней вода под давлением и вода с нее стекает по обычному проводу-шлангу в порт А5. И этот провод - он не такой узкий, как резисторный шланг, по нему сразу много воды течет от водонапорной башни 5V к порту А5. При этом через резисторный шланг по-прежнему вода стекает помаленьку. Но это значение такое маленькое, что никак не влияет на основную подачу, поэтому когда от порта 5В ток идет к А5, резистор не влияет особо, и А5 показывает, что напор воды большой (Button1: 1)
Алекс, а какая мощность рассеивания у встроенного резистора (ВР) в Ардуинках? Я правильно понимаю, что ВР всегда будет работать штатно (ведь ток управления копеечный должен быть...), и можно все пины управления/чтения на всех навешанных модулях притягивать через него?
у меня ардуино UNO выдает 1 без какого либо подключения, когда подаю LOW (GND) значение меняется на 0, то есть инвертированные показатели, почему так? void setup() { pinMode(A5, INPUT_PULLUP); Serial.begin(9600); } void loop() { boolean but1 = digitalRead(A5); Serial.println(but1); }
То же самое, диод горит при подключении (по умолчанию), соответственно 1, а в ролике он не горит (0). Это именно на УНО, а подключаю Нано и всё идет как в ролике.
подтверждаю! Тут непонятки на UNO, Алекс, внеси ясность, такой баг с самого начала изучения подталкивает на уничтожение ардуинки)) Инверсия выходит, когда подаю сигнал на 13й пин - диод потухает. Инверсия ничего не дает, только отображение в окне вывода, но на диод не влияет.
Алекс, а почему у тебя программа работает, при несоблюдении синтаксиса ? 6:52 Там ты не ставишь фигурные скобки, после условия, и все работает. А у меня так не работает ? Это зависит от версии IDE ? Или я что то неправильно делаю ?
Всё очень интересно и понято. Спасибо большое за урок! Кстати, у меня одного проблема с контактами, когда подключаю к белой плате? Контакт то есть, то его нет. Если делаю всё напрямую, то норм, а на плате как-то странно...
Недавно узнал: "тактовая кнопка" на самом деле ТАКТИЛЬНАЯ кнопка. )) Т.е. такая кнопка, которая отзывается кликом на нажатие (обеспечивает оператору тактильные ощущения = осязание события нажатия кожей пальца ). Даже не знаю, зачем я всё это написал. Всё равно всё останется как есть. +1 за труды, всех благ!
Алекс, вопрос. Ты говоришь, что в этом видео речь о цифровых пинах, но выдаёшь ток на аналоговом. Пул_ап резистор он один для все выходов, или у каждого выхода свой? И не совсем понятно, декларируя я могу сказать int a = A5 но для диджитал D5 писать не надо, откуда система знает что int b = 5 это константа b, а не выход 5-ого пина?
Цифровой пин это такое себе условное название, большинство пинов с индексом А также могут работать в режимe Input/Output. Подтягивающий резистов свой для каждого пина. А5 в системе это имя постоянной переменной, значение которой задано 19; вызовите контекстное меню на А5(правая кнопка мыши) и выберите "Go to Definition"
Спасибо огромное!!!! Я новичек и мне дико понравилось особенно в вашем изложении. Не откажите в любезности у меня два вопроса 1 - как сделать что бы светодиод моргнул один раз при включении? 2- как написать скетч что бы светодиод загорался только в том случае когда на трех входах единица а если хотть на одном ноль то не загорался? Возможно это банально но мне пока сложно. Буду очень рад если поможете.
Здравствуйте, задали такое задание, нужно использовать три тумблера или кнопки (Т1, Т2, Т3) и три разноцветных светодиода (красный, жёлтый и зелёный). Включение светодиодов должно определяться состоянием тумблеров в соответствии с таблицей вариантов заданий. Условия включения красного светодиода -Одновременно включены 1 и 2 тумблеры или выключен 3 тумблер. Условия включения жёлтого светодиода - Одновременно включены 1 и 3 тумблеры. Условия включения зелёного светодиода - Включён 2 тумблер. Помогите разобраться с кодом пожалуйста. Тут основано на булевых переменных, код необходимо писать исходя из таблицы истинности(имеется).
привет, Алекс. У меня плата ардуино уно, код в IDE точно такой же как у тебя. Ардуинка прошита этим кодом, подключена, но не работает с кнопкой это можно как нибудь пофиксить или нет?
Быстро все объясняешь, на скорости 0.75 только можно уловить суть. А так отличные видео, с книгой по ардуино сидел неделю, так и ничего не понял, а тут все понятно. Спасибо, ждем новые видео. С термодатчиками бы что нибудь и датчиками влажности.
Здоров Саня! Такой вопрос. Как к одной ардуино, (допустим нано) подключить и реле на 8 выходов, от 8 ми кнопок, и градусник, и сервопривод, от резистора, все одновременно. имею в виду как скетч выглядит...
Алекс, я так обрадовался когда ты начал делать эти уроки. Ждал каждый, но пока они выходили выучил всё сам. Перерывы чертовски долгие. Я понимаю тебе сложно, но выбери определённую тему. Страдают все! И люди с квадрокоптерами и всякие оружейники и Ардуинщики и чёрт возьми даже вейперы!!!
Serial.print("Button1: " + (String)but1 + ", Button2: " + (String)but2 + " "); То же самое, только занимает одну строку. оператор + объединяет строковые значения тоже.
Непередаваемое ощущение, когда впервые зажигаешь светодиод на плате) Спасибо) Кодревью: Можно без if/else писать: --------------------------------------------------------------------------------- boolean buttonIsPressed = false; void setup() { pinMode(A0, INPUT_PULLUP); pinMode(13, OUTPUT); } void loop() { buttonIsPressed = !digitalRead(A0); digitalWrite(13, buttonIsPressed); } --------------------------------------------------------------------------------- В данном случае, можно и переменную не объявлять, тогда код будет выглядеть так: --------------------------------------------------------------------------------- void setup() { pinMode(A0, INPUT_PULLUP); pinMode(13, OUTPUT); } void loop() { digitalWrite(13, !digitalRead(A0)); } ---------------------------------------------------------------------------------
@@serega3214 Индикаторная лампочка L у порта 13 имеет неопределенное напряжение без установки подтягивающего резистора (INPUT_PULLUP в коде), то есть значения могут прыгать от 0 до ~ 1В. Вы тем более у компа наверняка сидите, а это источник помех. Можно замерить вольтметром на "чистой" программе контакты порта и земли, там не всегда 0. Короче не заморачивайтесь, главное чтобы с подтягивающих резистором все работало.
@@ПавелОсокин-ш3г, у меня после кодключения подтягивающих резисторов всё равно значение прыгает 1-0. Юзаю плату Arduino DUO. Может знаете, с чем это связано? Может из-за того, что резисторы на самой плате слабые, ибо когда подсоединяю дополнительно, то проблема пропадает...
@@artemkhrb3071 Вы про 13 пин говорите? Просто достаточно давно сталкивался с такой проблемой у UNO с 13-й индикаторной лампочкой, искал в интернете почему у меня такое происходит, даже подумал, что плата сломана) У нее (мелкой лампочки) там прикол в строении, к тому же плата же не оригинальная (хотя проблем у меня не было, только с подключением - драйвер скачать). Да и на самом деле пофигу) На практике вы скорее всего будете выводить на отдельный пин обычный 2-вольтовый красненький светодиод (нагрузка - ключевое слово) и использовать INPUT_PULLUP в коде, когда захотите отследить нажатие кнопок например. Проблем не будет.
Здравствуйте! Не могли бы вы сделать что-то типа сигнализации, работающей через модуль NRF24L01 с вибродатчиком? При вибрации идет сигнал на ардуино и загорается светодиод на 3-4 секунды. Буду благодарен! Смотрю все ваши видео, так вот и сам хочу что-то смастерить.
If (button1 = 1) digitalWrite(13, 1); else digitalWrite(13, 0); От этих строк меня, програмиста с двадцатилетним стажем, ПОКОРОБИЛО! Оно, конечно, работает, но лучше написать просто: digitalWrite(13, button1);
Жаль с универом у тебя нет времени на уроки ) пока ждал уже сам разобрался с шаговиком, лсд и некоторыми другими штуками ) Но все равно то-то полезное, но узнаю. Благодарю )
может кто подсказать!!?? у меня Arduino UNO R3 сделать все как у автора на 5:00 минуте но почему-то вижу что оба пина выдают 1 а не 0 (без подключения 5V) проблему решил изменением INPUT на OUTPUT почему так? может кто подсказать? и ещё у меня все работает стабильно даже без подключения резистора это нормально?
Почему то у меня D12 и D13 по умолчанию в ком порте выдают 1, даже в сетапе вводил digitalWrite(13, 0) после компиляции и загрузке все равно выдает 1 и зажигает светодиод. Зато с А5 все нормально, работает как в видео...
Вот это совсем другой вид уроков! я заново все учу и выкидую стили других уроковедов! Я думал что кнопке нужно +5 вольт всегда на ее распознавание и подачи тока на цель. светодиод скажим!
Здравствуйте. Имеется Ардуино Леонардо. Нужно подключить кнопки к всем входам. Тоисть 14 кнопок. Но, все работаю кроме пин 0. Как можно его задействовать?
Вообще НЕ рекомендуется подавать напрямую на порт напряжение питяния. Если случайно порт сконфигурирован как выход и на нём установлено состояние 0, то подача напряжения питания на такой порт выжгет порт в контроллере. Чтобы этого избежать, подавать напряжение на порт лучше через резистор (например от 1 кОм до 10 кОм). На землю порт тоже лучше напрямую не коротить, т.к. если порт настроен как выход и на нём находится высокий логический уровень, то замыкание с землёй взовет перегрузку выходного каскада порта. В любом случае к порту лучше подключить последовательный резистор 1 кОм. Он убережет порт от выгорания в случае ошибок. В крайнем случае номинал резистора можно уменьшить, но хотя бы 50-100 Ом крайне желательно.
Алекс, у меня Arduino NANO. Я установил все программы, всё работает, но у меня не горит светодиод зелёным на ардуинке как у Вас на видео. Это проблема или нет?
Что бы там ни говорили "серьёзные дядьки-программисты", осознание того, что светодиод загорелся потому, что это микроконтроллер выполнил, написанный тобой, программный код, доставляет огромную радость! Алекс, спасибо за твои уроки! Смотрю и учусь потихоньку, восторгаясь открытиями :)
вы пишите не код, а СИ-образный скрипт. а уже среда компилирует его в код данного МК. с ей (среде) только известной степенью эффективности.
если хочется писать код, то это ассемблер. разный, с кучей разных заморочек под разные МК.
@@fokinDim но ведь программа, написанная на языке ассемблера, - это тоже скрипт для ассемблера. Вот если хочется писать "настоящий код", тогда уже машинными кодами в бинарном виде. Все остальное так - детские поделки всяких ассемблер скриптеров-недоучек. А если по существу, так все эти ваши ужимки на программируемом чипе - это неэффективно, программы надо паять прямо в железе nand-гейтами, тогда работать будет быстро. Это точно тру.
@@agilov @agilov нет, ассемблер это не скрипт! это и есть машинный код определенного процессора/контроллера, просто в виде лучше читаемой мнемоники.
например, эти записи совершенно тождественны. это одно и то же:
org $A000
ld a, FF
call $1000
A000: 3E
A001: FF
A002: CD
A003: 00
A004: 10
A005:
но я кажется понял, о чём вы: если вы выставляете кусок на асме (да хоть в 0x0000h кодах) среди скрипта в си-компиляторе приложений под операционные системы (!) и такой радостный думаете, что на этом куске процессор, для которого вы пишите реально откроет вам свои регистры, какие вы назначили, флаги, адресное пространство .. то хаха, скорее всего - нет.
но это не отменяет факта, что ассемблер - это и есть машинный код.
@@fokinDim все верно ассемблер это не скрипт, ассемблер это программа, которая читает скрипт написанный на языке ассемблера, интерпретирует его и на выходе выдает последовательность машинных комманд уже на чистом машинном языке. Если мне не верите - почитайте вот эту статью например: ru.wikipedia.org/wiki/Ассемблер. Прошу прощения, конечно, что срываю покровы и разрываю шаблоны, но файл с текстом на языке ассемблера это скрипт и с этим ничего не поделать, придется с этим жить.
@@fokinDim А вы - душите без особой на то причины
не думал, что когда-то буду так радоваться загорающемуся диоду на микросхеме
ааааа я аж плакал когда прочитал +++++++++++++++++++++++
@@ИльяЕвгеньевич-б9ь ))))))))))))))))
Добрый день! Сделайте пожалуйста видео как сделать сервотестер штобы углы отклонения сервомашинки можно было видеть на экране монитора.
Когда я первый раз запрограммировал моргание светодиода лет 20 назад, и он заморгал, я поумал, что это совпадение, и на этой ноге всегда все моргает и лишь изменив delay я понял что я повелитель моргания
я который затрахался искать нужный резистор, выпаивал его с платы...... а потом мне сказали про встроенный
Где были эти уроки, когда я решился попробовать дуинки и писать скетчи... Без понимания простых вещей даже сайт с описанием команд не особо помогал. А теперь вот смотрю выпуски, имея маленькое понимание происходящего, да познаю новое) большое спасибо!
Самое главное даже ребёнку в 12 лет все понятно. Я поражаюсь до них доходит быстрее, чем до некоторых взрослых. Классно приподносишь материал. Респект!
какие умны дети мне 40 лет нихрена не понятно
Так детский мозг более пластичен и готов ко всему новому. Я помню в младших классах запоминала английские слова чуть ли не с первого раза, а сейчас так не могу, надо напрягаться немного.
Какой же ты молодец, фантастически качественный контент! Тысячу раз благодарю!
Во вот таких уроков по больше, для меня новичка очень понятно стала работа кнопки
Спасибо! Благодоря этим уроком время от времени делаю всякие полезные штучки!
Автор, огромная благодарность тебе за твои уроки. Все понятно и приятно слушать. Обнял!
приподнял
спустя 2 дня и кучи нервов этот чертов светодиод начал загораться с кнопки!!!!! паск*уда)))))
Спасибо за видео.
Можно дополнить, что если включить между А5 и 5+ резистор (по примеру резистора между А5 и GND), то получим INPUT_PULLUP с внешним резистором (А5 "притянется" к 5+). То же самое произойдет со всеми остальными входами, они перестанут "дребезжать" и притянутся туда куда включат резистор.
Одно понять не могу, на 4:37 у автора пропиcан pinMode(13, INPUT);
И при запуске COM порта на button2 нулевое значение, а сведиот L не светиться, у меня также прописан код,только (МК UNO), но при запуске светиод L загорается
и button2 выдает значение 1. C чем это связано?
Огрооомнейшее спасибо, Алекс!
4:38 странно, у меня изначально не по нулям, а с лева 1, а справа 0. Почему так?
у меня тоже, не могу найти проблему
Спасибо Гайвер сделал урок счастья до конца дня.
спасибо за input_pullup а то я уже замучился с этими резисторами (много кнопок), теперь буду знать
Я заказал с твоего сайта ардуинок пару тройку штук, уже 3 недели едут, думаю скоро доедут, ох как не терпится повтоять за тобой.
Ураа! Новая серия! Божеж, ты можешь, прям счастье!
В самом последнем скетче: строку boolean button1 и далее - упразднить. Cледующую за ней строку тоже стоит упразднить (ибо 13 порт - выходной, и зачем мы с него что-то читаем - непонятно).
Условие if - упразднить.
добавить digitalWrite(13,!digitalRead(A5));
+Chuviw да знаю. Это не готовый код, это просто пример работы
Блин, ну ты даешь! Я поставил видео на паузу, написал код как ты показал - так все начало глючить при приближении руки к плате. Полез в нет, ничего толком не нашел, задолбал после посетителей форума амперки - и тогда нашел эти два варианта с резистором и через пуллап. После этого как все начало получатся продолжил смотреть ролик - и ты все через 30 сек сказал!)
Привет, Алекс! Никак не могу понять почему на моменте 4:52 у тебя на второй кнопке сигнал равен нулю. Ведь ты убрал старую прошивку, на которой подавал на D13 низкий сигнал. Разве светодиод на плате не должен снова гореть и сигнал быть единицей на Button2 ?
тоже самое, плюсую
Алекс, спасибо за материал. Только по синтаксису хотел бы тебе на заметку сказать, что есть практики написания "читаемого" кода, в котрых рекомендуется, например, в обязательном порядке, ставить фигурные скобки для конструкций иф-элс, и прочее-прочее (есть дажее штуки типа tslint и типа того, которые подсвечивают "кривой" синтаксис в средах разработки).... В том числе различные принципы типа DRY и тому подобное. Думаю тебе, как человеку увлеченному, полезно будет ознакомиться, хотя бы для общего развития + опять же плюс в карму от бородатых трукодеров :) Код станет более читаемый и понятный. Это не претензия и не нравоучение - просто заметка бывалого программиста :) В остальном - спасибо! Большое дело делаешь, и делаешь хорошо!
vsem pohui
@@llllNEOllllchannel я не все, мне нужны скобки и комментарии.
Это все правильно и хорошо, но Arduino IDE просто заставляет ненавидеть чистый код со всеми ее через задницу работающими отступами, глючащими подсказками и прочими "прелестями".
Алекс) спасибо за труды!
На 5:15 пин D13 работает корректно потому что по умолчанию на схеме к нему подключен светодиод через резистор?
Ты великий ардуинщик, желаю тебе удачи
PULLUP можно использовать один раз? Или сколько угодно, и не перегрузится ли резистор?
10ком, даже если 20 портов не страшно, до 50ма не дойдет
@@МаксЛычагин-ъ5э ты, я смотрю, шаришь в электронике, резистор для чего там нужен?
@@Bagasl чтобы не спалить плату, если + 5 вольт соединить с - 5 вольт (землёй или gnd) без резистора получится короткое замыкание.
@@deceiveitself7275 с резистором же такое же КЗ просто ток меньше, не?
@@Bagasl Нет. КЗ это короткое замыкание, при котором по элементам цепи идёт недопустимо большой ток, в следствии чего как правило элемент выходит из строя. А резистор ограничивает этот ток до приемлемых величин
Добротные уроки, спасибо!
4:39 написал код идентично, только порты другие, т.к. использую мегу 2560. в мониторе на button2 показывает 1. В чем причина может быть?
Аналогично
Я с тобой не соглашусь по портам. Один порт объединяет несколько пинов. На ардуино нано доступно три порта: PORTD(цифровые пины D0-D7), PORTB(цифровые пины D8-D13), PORTC(аналоговые пины А0-А5). Вместо того, чтобы возиться с каждым пином по отдельности, иногда легче задавать значение всего порта сразу, к примеру, при управлении семи-сегментным дисплеем в режиме развёртки напрямую от ардуино.
+Engie вот такой инфы я еще нигде не видел....
Вот информация на официальном сайте arduino:
www.arduino.cc/en/Reference/PortManipulation
Следует заметить, что управление портами напрямую работает быстрее, нежели digitalWrite или digitalRead, об этом написано тут, например:
www.billporter.info/2010/08/18/ready-set-oscillate-the-fastest-way-to-change-arduino-pins/
где-то есть видео как ускорить программы написанные в "ардуино иде" в 20 раз.
у меня почему-то, пока к пину не подключить нагрузку( светодиод например) то в мониторе показывает 1 на цифровых пинах
та же проблема
Сделай ,пожалуйста, следующий урок по подключению дисплеев к ардуино и их программированию
чего
Да сделай
@@skyhobby611 а что такого
Жаль, редко уроки. Пока следующего ждёшь- предыдущий забудешь))
+Юрий Замятин очень время быстро летит. Вы сидите ждете, а я как будто вчера монтировал 4ый. Универ, мать его
в армию пойдешь долг отдавать? тогда вообще долго ждать придется. а потом и вовсе забить можешь на канал.
Алекс, я понимаю, учёба- основное.
+Donald Trump нет, я лейтенантом выйду
+Юрий Замятин учеба не основное. Просто никто не любит получать пиздюлей и тройки
когда на практике пришло осознание нахера подтягивать к земле резистором питание, прям кайфанул :-D
😅 отлично но здесь надо было добавить в описании подтягивающий резистор входу Ардуино. Но и так понятно. Но выходным ненужны ли стягивающие? Потому что они тоже могут давать наводки или нет? Потому что если один выход равно 1 а другой выход 0. То будут ли неверные показатели??😊
(5:00) Может статься, что у меня NANO слишком уж китайская, но в моем случае определение цифрового сигнала происходит корректно без резистора и без INPUT_PULLUP
Спасибо за комментарий! У меня теперь тоже заработала кнопка!!!!!
спасибо за твои уроки трудновата но потихоньку вкуриваю
Алекс, расскажи пожалуйста подробнее про интерфейс I2C. Как подключить к ардуино сразу несколько устройств по данному интерфейсу.
БОГ ЕСТЬ ЛЮБИТЕ БОГА И СВОИХ БЛИЖНИХ!!!☦❤🙏
Для новичков. Итоговый код будет более оптимален в таком виде:
boolean but;
void setup() {
Serial.begin(9600);
pinMode(A5, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop() {
if (but == digitalRead(A5)) {
but = !digitalRead(A5);
digitalWrite(13, but);
Serial.print("Button: ");Serial.println(but);
}
}
Не будет постоянной отправки данных на 13 пин и в консоль, в которой не будет постоянного мерцания значений.
Объясните пожалуйста, для чего нужны циклы if, если можно на светодиод напрямую выводить состояние с кнопки?
Алекс, а что по поводу встроенной поддтяжки входов, есть ограничения? Читал рассуждения на тему выжигания ног МК... Не будет ли надежнее использовать внешние резисторы? Что думаешь на этот счет?
+Вячеслав Бард думаю что такой херни у меня никогда не случалось
отлично работает от USB, но когда питаю от кроны 9В через входы Vin и GND то не работает. Как правильно подключать кнопку при использовании внешнего питания?
1:25 - аналоговые порты UNO точно могут работать, как выходы? Везде указано, что они только принимают напряжение с датчиков.
"везде" никто не проверяет информацию, прежде чем ее написать
Не совсем понял про подтягивающий резистор, точнее про принцип его работы. Почему он убирает "ошибки"?
У проводов есть паразитная емкость. Убираем провод - заряд остаётся. С резистором по другому - у него огромное сопротивление, и когда подключены настоящие 5 вольт, то он не может спустить весь ток на землю (ардуино видит высокий сигнал), но когда мы выдернули провод - резистор спускает маленький остаточный заряд на землю (ардуино видит слабый сигнал 0v или LOW). С pullup резистором всё примерно так же, но притягиваем не к земле, а к 5 вольтам. Как то так.
+kkjey wheiss он не убирает ошибки. Он устанавливает на пине четко понятное для микроконтроллера напряжение. Без подтяжки пин висит в воздухе, и ловит всякие наводки
Спасибо. Но хотелось бы обьяснения почему с подключением резистора сигнал начал читаться нормально. И почему когда мы используем PULLUP нам не нужны +5V, а вместо этого мы подключаем к земле. Откуда у нас тогда высокий сигнал идет?
Высокий сигнал идёт с pullup
Алекс, ты МОЛОДЕЦ!!! У меня есть то набор, который ты показывал(или рекламировал))) и ещё дополнительно куча барахла к нему. Вот я в JavaScript - прошареный паца, а в c++ вообще 0. Половину того, что ты рассказываешь я знаю. Только немного отличается.
Спасибо, все очень понятно. Очень хорошо объяснил
Алекс, дай пожалуйста ссылку, чтобы почитать и понять, зачем и когда и насколько Ом подключать резисторы?! (что здесь, что при работе с масфет-транзисторами - не пойму) Буду очень признателен!
Мужик, ты крутой, спасибо тебе!
Хотелось бы подробнее узнать о нюансах ардуинки и основах электроники, для понимания, а не для запоминания.
Например, не понятно откуда берётся питание 5v в последней схеме на входе pinMode(A5, INPUT_PULLUP). Как я понял, вписывая "INPUT_PULLUP", мы не просто добавляем подтягивающий резистор, а ещё напряжение 5v на входной пин. То есть, ардуинка замыкает 5v и пин и постоянно выдаёт логическую единицу на любом пине, где прописано "INPUT_PULLUP".
Пулап и есть подключение (подтягивание) пина внутренним резистором к пяти вольтам. То есть на пине они есть и стабильно читаются как логическая единица. Однако при прямом замыкании пина на землю кнопкой на нем получается логический ноль.
и я тоже в панике смотрю.. откуда ток если оба конца в минусе стоят... что за волшебство и откуда взялась инверсия...
5:56 объясните пожалуйста, почему нужно сопротивление? Зачем как это работает? Я не могу видеть логику в этом или просто ее(логику) не ососнаю.
Я сам не очень шарю и возможно стоить спросить у ChatGPT. Насколько я понимаю все дело в законе Ома(можете погуглить), короче говоря, без сопраьевления что-то сгорит
Конкретно в этом случае резистор нужен, так как после отключения порта А5 от порта 5V, тот остается «чувствительным» и ловит всякие шумы, поэтому его значение может скакать то на 0, то на 1. А резистор это как клапан, через который мы сливаем этим заряды-шумы в заземление, чтобы они нам не мешали. И так как сопротивление маленькое, то оно при этом никак не влияет на то, когда мы порт А5 снова подключаем к 5V - порт будет снова показывать 1.
ЧатГПТ и правда может неплохо объяснить. Можно его еще просить объяснить подробнее и с аналогией в виде воды и труб.
Если брать аналогию с водой, то без резистора у нас порт А5 чувствительный остается и на нем может оседать роса или дождик мелкий идет (шумы из окружающей среды) и он это улавливает, и то 1 показывает, то 0.
Заземление в нашем случае это огромный бездонный бак в земле для слива воды в него ненужной.
А резистор это тоненький шланг небольшого диаметра - такой тоненький, что через него совсем немного воды утекает. И он подключен к А5 порту и к заземлению. И поэтому все шумы, которые оказываются на порту А5 - вся эта небольшая влага, стекают в наш бездонный бак заземления и никак не влияют на порт А5, поэтому он показывает 0 благополучно, а не скачет туда-сюда.
А если мы подключаем порт 5В, то это как водонапорная башня - в ней вода под давлением и вода с нее стекает по обычному проводу-шлангу в порт А5. И этот провод - он не такой узкий, как резисторный шланг, по нему сразу много воды течет от водонапорной башни 5V к порту А5. При этом через резисторный шланг по-прежнему вода стекает помаленьку. Но это значение такое маленькое, что никак не влияет на основную подачу, поэтому когда от порта 5В ток идет к А5, резистор не влияет особо, и А5 показывает, что напор воды большой (Button1: 1)
@@CadCabade понял, спасибо это прямо идеальное обьяснение!
Лайк за зачётный видос!
Алекс, а какая мощность рассеивания у встроенного резистора (ВР) в Ардуинках? Я правильно понимаю, что ВР всегда будет работать штатно (ведь ток управления копеечный должен быть...), и можно все пины управления/чтения на всех навешанных модулях притягивать через него?
А если подключить кнопку через резистор могу ли я узнать его сопротивление в режиме input_pullup при нажатии на кнопку?
Через аналоговый пин можно. Загугли омметр на ардуино
Важная мелочь - к аналоговым пинам можно подключать дискретные сигналы, и обрабатывать их.
у меня ардуино UNO выдает 1 без какого либо подключения, когда подаю LOW (GND) значение меняется на 0, то есть инвертированные показатели, почему так?
void setup() {
pinMode(A5, INPUT_PULLUP);
Serial.begin(9600);
}
void loop() {
boolean but1 = digitalRead(A5);
Serial.println(but1);
}
так в видео как бы говорится про это. Использовать надо было инвертирование значений: !digitalRead(A5)
ты притянул линию к плюсу питания и удивляешься, что там логическая единица?
То же самое, диод горит при подключении (по умолчанию), соответственно 1, а в ролике он не горит (0). Это именно на УНО, а подключаю Нано и всё идет как в ролике.
тоже самое, бред какой-то
подтверждаю! Тут непонятки на UNO, Алекс, внеси ясность, такой баг с самого начала изучения подталкивает на уничтожение ардуинки)) Инверсия выходит, когда подаю сигнал на 13й пин - диод потухает. Инверсия ничего не дает, только отображение в окне вывода, но на диод не влияет.
Спасибо за помощь) благодаря тебе все заработало)
Алекс, а почему у тебя программа работает, при несоблюдении синтаксиса ?
6:52
Там ты не ставишь фигурные скобки, после условия, и все работает.
А у меня так не работает ?
Это зависит от версии IDE ?
Или я что то неправильно делаю ?
Неправильно делаешь, смотри уроки на сайте, там подробнее
ура! неужели видео!
А я вот написал digitalWrite(6, button); и результат такой же, как и у тебя. светодиод загорается при нажатии кнопки.
у меня короче.
Всё очень интересно и понято. Спасибо большое за урок!
Кстати, у меня одного проблема с контактами, когда подключаю к белой плате? Контакт то есть, то его нет. Если делаю всё напрямую, то норм, а на плате как-то странно...
Да, контакты изнашиваются, можно их достать поджать
Недавно узнал: "тактовая кнопка" на самом деле ТАКТИЛЬНАЯ кнопка. )) Т.е. такая кнопка, которая отзывается кликом на нажатие (обеспечивает оператору тактильные ощущения = осязание события нажатия кожей пальца ). Даже не знаю, зачем я всё это написал. Всё равно всё останется как есть. +1 за труды, всех благ!
Под конец видео, собрал, из земли к кнопке, из кнопки в А5.. откуда плюсовой взялся ток, для работы цепи? Земля принимает же (-)?
+Александр Гришанов input_pullup - подтяжка к плюсу встроенным резистором
Заметки Ардуинщика от какого же порта + идет? Да, я немного чайник)
+Александр Гришанов изнутри микроконтроллера, он просто так "может"
А если gnd задействован на подключение nrf24l01, то внутренний резистор уже не подтянуть?
Алекс, вопрос. Ты говоришь, что в этом видео речь о цифровых пинах, но выдаёшь ток на аналоговом. Пул_ап резистор он один для все выходов, или у каждого выхода свой?
И не совсем понятно, декларируя я могу сказать int a = A5 но для диджитал D5 писать не надо, откуда система знает что int b = 5 это константа b, а не выход 5-ого пина?
Цифровой пин это такое себе условное название, большинство пинов с индексом А также могут работать в режимe Input/Output. Подтягивающий резистов свой для каждого пина. А5 в системе это имя постоянной переменной, значение которой задано 19; вызовите контекстное меню на А5(правая кнопка мыши) и выберите "Go to Definition"
Спасибо огромное!!!! Я новичек и мне дико понравилось особенно в вашем изложении. Не откажите в любезности у меня два вопроса 1 - как сделать что бы светодиод моргнул один раз при включении? 2- как написать скетч что бы светодиод загорался только в том случае когда на трех входах единица а если хотть на одном ноль то не загорался? Возможно это банально но мне пока сложно. Буду очень рад если поможете.
Здравствуйте, задали такое задание, нужно использовать три тумблера или кнопки (Т1, Т2, Т3) и три разноцветных светодиода (красный, жёлтый и зелёный). Включение светодиодов должно определяться состоянием тумблеров в соответствии с таблицей вариантов заданий.
Условия включения красного светодиода -Одновременно включены 1 и 2 тумблеры или выключен 3 тумблер.
Условия включения жёлтого светодиода - Одновременно включены 1 и 3 тумблеры.
Условия включения зелёного светодиода - Включён 2 тумблер.
Помогите разобраться с кодом пожалуйста. Тут основано на булевых переменных, код необходимо писать исходя из таблицы истинности(имеется).
Огромное спасибо!
привет, Алекс. У меня плата ардуино уно, код в IDE точно такой же как у тебя. Ардуинка прошита этим кодом, подключена, но не работает с кнопкой
это можно как нибудь пофиксить или нет?
Такая же проблема
Быстро все объясняешь, на скорости 0.75 только можно уловить суть. А так отличные видео, с книгой по ардуино сидел неделю, так и ничего не понял, а тут все понятно. Спасибо, ждем новые видео. С термодатчиками бы что нибудь и датчиками влажности.
Я смотрю на скорости 2
Здоров Саня! Такой вопрос. Как к одной ардуино, (допустим нано) подключить и реле на 8 выходов, от 8 ми кнопок, и градусник, и сервопривод, от резистора, все одновременно. имею в виду как скетч выглядит...
Здравствуйте! можно ли к одному цифроаому порту подключить несколько кнопок сразу?
Алекс, я так обрадовался когда ты начал делать эти уроки. Ждал каждый, но пока они выходили выучил всё сам. Перерывы чертовски долгие. Я понимаю тебе сложно, но выбери определённую тему. Страдают все! И люди с квадрокоптерами и всякие оружейники и Ардуинщики и чёрт возьми даже вейперы!!!
+mine miner ну, увы...
А возможно из цифровоого или аналогового пина сделать землю?
Можно, но только из цифрового. Для этого нужно его сконфигурировать как выход и задать на нем постоянное значение низкого уровня, то есть 0.
Serial.print("Button1: " + (String)but1 + ", Button2: " + (String)but2 + "
");
То же самое, только занимает одну строку.
оператор + объединяет строковые значения тоже.
+ "
" удаляй, и используй println ) .. Но за объединение строк и чисел спасибо!
Непередаваемое ощущение, когда впервые зажигаешь светодиод на плате) Спасибо)
Кодревью:
Можно без if/else писать:
---------------------------------------------------------------------------------
boolean buttonIsPressed = false;
void setup()
{
pinMode(A0, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop()
{
buttonIsPressed = !digitalRead(A0);
digitalWrite(13, buttonIsPressed);
}
---------------------------------------------------------------------------------
В данном случае, можно и переменную не объявлять, тогда код будет выглядеть так:
---------------------------------------------------------------------------------
void setup()
{
pinMode(A0, INPUT_PULLUP);
pinMode(13, OUTPUT);
}
void loop()
{
digitalWrite(13, !digitalRead(A0));
}
---------------------------------------------------------------------------------
Спасибо за видео и советы
Добрый вечер скажи а как тут прописать чтоб при одном нажатии горела лампочка при втором тухла
Почему у меня 13 пин показывает 1, режим INPUT, туда ничего не воткнуто
@@serega3214 Индикаторная лампочка L у порта 13 имеет неопределенное напряжение без установки подтягивающего резистора (INPUT_PULLUP в коде), то есть значения могут прыгать от 0 до ~ 1В. Вы тем более у компа наверняка сидите, а это источник помех. Можно замерить вольтметром на "чистой" программе контакты порта и земли, там не всегда 0.
Короче не заморачивайтесь, главное чтобы с подтягивающих резистором все работало.
@@ПавелОсокин-ш3г, у меня после кодключения подтягивающих резисторов всё равно значение прыгает 1-0. Юзаю плату Arduino DUO. Может знаете, с чем это связано? Может из-за того, что резисторы на самой плате слабые, ибо когда подсоединяю дополнительно, то проблема пропадает...
@@artemkhrb3071 Вы про 13 пин говорите? Просто достаточно давно сталкивался с такой проблемой у UNO с 13-й индикаторной лампочкой, искал в интернете почему у меня такое происходит, даже подумал, что плата сломана) У нее (мелкой лампочки) там прикол в строении, к тому же плата же не оригинальная (хотя проблем у меня не было, только с подключением - драйвер скачать). Да и на самом деле пофигу) На практике вы скорее всего будете выводить на отдельный пин обычный 2-вольтовый красненький светодиод (нагрузка - ключевое слово) и использовать INPUT_PULLUP в коде, когда захотите отследить нажатие кнопок например. Проблем не будет.
Здравствуйте! Не могли бы вы сделать что-то типа сигнализации, работающей через модуль NRF24L01 с вибродатчиком? При вибрации идет сигнал на ардуино и загорается светодиод на 3-4 секунды. Буду благодарен! Смотрю все ваши видео, так вот и сам хочу что-то смастерить.
Спасибо за урок, не хватает обьяснения почему резистор тут помогает.
а как подключить сенсорную кнопку к управляемой ленты на вкл и выкл WS2813
Алекс,почему ты не поставил { } на 6:53 и оно сработало?
Потому что команды написаны в одну строчку после if и после else. Так можно делать, но не рекомендуется, так как снижается читабельность кода.
Спс, я ждал этого урока
If (button1 = 1) digitalWrite(13, 1);
else digitalWrite(13, 0);
От этих строк меня, програмиста с двадцатилетним стажем, ПОКОРОБИЛО!
Оно, конечно, работает, но лучше написать просто:
digitalWrite(13, button1);
Жаль с универом у тебя нет времени на уроки ) пока ждал уже сам разобрался с шаговиком, лсд и некоторыми другими штуками ) Но все равно то-то полезное, но узнаю. Благодарю )
Подскажите название исполнителя джазовой музыки в ваших роликах.
Напряжение высокого уровня не равно 5В из-за защитного диода на входе питания от USB, он находится прямо под разъёмом.
(3:45) А у меня не точно такое же напряжение: V3.2 (D12) против V4.1 (V5). В чем может быть причина?
В подаче питания на плату :3
может кто подсказать!!??
у меня Arduino UNO R3
сделать все как у автора на 5:00 минуте
но почему-то вижу что оба пина выдают 1 а не 0 (без подключения 5V)
проблему решил изменением INPUT на OUTPUT
почему так? может кто подсказать?
и ещё у меня все работает стабильно даже без подключения резистора
это нормально?
У меня тоже без резистора норм работает но про пины не знаю, может быть у тебя Ардуино Уно не качественный
Сударь, вы изумительные видео снимаете. Я восхищён до охуения. Премного благодарю вас.
Ты красавчик
Почему то у меня D12 и D13 по умолчанию в ком порте выдают 1, даже в сетапе вводил digitalWrite(13, 0) после компиляции и загрузке все равно выдает 1 и зажигает светодиод. Зато с А5 все нормально, работает как в видео...
Вот это совсем другой вид уроков! я заново все учу и выкидую стили других уроковедов!
Я думал что кнопке нужно +5 вольт всегда на ее распознавание и подачи тока на цель. светодиод скажим!
У меня слишком короткий провод от ардуинки, поэтому приходится работать под столом)Можно ли его как-то удлинить?
Здравствуйте. Имеется Ардуино Леонардо. Нужно подключить кнопки к всем входам. Тоисть 14 кнопок. Но, все работаю кроме пин 0. Как можно его задействовать?
как ты открыл COM3
Почему аналоговый вход тоже называют digital, или это только в случае с кнопкой (False, True). И может ли быть режим Input_Pullup на цифровом входе?
Разобрался. Спасибо за уроки!
Вообще НЕ рекомендуется подавать напрямую на порт напряжение питяния. Если случайно порт сконфигурирован как выход и на нём установлено состояние 0, то подача напряжения питания на такой порт выжгет порт в контроллере.
Чтобы этого избежать, подавать напряжение на порт лучше через резистор (например от 1 кОм до 10 кОм).
На землю порт тоже лучше напрямую не коротить, т.к. если порт настроен как выход и на нём находится высокий логический уровень, то замыкание с землёй взовет перегрузку выходного каскада порта. В любом случае к порту лучше подключить последовательный резистор 1 кОм. Он убережет порт от выгорания в случае ошибок.
В крайнем случае номинал резистора можно уменьшить, но хотя бы 50-100 Ом крайне желательно.
Александр, расскажи как создавать классы и использовать их в сложных программах.
Алекс, у меня Arduino NANO. Я установил все программы, всё работает, но у меня не горит светодиод зелёным на ардуинке как у Вас на видео. Это проблема или нет?