Уроки Arduino #5 - работа с цифровыми портами и подключение кнопки

แชร์
ฝัง
  • เผยแพร่เมื่อ 20 ธ.ค. 2024

ความคิดเห็น • 486

  • @User-x1h4o
    @User-x1h4o 3 ปีที่แล้ว +145

    Что бы там ни говорили "серьёзные дядьки-программисты", осознание того, что светодиод загорелся потому, что это микроконтроллер выполнил, написанный тобой, программный код, доставляет огромную радость! Алекс, спасибо за твои уроки! Смотрю и учусь потихоньку, восторгаясь открытиями :)

    • @fokinDim
      @fokinDim 2 ปีที่แล้ว +2

      вы пишите не код, а СИ-образный скрипт. а уже среда компилирует его в код данного МК. с ей (среде) только известной степенью эффективности.
      если хочется писать код, то это ассемблер. разный, с кучей разных заморочек под разные МК.

    • @agilov
      @agilov 2 ปีที่แล้ว +15

      @@fokinDim но ведь программа, написанная на языке ассемблера, - это тоже скрипт для ассемблера. Вот если хочется писать "настоящий код", тогда уже машинными кодами в бинарном виде. Все остальное так - детские поделки всяких ассемблер скриптеров-недоучек. А если по существу, так все эти ваши ужимки на программируемом чипе - это неэффективно, программы надо паять прямо в железе nand-гейтами, тогда работать будет быстро. Это точно тру.

    • @fokinDim
      @fokinDim 2 ปีที่แล้ว +1

      @@agilov @agilov нет, ассемблер это не скрипт! это и есть машинный код определенного процессора/контроллера, просто в виде лучше читаемой мнемоники.
      например, эти записи совершенно тождественны. это одно и то же:
      org $A000
      ld a, FF
      call $1000
      A000: 3E
      A001: FF
      A002: CD
      A003: 00
      A004: 10
      A005:
      но я кажется понял, о чём вы: если вы выставляете кусок на асме (да хоть в 0x0000h кодах) среди скрипта в си-компиляторе приложений под операционные системы (!) и такой радостный думаете, что на этом куске процессор, для которого вы пишите реально откроет вам свои регистры, какие вы назначили, флаги, адресное пространство .. то хаха, скорее всего - нет.
      но это не отменяет факта, что ассемблер - это и есть машинный код.

    • @agilov
      @agilov 2 ปีที่แล้ว +4

      @@fokinDim все верно ассемблер это не скрипт, ассемблер это программа, которая читает скрипт написанный на языке ассемблера, интерпретирует его и на выходе выдает последовательность машинных комманд уже на чистом машинном языке. Если мне не верите - почитайте вот эту статью например: ru.wikipedia.org/wiki/Ассемблер. Прошу прощения, конечно, что срываю покровы и разрываю шаблоны, но файл с текстом на языке ассемблера это скрипт и с этим ничего не поделать, придется с этим жить.

    • @kruknimbalt2787
      @kruknimbalt2787 ปีที่แล้ว +4

      @@fokinDim А вы - душите без особой на то причины

  • @Igor_the_Uncle
    @Igor_the_Uncle 4 ปีที่แล้ว +152

    не думал, что когда-то буду так радоваться загорающемуся диоду на микросхеме

    • @ИльяЕвгеньевич-б9ь
      @ИльяЕвгеньевич-б9ь 4 ปีที่แล้ว +6

      ааааа я аж плакал когда прочитал +++++++++++++++++++++++

    • @Ixitor
      @Ixitor 4 ปีที่แล้ว +2

      @@ИльяЕвгеньевич-б9ь ))))))))))))))))

    • @АндрейЕфимов-э3й
      @АндрейЕфимов-э3й 4 ปีที่แล้ว +1

      Добрый день! Сделайте пожалуйста видео как сделать сервотестер штобы углы отклонения сервомашинки можно было видеть на экране монитора.

    • @sergeygorshenin9321
      @sergeygorshenin9321 3 ปีที่แล้ว +12

      Когда я первый раз запрограммировал моргание светодиода лет 20 назад, и он заморгал, я поумал, что это совпадение, и на этой ноге всегда все моргает и лишь изменив delay я понял что я повелитель моргания

  • @kiri3913
    @kiri3913 4 ปีที่แล้ว +104

    я который затрахался искать нужный резистор, выпаивал его с платы...... а потом мне сказали про встроенный

  • @НурбекНаурузбаев
    @НурбекНаурузбаев 2 ปีที่แล้ว +12

    Самое главное даже ребёнку в 12 лет все понятно. Я поражаюсь до них доходит быстрее, чем до некоторых взрослых. Классно приподносишь материал. Респект!

    • @алексейыы-ы4п
      @алексейыы-ы4п ปีที่แล้ว +6

      какие умны дети мне 40 лет нихрена не понятно

    • @christinacath4816
      @christinacath4816 ปีที่แล้ว

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

  • @maks_parh
    @maks_parh 7 ปีที่แล้ว +10

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

  • @5508_Astar
    @5508_Astar 3 ปีที่แล้ว +6

    Какой же ты молодец, фантастически качественный контент! Тысячу раз благодарю!

  • @ТрофимШестаков
    @ТрофимШестаков 4 ปีที่แล้ว +26

    спустя 2 дня и кучи нервов этот чертов светодиод начал загораться с кнопки!!!!! паск*уда)))))

  • @ПавелОлишевский-э4о
    @ПавелОлишевский-э4о 4 ปีที่แล้ว +4

    Спасибо за видео.
    Можно дополнить, что если включить между А5 и 5+ резистор (по примеру резистора между А5 и GND), то получим INPUT_PULLUP с внешним резистором (А5 "притянется" к 5+). То же самое произойдет со всеми остальными входами, они перестанут "дребезжать" и притянутся туда куда включат резистор.

  • @СаняМэн-е7л
    @СаняМэн-е7л 3 ปีที่แล้ว +2

    Во вот таких уроков по больше, для меня новичка очень понятно стала работа кнопки

  • @dos6920
    @dos6920 2 ปีที่แล้ว +2

    Спасибо! Благодоря этим уроком время от времени делаю всякие полезные штучки!

  • @andrushkoandrushko
    @andrushkoandrushko 4 ปีที่แล้ว +7

    Автор, огромная благодарность тебе за твои уроки. Все понятно и приятно слушать. Обнял!

  • @avilios-ll9cc
    @avilios-ll9cc ปีที่แล้ว +3

    Одно понять не могу, на 4:37 у автора пропиcан pinMode(13, INPUT);
    И при запуске COM порта на button2 нулевое значение, а сведиот L не светиться, у меня также прописан код,только (МК UNO), но при запуске светиод L загорается
    и button2 выдает значение 1. C чем это связано?

  • @АлешкинАлеша
    @АлешкинАлеша 7 ปีที่แล้ว +9

    спасибо за input_pullup а то я уже замучился с этими резисторами (много кнопок), теперь буду знать

  • @vitaliyhusti
    @vitaliyhusti ปีที่แล้ว +1

    Огрооомнейшее спасибо, Алекс!

  • @Chuviw
    @Chuviw 7 ปีที่แล้ว +5

    В самом последнем скетче: строку boolean button1 и далее - упразднить. Cледующую за ней строку тоже стоит упразднить (ибо 13 порт - выходной, и зачем мы с него что-то читаем - непонятно).
    Условие if - упразднить.
    добавить digitalWrite(13,!digitalRead(A5));

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว +1

      +Chuviw да знаю. Это не готовый код, это просто пример работы

  • @ЖеняМохий
    @ЖеняМохий 4 ปีที่แล้ว +12

    4:38 странно, у меня изначально не по нулям, а с лева 1, а справа 0. Почему так?

    • @jnsee5916
      @jnsee5916 3 ปีที่แล้ว +1

      у меня тоже, не могу найти проблему

  • @ТониСапрано-ь5ж
    @ТониСапрано-ь5ж 5 ปีที่แล้ว +2

    Спасибо Гайвер сделал урок счастья до конца дня.

  • @FreedomOutcast
    @FreedomOutcast 5 ปีที่แล้ว +1

    Блин, ну ты даешь! Я поставил видео на паузу, написал код как ты показал - так все начало глючить при приближении руки к плате. Полез в нет, ничего толком не нашел, задолбал после посетителей форума амперки - и тогда нашел эти два варианта с резистором и через пуллап. После этого как все начало получатся продолжил смотреть ролик - и ты все через 30 сек сказал!)

  • @Titan777Games
    @Titan777Games 7 ปีที่แล้ว +8

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

  • @СанеговаВеликолепный
    @СанеговаВеликолепный 7 ปีที่แล้ว

    Ураа! Новая серия! Божеж, ты можешь, прям счастье!

  • @gibdd_yar
    @gibdd_yar 7 ปีที่แล้ว +23

    Сделай ,пожалуйста, следующий урок по подключению дисплеев к ардуино и их программированию

  • @vnishukov
    @vnishukov 6 ปีที่แล้ว +17

    Алекс, спасибо за материал. Только по синтаксису хотел бы тебе на заметку сказать, что есть практики написания "читаемого" кода, в котрых рекомендуется, например, в обязательном порядке, ставить фигурные скобки для конструкций иф-элс, и прочее-прочее (есть дажее штуки типа tslint и типа того, которые подсвечивают "кривой" синтаксис в средах разработки).... В том числе различные принципы типа DRY и тому подобное. Думаю тебе, как человеку увлеченному, полезно будет ознакомиться, хотя бы для общего развития + опять же плюс в карму от бородатых трукодеров :) Код станет более читаемый и понятный. Это не претензия и не нравоучение - просто заметка бывалого программиста :) В остальном - спасибо! Большое дело делаешь, и делаешь хорошо!

    • @llllNEOllllchannel
      @llllNEOllllchannel 5 ปีที่แล้ว +2

      vsem pohui

    • @serg1567
      @serg1567 5 ปีที่แล้ว +6

      @@llllNEOllllchannel я не все, мне нужны скобки и комментарии.

    • @mad_t
      @mad_t ปีที่แล้ว +1

      Это все правильно и хорошо, но Arduino IDE просто заставляет ненавидеть чистый код со всеми ее через задницу работающими отступами, глючащими подсказками и прочими "прелестями".

  • @urigor9312
    @urigor9312 7 ปีที่แล้ว +2

    Алекс, расскажи пожалуйста подробнее про интерфейс I2C. Как подключить к ардуино сразу несколько устройств по данному интерфейсу.

  • @estos8650
    @estos8650 11 หลายเดือนก่อน

    На 5:15 пин D13 работает корректно потому что по умолчанию на схеме к нему подключен светодиод через резистор?

  • @UserNr1
    @UserNr1 3 ปีที่แล้ว +1

    Алекс) спасибо за труды!

  • @JustDeMiK
    @JustDeMiK 9 หลายเดือนก่อน +1

    4:39 написал код идентично, только порты другие, т.к. использую мегу 2560. в мониторе на button2 показывает 1. В чем причина может быть?

    • @slavahvostov
      @slavahvostov 6 หลายเดือนก่อน

      Аналогично

  • @ThePaveltalk
    @ThePaveltalk 6 ปีที่แล้ว +13

    у меня почему-то, пока к пину не подключить нагрузку( светодиод например) то в мониторе показывает 1 на цифровых пинах

  • @ЕвгенийКазача
    @ЕвгенийКазача 5 ปีที่แล้ว +2

    (5:00) Может статься, что у меня NANO слишком уж китайская, но в моем случае определение цифрового сигнала происходит корректно без резистора и без INPUT_PULLUP

    • @CapNoLogics
      @CapNoLogics 3 ปีที่แล้ว

      Спасибо за комментарий! У меня теперь тоже заработала кнопка!!!!!

  • @ВасилийКипяток
    @ВасилийКипяток 2 ปีที่แล้ว +1

    Привет, Алекс! Никак не могу понять почему на моменте 4:52 у тебя на второй кнопке сигнал равен нулю. Ведь ты убрал старую прошивку, на которой подавал на D13 низкий сигнал. Разве светодиод на плате не должен снова гореть и сигнал быть единицей на Button2 ?

    • @kudriy787
      @kudriy787 2 ปีที่แล้ว

      тоже самое, плюсую

  • @ДаниилХохлов-ф5ю
    @ДаниилХохлов-ф5ю 4 ปีที่แล้ว

    Ты великий ардуинщик, желаю тебе удачи

  • @vitaliysh9685
    @vitaliysh9685 4 ปีที่แล้ว

    1:25 - аналоговые порты UNO точно могут работать, как выходы? Везде указано, что они только принимают напряжение с датчиков.

    • @ArduNotes
      @ArduNotes  4 ปีที่แล้ว

      "везде" никто не проверяет информацию, прежде чем ее написать

  • @TheYorick37
    @TheYorick37 7 ปีที่แล้ว +87

    Жаль, редко уроки. Пока следующего ждёшь- предыдущий забудешь))

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว +16

      +Юрий Замятин очень время быстро летит. Вы сидите ждете, а я как будто вчера монтировал 4ый. Универ, мать его

    • @Максим-э2р8р
      @Максим-э2р8р 7 ปีที่แล้ว +3

      в армию пойдешь долг отдавать? тогда вообще долго ждать придется. а потом и вовсе забить можешь на канал.

    • @TheYorick37
      @TheYorick37 7 ปีที่แล้ว

      Алекс, я понимаю, учёба- основное.

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว +2

      +Donald Trump нет, я лейтенантом выйду

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว +23

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

  • @ДенисГригорьев-ю3м
    @ДенисГригорьев-ю3м 7 ปีที่แล้ว +2

    Добротные уроки, спасибо!

  • @michaelphoenix4742
    @michaelphoenix4742 3 ปีที่แล้ว +1

    отлично работает от USB, но когда питаю от кроны 9В через входы Vin и GND то не работает. Как правильно подключать кнопку при использовании внешнего питания?

  • @karoche-tv
    @karoche-tv 8 หลายเดือนก่อน +1

    😅 отлично но здесь надо было добавить в описании подтягивающий резистор входу Ардуино. Но и так понятно. Но выходным ненужны ли стягивающие? Потому что они тоже могут давать наводки или нет? Потому что если один выход равно 1 а другой выход 0. То будут ли неверные показатели??😊

  • @АндрейРемин-с3ч
    @АндрейРемин-с3ч 5 ปีที่แล้ว

    Алекс, ты МОЛОДЕЦ!!! У меня есть то набор, который ты показывал(или рекламировал))) и ещё дополнительно куча барахла к нему. Вот я в JavaScript - прошареный паца, а в c++ вообще 0. Половину того, что ты рассказываешь я знаю. Только немного отличается.

  • @BortEngineerDude
    @BortEngineerDude 7 ปีที่แล้ว +13

    Я с тобой не соглашусь по портам. Один порт объединяет несколько пинов. На ардуино нано доступно три порта: PORTD(цифровые пины D0-D7), PORTB(цифровые пины D8-D13), PORTC(аналоговые пины А0-А5). Вместо того, чтобы возиться с каждым пином по отдельности, иногда легче задавать значение всего порта сразу, к примеру, при управлении семи-сегментным дисплеем в режиме развёртки напрямую от ардуино.

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว +3

      +Engie вот такой инфы я еще нигде не видел....

    • @BortEngineerDude
      @BortEngineerDude 7 ปีที่แล้ว +7

      Вот информация на официальном сайте 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/

    • @smert_okupantam
      @smert_okupantam 6 ปีที่แล้ว

      где-то есть видео как ускорить программы написанные в "ардуино иде" в 20 раз.

  • @stavo4182
    @stavo4182 7 ปีที่แล้ว +10

    PULLUP можно использовать один раз? Или сколько угодно, и не перегрузится ли резистор?

    • @МаксЛычагин-ъ5э
      @МаксЛычагин-ъ5э 6 ปีที่แล้ว

      10ком, даже если 20 портов не страшно, до 50ма не дойдет

    • @Bagasl
      @Bagasl 5 ปีที่แล้ว

      @@МаксЛычагин-ъ5э ты, я смотрю, шаришь в электронике, резистор для чего там нужен?

    • @deceiveitself7275
      @deceiveitself7275 5 ปีที่แล้ว +1

      @@Bagasl чтобы не спалить плату, если + 5 вольт соединить с - 5 вольт (землёй или gnd) без резистора получится короткое замыкание.

    • @Bagasl
      @Bagasl 5 ปีที่แล้ว

      @@deceiveitself7275 с резистором же такое же КЗ просто ток меньше, не?

    • @deceiveitself7275
      @deceiveitself7275 5 ปีที่แล้ว +1

      @@Bagasl Нет. КЗ это короткое замыкание, при котором по элементам цепи идёт недопустимо большой ток, в следствии чего как правило элемент выходит из строя. А резистор ограничивает этот ток до приемлемых величин

  • @shahaman5694
    @shahaman5694 4 ปีที่แล้ว +2

    Спасибо. Но хотелось бы обьяснения почему с подключением резистора сигнал начал читаться нормально. И почему когда мы используем PULLUP нам не нужны +5V, а вместо этого мы подключаем к земле. Откуда у нас тогда высокий сигнал идет?

    • @ArduNotes
      @ArduNotes  4 ปีที่แล้ว +1

      Высокий сигнал идёт с pullup

  • @luckillie
    @luckillie 2 หลายเดือนก่อน

    5:56 объясните пожалуйста, почему нужно сопротивление? Зачем как это работает? Я не могу видеть логику в этом или просто ее(логику) не ососнаю.

    • @zeroesx82
      @zeroesx82 หลายเดือนก่อน +1

      Я сам не очень шарю и возможно стоить спросить у ChatGPT. Насколько я понимаю все дело в законе Ома(можете погуглить), короче говоря, без сопраьевления что-то сгорит

    • @CadCabade
      @CadCabade หลายเดือนก่อน

      Конкретно в этом случае резистор нужен, так как после отключения порта А5 от порта 5V, тот остается «чувствительным» и ловит всякие шумы, поэтому его значение может скакать то на 0, то на 1. А резистор это как клапан, через который мы сливаем этим заряды-шумы в заземление, чтобы они нам не мешали. И так как сопротивление маленькое, то оно при этом никак не влияет на то, когда мы порт А5 снова подключаем к 5V - порт будет снова показывать 1.
      ЧатГПТ и правда может неплохо объяснить. Можно его еще просить объяснить подробнее и с аналогией в виде воды и труб.

    • @CadCabade
      @CadCabade หลายเดือนก่อน

      Если брать аналогию с водой, то без резистора у нас порт А5 чувствительный остается и на нем может оседать роса или дождик мелкий идет (шумы из окружающей среды) и он это улавливает, и то 1 показывает, то 0.
      Заземление в нашем случае это огромный бездонный бак в земле для слива воды в него ненужной.
      А резистор это тоненький шланг небольшого диаметра - такой тоненький, что через него совсем немного воды утекает. И он подключен к А5 порту и к заземлению. И поэтому все шумы, которые оказываются на порту А5 - вся эта небольшая влага, стекают в наш бездонный бак заземления и никак не влияют на порт А5, поэтому он показывает 0 благополучно, а не скачет туда-сюда.
      А если мы подключаем порт 5В, то это как водонапорная башня - в ней вода под давлением и вода с нее стекает по обычному проводу-шлангу в порт А5. И этот провод - он не такой узкий, как резисторный шланг, по нему сразу много воды течет от водонапорной башни 5V к порту А5. При этом через резисторный шланг по-прежнему вода стекает помаленьку. Но это значение такое маленькое, что никак не влияет на основную подачу, поэтому когда от порта 5В ток идет к А5, резистор не влияет особо, и А5 показывает, что напор воды большой (Button1: 1)

    • @luckillie
      @luckillie หลายเดือนก่อน +1

      @@CadCabade понял, спасибо это прямо идеальное обьяснение!

  • @ИльяЕвгеньевич-б9ь
    @ИльяЕвгеньевич-б9ь 4 ปีที่แล้ว

    когда на практике пришло осознание нахера подтягивать к земле резистором питание, прям кайфанул :-D

  • @kex0723
    @kex0723 7 ปีที่แล้ว +2

    Не совсем понял про подтягивающий резистор, точнее про принцип его работы. Почему он убирает "ошибки"?

    • @dmitrij34
      @dmitrij34 7 ปีที่แล้ว +2

      У проводов есть паразитная емкость. Убираем провод - заряд остаётся. С резистором по другому - у него огромное сопротивление, и когда подключены настоящие 5 вольт, то он не может спустить весь ток на землю (ардуино видит высокий сигнал), но когда мы выдернули провод - резистор спускает маленький остаточный заряд на землю (ардуино видит слабый сигнал 0v или LOW). С pullup резистором всё примерно так же, но притягиваем не к земле, а к 5 вольтам. Как то так.

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว +2

      +kkjey wheiss он не убирает ошибки. Он устанавливает на пине четко понятное для микроконтроллера напряжение. Без подтяжки пин висит в воздухе, и ловит всякие наводки

  • @sergpecherskyi859
    @sergpecherskyi859 4 ปีที่แล้ว +1

    Мужик, ты крутой, спасибо тебе!

  • @LITWINBY
    @LITWINBY 6 ปีที่แล้ว +1

    А если подключить кнопку через резистор могу ли я узнать его сопротивление в режиме input_pullup при нажатии на кнопку?

    • @ARIMF
      @ARIMF 6 ปีที่แล้ว

      Через аналоговый пин можно. Загугли омметр на ардуино

  • @nikel097_
    @nikel097_ 7 ปีที่แล้ว +1

    Алекс, дай пожалуйста ссылку, чтобы почитать и понять, зачем и когда и насколько Ом подключать резисторы?! (что здесь, что при работе с масфет-транзисторами - не пойму) Буду очень признателен!

  • @Artemius_Impure
    @Artemius_Impure 4 ปีที่แล้ว +2

    Всё очень интересно и понято. Спасибо большое за урок!
    Кстати, у меня одного проблема с контактами, когда подключаю к белой плате? Контакт то есть, то его нет. Если делаю всё напрямую, то норм, а на плате как-то странно...

    • @ArduNotes
      @ArduNotes  4 ปีที่แล้ว +1

      Да, контакты изнашиваются, можно их достать поджать

  • @xeither289
    @xeither289 3 ปีที่แล้ว +1

    БОГ ЕСТЬ ЛЮБИТЕ БОГА И СВОИХ БЛИЖНИХ!!!☦❤🙏

  • @vitalibergen6096
    @vitalibergen6096 5 ปีที่แล้ว +2

    спасибо за твои уроки трудновата но потихоньку вкуриваю

  • @dmitryv6156
    @dmitryv6156 5 ปีที่แล้ว +1

    Для новичков. Итоговый код будет более оптимален в таком виде:
    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 пин и в консоль, в которой не будет постоянного мерцания значений.

    • @igorchernov8038
      @igorchernov8038 ปีที่แล้ว

      Объясните пожалуйста, для чего нужны циклы if, если можно на светодиод напрямую выводить состояние с кнопки?

  • @NLOLegion
    @NLOLegion 2 หลายเดือนก่อน

    А если gnd задействован на подключение nrf24l01, то внутренний резистор уже не подтянуть?

  • @dh0ine
    @dh0ine 7 ปีที่แล้ว +5

    Хотелось бы подробнее узнать о нюансах ардуинки и основах электроники, для понимания, а не для запоминания.
    Например, не понятно откуда берётся питание 5v в последней схеме на входе pinMode(A5, INPUT_PULLUP). Как я понял, вписывая "INPUT_PULLUP", мы не просто добавляем подтягивающий резистор, а ещё напряжение 5v на входной пин. То есть, ардуинка замыкает 5v и пин и постоянно выдаёт логическую единицу на любом пине, где прописано "INPUT_PULLUP".

    • @ARIMF
      @ARIMF 7 ปีที่แล้ว +3

      Пулап и есть подключение (подтягивание) пина внутренним резистором к пяти вольтам. То есть на пине они есть и стабильно читаются как логическая единица. Однако при прямом замыкании пина на землю кнопкой на нем получается логический ноль.

    • @ДавидЛазаров-т8ц
      @ДавидЛазаров-т8ц 6 ปีที่แล้ว +1

      и я тоже в панике смотрю.. откуда ток если оба конца в минусе стоят... что за волшебство и откуда взялась инверсия...

  • @Golem-xy1iw
    @Golem-xy1iw 2 ปีที่แล้ว

    Спасибо, все очень понятно. Очень хорошо объяснил

  • @kuotuk
    @kuotuk 6 ปีที่แล้ว +1

    Спасибо за помощь) благодаря тебе все заработало)

  • @Werbard
    @Werbard 7 ปีที่แล้ว +1

    Алекс, а что по поводу встроенной поддтяжки входов, есть ограничения? Читал рассуждения на тему выжигания ног МК... Не будет ли надежнее использовать внешние резисторы? Что думаешь на этот счет?

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว

      +Вячеслав Бард думаю что такой херни у меня никогда не случалось

  • @ВалерийУсов-щ8е
    @ВалерийУсов-щ8е 4 ปีที่แล้ว

    Алекс, а почему у тебя программа работает, при несоблюдении синтаксиса ?
    6:52
    Там ты не ставишь фигурные скобки, после условия, и все работает.
    А у меня так не работает ?
    Это зависит от версии IDE ?
    Или я что то неправильно делаю ?

    • @ArduNotes
      @ArduNotes  4 ปีที่แล้ว +1

      Неправильно делаешь, смотри уроки на сайте, там подробнее

  • @Александр-и3й3д
    @Александр-и3й3д 6 ปีที่แล้ว +1

    Под конец видео, собрал, из земли к кнопке, из кнопки в А5.. откуда плюсовой взялся ток, для работы цепи? Земля принимает же (-)?

    • @ArduNotes
      @ArduNotes  6 ปีที่แล้ว

      +Александр Гришанов input_pullup - подтяжка к плюсу встроенным резистором

    • @Александр-и3й3д
      @Александр-и3й3д 6 ปีที่แล้ว

      Заметки Ардуинщика от какого же порта + идет? Да, я немного чайник)

    • @ArduNotes
      @ArduNotes  6 ปีที่แล้ว

      +Александр Гришанов изнутри микроконтроллера, он просто так "может"

  • @stasqwetstas
    @stasqwetstas 3 ปีที่แล้ว

    Добрый вечер скажи а как тут прописать чтоб при одном нажатии горела лампочка при втором тухла

  • @schabanow
    @schabanow 3 ปีที่แล้ว

    Недавно узнал: "тактовая кнопка" на самом деле ТАКТИЛЬНАЯ кнопка. )) Т.е. такая кнопка, которая отзывается кликом на нажатие (обеспечивает оператору тактильные ощущения = осязание события нажатия кожей пальца ). Даже не знаю, зачем я всё это написал. Всё равно всё останется как есть. +1 за труды, всех благ!

  • @dsedchenko
    @dsedchenko 2 หลายเดือนก่อน

    Спасибо за урок, не хватает обьяснения почему резистор тут помогает.

  • @artemiyvorobev1841
    @artemiyvorobev1841 5 ปีที่แล้ว +1

    привет, Алекс. У меня плата ардуино уно, код в IDE точно такой же как у тебя. Ардуинка прошита этим кодом, подключена, но не работает с кнопкой
    это можно как нибудь пофиксить или нет?

  • @alexandrzemlyanih2439
    @alexandrzemlyanih2439 หลายเดือนก่อน

    Спасибо огромное!!!! Я новичек и мне дико понравилось особенно в вашем изложении. Не откажите в любезности у меня два вопроса 1 - как сделать что бы светодиод моргнул один раз при включении? 2- как написать скетч что бы светодиод загорался только в том случае когда на трех входах единица а если хотть на одном ноль то не загорался? Возможно это банально но мне пока сложно. Буду очень рад если поможете.

  • @yurikus1
    @yurikus1 2 ปีที่แล้ว

    Здравствуйте. Имеется Ардуино Леонардо. Нужно подключить кнопки к всем входам. Тоисть 14 кнопок. Но, все работаю кроме пин 0. Как можно его задействовать?

  • @serg1567
    @serg1567 5 ปีที่แล้ว +2

    Важная мелочь - к аналоговым пинам можно подключать дискретные сигналы, и обрабатывать их.

  • @351866057
    @351866057 7 ปีที่แล้ว

    Быстро все объясняешь, на скорости 0.75 только можно уловить суть. А так отличные видео, с книгой по ардуино сидел неделю, так и ничего не понял, а тут все понятно. Спасибо, ждем новые видео. С термодатчиками бы что нибудь и датчиками влажности.

    • @vbprogr10
      @vbprogr10 3 ปีที่แล้ว +1

      Я смотрю на скорости 2

  • @linterrupt
    @linterrupt 4 ปีที่แล้ว +5

    Почему у меня 13 пин показывает 1, режим INPUT, туда ничего не воткнуто

    • @ПавелОсокин-ш3г
      @ПавелОсокин-ш3г 4 ปีที่แล้ว +1

      @@serega3214 Индикаторная лампочка L у порта 13 имеет неопределенное напряжение без установки подтягивающего резистора (INPUT_PULLUP в коде), то есть значения могут прыгать от 0 до ~ 1В. Вы тем более у компа наверняка сидите, а это источник помех. Можно замерить вольтметром на "чистой" программе контакты порта и земли, там не всегда 0.
      Короче не заморачивайтесь, главное чтобы с подтягивающих резистором все работало.

    • @artemkhrb3071
      @artemkhrb3071 4 ปีที่แล้ว

      @@ПавелОсокин-ш3г, у меня после кодключения подтягивающих резисторов всё равно значение прыгает 1-0. Юзаю плату Arduino DUO. Может знаете, с чем это связано? Может из-за того, что резисторы на самой плате слабые, ибо когда подсоединяю дополнительно, то проблема пропадает...

    • @ПавелОсокин-ш3г
      @ПавелОсокин-ш3г 4 ปีที่แล้ว

      @@artemkhrb3071 Вы про 13 пин говорите? ​ Просто достаточно давно сталкивался с такой проблемой у UNO с 13-й индикаторной лампочкой, искал в интернете почему у меня такое происходит, даже подумал, что плата сломана) У нее (мелкой лампочки) там прикол в строении, к тому же плата же не оригинальная (хотя проблем у меня не было, только с подключением - драйвер скачать). Да и на самом деле пофигу) На практике вы скорее всего будете выводить на отдельный пин обычный 2-вольтовый красненький светодиод (нагрузка - ключевое слово) и использовать INPUT_PULLUP в коде, когда захотите отследить нажатие кнопок например. Проблем не будет.

  • @Valeriy_Polyakov
    @Valeriy_Polyakov 6 ปีที่แล้ว +2

    А я вот написал digitalWrite(6, button); и результат такой же, как и у тебя. светодиод загорается при нажатии кнопки.
    у меня короче.

  • @shawniwe
    @shawniwe 7 ปีที่แล้ว

    Можешь пожалуйста рассказать, как сделать включение и выключение на одну и ту же тактовую кнопку?

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว

      +Shawn Storm смотри новый выпуск

    • @shawniwe
      @shawniwe 7 ปีที่แล้ว

      большое спасибо, долго мучился с этой темой.

  • @anushervon004
    @anushervon004 7 ปีที่แล้ว +1

    Алекс, я так обрадовался когда ты начал делать эти уроки. Ждал каждый, но пока они выходили выучил всё сам. Перерывы чертовски долгие. Я понимаю тебе сложно, но выбери определённую тему. Страдают все! И люди с квадрокоптерами и всякие оружейники и Ардуинщики и чёрт возьми даже вейперы!!!

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว

      +mine miner ну, увы...

  • @почтапочта-г1ю
    @почтапочта-г1ю 3 ปีที่แล้ว

    Лайк за зачётный видос!

  • @ПавелЛи-л9ч
    @ПавелЛи-л9ч 5 ปีที่แล้ว +1

    а как подключить сенсорную кнопку к управляемой ленты на вкл и выкл WS2813

  • @СашаКраснов-ж2з
    @СашаКраснов-ж2з 6 ปีที่แล้ว +1

    А возможно из цифровоого или аналогового пина сделать землю?

    • @MironovDrey
      @MironovDrey 6 ปีที่แล้ว +1

      Можно, но только из цифрового. Для этого нужно его сконфигурировать как выход и задать на нем постоянное значение низкого уровня, то есть 0.

  • @pinktrooper2
    @pinktrooper2 7 ปีที่แล้ว +7

    у меня ардуино UNO выдает 1 без какого либо подключения, когда подаю LOW (GND) значение меняется на 0, то есть инвертированные показатели, почему так?
    void setup() {
    pinMode(A5, INPUT_PULLUP);
    Serial.begin(9600);
    }
    void loop() {
    boolean but1 = digitalRead(A5);
    Serial.println(but1);
    }

    • @d31m07y1988
      @d31m07y1988 7 ปีที่แล้ว +2

      так в видео как бы говорится про это. Использовать надо было инвертирование значений: !digitalRead(A5)

    • @smert_okupantam
      @smert_okupantam 6 ปีที่แล้ว +2

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

    • @vik8350
      @vik8350 6 ปีที่แล้ว +2

      То же самое, диод горит при подключении (по умолчанию), соответственно 1, а в ролике он не горит (0). Это именно на УНО, а подключаю Нано и всё идет как в ролике.

    • @leonidsah
      @leonidsah 6 ปีที่แล้ว

      тоже самое, бред какой-то

    • @Twistms
      @Twistms 6 ปีที่แล้ว

      подтверждаю! Тут непонятки на UNO, Алекс, внеси ясность, такой баг с самого начала изучения подталкивает на уничтожение ардуинки)) Инверсия выходит, когда подаю сигнал на 13й пин - диод потухает. Инверсия ничего не дает, только отображение в окне вывода, но на диод не влияет.

  • @igrikm92022
    @igrikm92022 2 ปีที่แล้ว +1

    как ты открыл COM3

  • @chotut9005
    @chotut9005 7 ปีที่แล้ว

    Подскажите название исполнителя джазовой музыки в ваших роликах.

  • @Артём-щ6п3я
    @Артём-щ6п3я 7 ปีที่แล้ว

    Здравствуйте! Не могли бы вы сделать что-то типа сигнализации, работающей через модуль NRF24L01 с вибродатчиком? При вибрации идет сигнал на ардуино и загорается светодиод на 3-4 секунды. Буду благодарен! Смотрю все ваши видео, так вот и сам хочу что-то смастерить.

  • @beenmayer7700
    @beenmayer7700 3 ปีที่แล้ว

    Здравствуйте! можно ли к одному цифроаому порту подключить несколько кнопок сразу?

  • @sergeygordich
    @sergeygordich 5 ปีที่แล้ว

    Вот это совсем другой вид уроков! я заново все учу и выкидую стили других уроковедов!
    Я думал что кнопке нужно +5 вольт всегда на ее распознавание и подачи тока на цель. светодиод скажим!

  • @sergeygorshenin9321
    @sergeygorshenin9321 3 ปีที่แล้ว

    Почему аналоговый вход тоже называют digital, или это только в случае с кнопкой (False, True). И может ли быть режим Input_Pullup на цифровом входе?

    • @sergeygorshenin9321
      @sergeygorshenin9321 3 ปีที่แล้ว

      Разобрался. Спасибо за уроки!

  • @Mirz0_
    @Mirz0_ 3 ปีที่แล้ว

    Напряжение высокого уровня не равно 5В из-за защитного диода на входе питания от USB, он находится прямо под разъёмом.

  • @Иван-щ4я3и
    @Иван-щ4я3и 3 ปีที่แล้ว

    А можешь сделать видео так же, но про уно, я пытался повторить но не получилось.

  • @mikdandys
    @mikdandys 7 ปีที่แล้ว

    Александр, расскажи как создавать классы и использовать их в сложных программах.

  • @демсам
    @демсам 7 ปีที่แล้ว

    Здоров Саня! Такой вопрос. Как к одной ардуино, (допустим нано) подключить и реле на 8 выходов, от 8 ми кнопок, и градусник, и сервопривод, от резистора, все одновременно. имею в виду как скетч выглядит...

  • @VitaliyZlobin
    @VitaliyZlobin 2 ปีที่แล้ว

    Непередаваемое ощущение, когда впервые зажигаешь светодиод на плате) Спасибо)
    Кодревью:
    Можно без 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));
    }
    ---------------------------------------------------------------------------------

  • @spektor2257
    @spektor2257 5 หลายเดือนก่อน

    может кто подсказать!!??
    у меня Arduino UNO R3
    сделать все как у автора на 5:00 минуте
    но почему-то вижу что оба пина выдают 1 а не 0 (без подключения 5V)
    проблему решил изменением INPUT на OUTPUT
    почему так? может кто подсказать?
    и ещё у меня все работает стабильно даже без подключения резистора
    это нормально?

    • @Bev4ik0
      @Bev4ik0 4 หลายเดือนก่อน

      У меня тоже без резистора норм работает но про пины не знаю, может быть у тебя Ардуино Уно не качественный

  • @gladiatorpwnz7380
    @gladiatorpwnz7380 7 ปีที่แล้ว

    а почему к аналоговому пину применяется команда digitalwrite? или можно и analogread и digitalread?

    • @ArduNotes
      @ArduNotes  7 ปีที่แล้ว

      +gladiatorpwnz потому что аналоговые это те же самые цифровые, они имеют функцию АЦП. Сами пины то цифровые, они все цифровые вообще на ардуино

  • @bkfhddhhdh5187
    @bkfhddhhdh5187 5 ปีที่แล้ว

    Алекс,почему ты не поставил { } на 6:53 и оно сработало?

    • @dmitryv6156
      @dmitryv6156 5 ปีที่แล้ว

      Потому что команды написаны в одну строчку после if и после else. Так можно делать, но не рекомендуется, так как снижается читабельность кода.

  • @08Downhill
    @08Downhill 6 ปีที่แล้ว

    Здравствуйте, задали такое задание, нужно использовать три тумблера или кнопки (Т1, Т2, Т3) и три разноцветных светодиода (красный, жёлтый и зелёный). Включение светодиодов должно определяться состоянием тумблеров в соответствии с таблицей вариантов заданий.
    Условия включения красного светодиода -Одновременно включены 1 и 2 тумблеры или выключен 3 тумблер.
    Условия включения жёлтого светодиода - Одновременно включены 1 и 3 тумблеры.
    Условия включения зелёного светодиода - Включён 2 тумблер.
    Помогите разобраться с кодом пожалуйста. Тут основано на булевых переменных, код необходимо писать исходя из таблицы истинности(имеется).

  • @MrLemonnandpepper
    @MrLemonnandpepper 6 ปีที่แล้ว

    Алекс, а какая мощность рассеивания у встроенного резистора (ВР) в Ардуинках? Я правильно понимаю, что ВР всегда будет работать штатно (ведь ток управления копеечный должен быть...), и можно все пины управления/чтения на всех навешанных модулях притягивать через него?

  • @ЕвгенийКазача
    @ЕвгенийКазача 5 ปีที่แล้ว

    (3:45) А у меня не точно такое же напряжение: V3.2 (D12) против V4.1 (V5). В чем может быть причина?

  • @st1HiTmaN
    @st1HiTmaN 5 ปีที่แล้ว +1

    Почему то у меня D12 и D13 по умолчанию в ком порте выдают 1, даже в сетапе вводил digitalWrite(13, 0) после компиляции и загрузке все равно выдает 1 и зажигает светодиод. Зато с А5 все нормально, работает как в видео...

  • @РафигФейзуллаев
    @РафигФейзуллаев 6 ปีที่แล้ว +1

    Serial.print("Button1: " + (String)but1 + ", Button2: " + (String)but2 + "
    ");
    То же самое, только занимает одну строку.
    оператор + объединяет строковые значения тоже.

    • @kirznervadim7072
      @kirznervadim7072 5 ปีที่แล้ว

      + "
      " удаляй, и используй println ) .. Но за объединение строк и чисел спасибо!

  • @hunter-speexz
    @hunter-speexz 3 ปีที่แล้ว

    4:59 этот баг из-за конденсатора?

  • @stereodrive
    @stereodrive ปีที่แล้ว

    Алекс, вопрос. Ты говоришь, что в этом видео речь о цифровых пинах, но выдаёшь ток на аналоговом. Пул_ап резистор он один для все выходов, или у каждого выхода свой?
    И не совсем понятно, декларируя я могу сказать int a = A5 но для диджитал D5 писать не надо, откуда система знает что int b = 5 это константа b, а не выход 5-ого пина?

    • @olegp.3012
      @olegp.3012 ปีที่แล้ว

      Цифровой пин это такое себе условное название, большинство пинов с индексом А также могут работать в режимe Input/Output. Подтягивающий резистов свой для каждого пина. А5 в системе это имя постоянной переменной, значение которой задано 19; вызовите контекстное меню на А5(правая кнопка мыши) и выберите "Go to Definition"

  • @maksim_drifter528
    @maksim_drifter528 3 ปีที่แล้ว

    А какое сопротивление на резисторе на 10кОм

  • @Максим-э2р8р
    @Максим-э2р8р 7 ปีที่แล้ว +1

    А можно на этой ардуино сделать видеонаблюдение? наверняка можно, только не нашел

    • @Titan777Games
      @Titan777Games 7 ปีที่แล้ว +1

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

    • @Максим-э2р8р
      @Максим-э2р8р 7 ปีที่แล้ว

      а вроде есть камера для ардуино или искра что ли. ну я и думал что можно что то собрать

    • @ValeriyDoniy
      @ValeriyDoniy 7 ปีที่แล้ว +5

      можно, только не видео, а фото наблюдение :) скорости не хватит для видео потока, ну разве если картинка видео будет 320 x 240
      с частотой 1 кадр в сек. И то получаем 76800 байт плюс столько же на кодирование цвета, и еще половина этого на синхроимпульсы. если минимальный битрейт принять 16 кбит/с для монохрома или в трое больше для цвета со звуком получим поток больше или практически равный максимальной скорости порта Com порта 30KБ/сек ( камеры для ардуино работают по последовательному интерфейсу). Но если рассматривать вариант с отправкой фото скажем по тревоге или каждые 5 минут - то как бы можно смерится :) Еще есть камеры на интерфейсе I2C, но они то же особой картинкой не отличаются. Вариант домофона с качеством картинки «говорящая голова» более реален :)

    • @ruslan_mexanoid
      @ruslan_mexanoid 7 ปีที่แล้ว +1

      Тут лучше использовать рашбери или обычный комп

  • @grosshypno
    @grosshypno 3 ปีที่แล้ว +1

    Сударь, вы изумительные видео снимаете. Я восхищён до охуения. Премного благодарю вас.

  • @Helg1002
    @Helg1002 5 ปีที่แล้ว

    товарищи подскажите почему перед digitalWrite не должно быть фигурных скобок (ну и после соответственно)?
    я конечно проверил, что с ними код не работает, но все одно, почему скобок то нет?

  • @АлександрЧерный-б8п
    @АлександрЧерный-б8п 3 ปีที่แล้ว +1

    А цыфровые могут тоже входами быть

  • @AlexStraga
    @AlexStraga 7 ปีที่แล้ว

    Жаль с универом у тебя нет времени на уроки ) пока ждал уже сам разобрался с шаговиком, лсд и некоторыми другими штуками ) Но все равно то-то полезное, но узнаю. Благодарю )

  • @Диафильм-ь7з
    @Диафильм-ь7з 5 ปีที่แล้ว

    Подключил для управления шаговым движком 2 кнопки (крутиться вперед и назад) но обнаружил на маленькой скорости что при одном коротком нажатии на кнопку двигатель все равно потихоньку крутится пока полоборота не сделает. Как это можно вылечить?