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

Поділитися
Вставка
  • Опубліковано 27 гру 2024

КОМЕНТАРІ •

  • @User-x1h4o
    @User-x1h4o 3 роки тому +146

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

    • @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

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

  • @maks_parh
    @maks_parh 7 років тому +10

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

  • @НурбекНаурузбаев
    @НурбекНаурузбаев 2 роки тому +12

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

    • @алексейыы-ы4п
      @алексейыы-ы4п Рік тому +6

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

    • @christinacath4816
      @christinacath4816 Рік тому

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

  • @5508_Astar
    @5508_Astar 3 роки тому +6

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

  • @СаняМэн-е7л
    @СаняМэн-е7л 3 роки тому +2

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

  • @dos6920
    @dos6920 2 роки тому +2

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

  • @andrushkoandrushko
    @andrushkoandrushko 4 роки тому +7

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

  • @ТрофимШестаков
    @ТрофимШестаков 4 роки тому +26

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

  • @ПавелОлишевский-э4о
    @ПавелОлишевский-э4о 5 років тому +4

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

  • @avilios-ll9cc
    @avilios-ll9cc Рік тому +3

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

  • @vitaliyhusti
    @vitaliyhusti Рік тому +1

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

  • @ЖеняМохий
    @ЖеняМохий 4 роки тому +12

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

    • @jnsee5916
      @jnsee5916 3 роки тому +1

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

  • @ТониСапрано-ь5ж
    @ТониСапрано-ь5ж 5 років тому +2

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

  • @АлешкинАлеша
    @АлешкинАлеша 7 років тому +9

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

  • @Titan777Games
    @Titan777Games 7 років тому +8

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

  • @СанеговаВеликолепный

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

  • @Chuviw
    @Chuviw 7 років тому +5

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

    • @ArduNotes
      @ArduNotes  7 років тому +1

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

  • @FreedomOutcast
    @FreedomOutcast 6 років тому +1

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

  • @ВасилийКипяток
    @ВасилийКипяток 2 роки тому +1

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

    • @kudriy787
      @kudriy787 2 роки тому

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

  • @vnishukov
    @vnishukov 6 років тому +17

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

    • @llllNEOllllchannel
      @llllNEOllllchannel 5 років тому +2

      vsem pohui

    • @serg1567
      @serg1567 5 років тому +6

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

    • @mad_t
      @mad_t 2 роки тому +1

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

  • @UserNr1
    @UserNr1 4 роки тому +1

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

  • @estos8650
    @estos8650 11 місяців тому

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

  • @ДаниилХохлов-ф5ю
    @ДаниилХохлов-ф5ю 4 роки тому

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

  • @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 Нет. КЗ это короткое замыкание, при котором по элементам цепи идёт недопустимо большой ток, в следствии чего как правило элемент выходит из строя. А резистор ограничивает этот ток до приемлемых величин

  • @ДенисГригорьев-ю3м
    @ДенисГригорьев-ю3м 7 років тому +2

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

  • @JustDeMiK
    @JustDeMiK 10 місяців тому +1

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

  • @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 7 років тому

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

  • @ThePaveltalk
    @ThePaveltalk 6 років тому +13

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

  • @gibdd_yar
    @gibdd_yar 7 років тому +23

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

  • @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

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

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

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

  • @karoche-tv
    @karoche-tv 8 місяців тому +1

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

  • @ЕвгенийКазача
    @ЕвгенийКазача 5 років тому +2

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

    • @CapNoLogics
      @CapNoLogics 3 роки тому

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

  • @vitalibergen6096
    @vitalibergen6096 5 років тому +2

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

  • @urigor9312
    @urigor9312 7 років тому +2

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

  • @xeither289
    @xeither289 3 роки тому +1

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

  • @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 2 роки тому

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

  • @Werbard
    @Werbard 7 років тому +1

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

    • @ArduNotes
      @ArduNotes  7 років тому

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

  • @michaelphoenix4742
    @michaelphoenix4742 3 роки тому +1

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

  • @vitaliysh9685
    @vitaliysh9685 4 роки тому

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

    • @ArduNotes
      @ArduNotes  4 роки тому

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

  • @kex0723
    @kex0723 7 років тому +2

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

    • @dmitrij34
      @dmitrij34 7 років тому +2

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

    • @ArduNotes
      @ArduNotes  7 років тому +2

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

  • @shahaman5694
    @shahaman5694 4 роки тому +2

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

    • @ArduNotes
      @ArduNotes  4 роки тому +1

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

  • @АндрейРемин-с3ч
    @АндрейРемин-с3ч 5 років тому

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

  • @Golem-xy1iw
    @Golem-xy1iw 2 роки тому

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

  • @nikel097_
    @nikel097_ 7 років тому +1

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

  • @sergpecherskyi859
    @sergpecherskyi859 5 років тому +1

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

  • @dh0ine
    @dh0ine 7 років тому +5

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

    • @ARIMF
      @ARIMF 7 років тому +3

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

    • @ДавидЛазаров-т8ц
      @ДавидЛазаров-т8ц 6 років тому +1

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

  • @luckillie
    @luckillie 2 місяці тому

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

    • @zeroesx82
      @zeroesx82 2 місяці тому +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 понял, спасибо это прямо идеальное обьяснение!

  • @почтапочта-г1ю
    @почтапочта-г1ю 3 роки тому

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

  • @MrLemonnandpepper
    @MrLemonnandpepper 6 років тому

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

  • @LITWINBY
    @LITWINBY 6 років тому +1

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

    • @ARIMF
      @ARIMF 6 років тому

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

  • @serg1567
    @serg1567 5 років тому +2

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

  • @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 7 років тому +2

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

    • @vik8350
      @vik8350 6 років тому +2

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

    • @leonidsah
      @leonidsah 6 років тому

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

    • @Twistms
      @Twistms 6 років тому

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

  • @kuotuk
    @kuotuk 6 років тому +1

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

  • @ВалерийУсов-щ8е
    @ВалерийУсов-щ8е 4 роки тому

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

    • @ArduNotes
      @ArduNotes  4 роки тому +1

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

  • @PRO100KBAC
    @PRO100KBAC 7 років тому

    ура! неужели видео!

  • @Valeriy_Polyakov
    @Valeriy_Polyakov 6 років тому +2

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

  • @Artemius_Impure
    @Artemius_Impure 4 роки тому +2

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

    • @ArduNotes
      @ArduNotes  4 роки тому +1

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

  • @schabanow
    @schabanow 3 роки тому

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

  • @Александр-и3й3д
    @Александр-и3й3д 7 років тому +1

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

    • @ArduNotes
      @ArduNotes  7 років тому

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

    • @Александр-и3й3д
      @Александр-и3й3д 7 років тому

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

    • @ArduNotes
      @ArduNotes  6 років тому

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

  • @NLOLegion
    @NLOLegion 3 місяці тому

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

  • @stereodrive
    @stereodrive Рік тому

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

    • @olegp.3012
      @olegp.3012 Рік тому

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

  • @alexandrzemlyanih2439
    @alexandrzemlyanih2439 Місяць тому

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

  • @08Downhill
    @08Downhill 6 років тому

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

  • @СергейКарявцев-й7с
    @СергейКарявцев-й7с 10 місяців тому

    Огромное спасибо!

  • @artemiyvorobev1841
    @artemiyvorobev1841 5 років тому +1

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

  • @351866057
    @351866057 7 років тому

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

    • @vbprogr10
      @vbprogr10 3 роки тому +1

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

  • @демсам
    @демсам 7 років тому

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

  • @beenmayer7700
    @beenmayer7700 3 роки тому

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

  • @anushervon004
    @anushervon004 7 років тому +1

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

    • @ArduNotes
      @ArduNotes  7 років тому

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

  • @СашаКраснов-ж2з
    @СашаКраснов-ж2з 6 років тому +1

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

    • @MironovDrey
      @MironovDrey 6 років тому +1

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

  • @РафигФейзуллаев
    @РафигФейзуллаев 6 років тому +1

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

    • @kirznervadim7072
      @kirznervadim7072 6 років тому

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

  • @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));
    }
    ---------------------------------------------------------------------------------

  • @elenapoplos9537
    @elenapoplos9537 4 роки тому

    Спасибо за видео и советы

  • @stasqwetstas
    @stasqwetstas 3 роки тому

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

  • @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 в коде, когда захотите отследить нажатие кнопок например. Проблем не будет.

  • @Артём-щ6п3я
    @Артём-щ6п3я 7 років тому

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

  • @dsedchenko
    @dsedchenko 2 місяці тому

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

  • @ПавелЛи-л9ч
    @ПавелЛи-л9ч 5 років тому +1

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

  • @bkfhddhhdh5187
    @bkfhddhhdh5187 5 років тому

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

    • @dmitryv6156
      @dmitryv6156 5 років тому

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

  • @СашаВасюк-б2ц
    @СашаВасюк-б2ц 7 років тому

    Спс, я ждал этого урока

  • @EpoxyArt
    @EpoxyArt Рік тому

    If (button1 = 1) digitalWrite(13, 1);
    else digitalWrite(13, 0);
    От этих строк меня, програмиста с двадцатилетним стажем, ПОКОРОБИЛО!
    Оно, конечно, работает, но лучше написать просто:
    digitalWrite(13, button1);

  • @AlexStraga
    @AlexStraga 7 років тому

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

  • @chotut9005
    @chotut9005 7 років тому

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

  • @Mirz0_
    @Mirz0_ 3 роки тому

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

  • @ЕвгенийКазача
    @ЕвгенийКазача 5 років тому

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

  • @spektor2257
    @spektor2257 5 місяців тому

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

    • @Bev4ik0
      @Bev4ik0 5 місяців тому

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

  • @grosshypno
    @grosshypno 3 роки тому +1

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

  • @amadofernandez3095
    @amadofernandez3095 4 роки тому

    Ты красавчик

  • @st1HiTmaN
    @st1HiTmaN 5 років тому +1

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

  • @sergeygordich
    @sergeygordich 5 років тому

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

  • @bogbank1355
    @bogbank1355 4 роки тому

    У меня слишком короткий провод от ардуинки, поэтому приходится работать под столом)Можно ли его как-то удлинить?

  • @yurikus1
    @yurikus1 2 роки тому

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

  • @igrikm92022
    @igrikm92022 2 роки тому +1

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

  • @sergeygorshenin9321
    @sergeygorshenin9321 3 роки тому

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

  • @den_a
    @den_a 3 роки тому +1

    Вообще НЕ рекомендуется подавать напрямую на порт напряжение питяния. Если случайно порт сконфигурирован как выход и на нём установлено состояние 0, то подача напряжения питания на такой порт выжгет порт в контроллере.
    Чтобы этого избежать, подавать напряжение на порт лучше через резистор (например от 1 кОм до 10 кОм).
    На землю порт тоже лучше напрямую не коротить, т.к. если порт настроен как выход и на нём находится высокий логический уровень, то замыкание с землёй взовет перегрузку выходного каскада порта. В любом случае к порту лучше подключить последовательный резистор 1 кОм. Он убережет порт от выгорания в случае ошибок.
    В крайнем случае номинал резистора можно уменьшить, но хотя бы 50-100 Ом крайне желательно.

  • @mikdandys
    @mikdandys 7 років тому

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

  • @vswift
    @vswift 6 років тому

    Алекс, у меня Arduino NANO. Я установил все программы, всё работает, но у меня не горит светодиод зелёным на ардуинке как у Вас на видео. Это проблема или нет?