How to connect the keypad to Arduino

Поділитися
Вставка
  • Опубліковано 2 чер 2018
  • Hello! In this output we connect the keypad to Arduino.
    Archive with library and examples: drive.google.com/open?id=1CbS...
    Where can I buy:
    keypad 4x4: ali.pub/2k005u
    WeMos D1 Mini Pro: ali.pub/2j9qwb
    0.96 "OLED display: ali.pub/2hvdd9
    Display TM1637: ali.pub/2id9gd
    The cheapest Arduino Pro Mini for crafts: ali.pub/1ny2z4
    Buzzer: ali.pub/2hvd87
    Load resistor 10 Ohm 10 W: ali.pub/2hvdwp
    Motor with gearbox: ali.pub/2hrtt2
    Bluetooth HM-10: ali.pub/2amedo
    Bluetooth HC-06: ali.pub/2amdlv
    WS2812B 7 LEDs: ali.pub/2hi9h8
    WS2812B: ali.pub/1x8oim
    The cheapest Arduino Pro Mini for crafts: ali.pub/1ny2z4
    Solar panel 5V 4.5W: ali.pub/2gllam
    Solar panels: ali.pub/2glli0
    Servo drives: ali.pub/2glm6p
    Digital resistor AD5171: ali.pub/2gi4vs
    TFT Displays: ali.pub/1ny2rc
    Arduino Mega 2560: ali.pub/2gih4z
    The most convenient cashback:
    LetyShops: goo.gl/Ev5XgI
    The most profitable cashback:
    Ecomerce: goo.gl/3dDc2w
  • Наука та технологія

КОМЕНТАРІ • 67

  • @404Negative
    @404Negative 6 років тому +10

    если хочешь идти в армию - нажимай звёздочку. если не хочешь - нажимай решетку )

  • @mamiyaservice
    @mamiyaservice 3 місяці тому +1

    Спасибо бро! помог мне для таймера для фотопечати найти верные пины!

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

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

  • @Maxzeev
    @Maxzeev 5 років тому +4

    С контактами все в порядке. Там резистивный делитель в виде графитовых дорожек, прямо на плате.
    1 ряд - 0 Ом.
    2 ряд, 4,5 - 550 Ом; 6,В - 200 Ом
    3 ряд, 7,8 - 400 Ом; 9,С - 200 Ом
    4 ряд, *,0 - 700 Ом; #,D - 300 Ом
    Почему так не логично? Видимо была техника для которой делали данные клавиатуры, потом ее сняли с производства, а производство клавиатур осталось, вот и стали продавать их в розницу. Это мое предположения.
    К стати у меня 4 таких клавиатуры, у всех параметры одинаковые, одну разобрал, поэтому так точно по рядам и сопротивлениям здесь написал, может кому пригодится.

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

      Забыл добавить: есть возможность установить перемычки, вместо графитовых полосок, все клавиши станут 0 Ом! Клавиатура разбирается легко, всего получится 6 перемычек.

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

      У меня клавиатура не разборная. Иначе бы тоже разобрал. Но за дополнение спасибо!

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

      @@UCanDo У меня точно такая же как у тебя, Игорь. Там пластиковые стойки, развольцованный край нужно срезать. Потом клава соберётся на место без клея как родная :)

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

      Я просто не рискнул :)
      Как руки до нее дойдут, то точно разберу :)

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

    а резисторы подтягивающие к строкам или к столбикам нужно подпаивать на 10к ? без резисторов даже если просто дернуть провода или поднести руку нажимаются сами в порт летят нажатия

  • @f33net
    @f33net 6 років тому +7

    Пароль должен быть не как у чайников 123, а как у профи - шесть звёздочек! :)))

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

      :))))

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

      @@UCanDo Блогодорю вас за имформотивное видео))

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

    а если кнопки на проводах по 0.5 метров - 1 метр будут, не просядет ли сигнал? матричным способом если кнопки далеко находятся 90 шт?

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

    а в этой библиотеке 9*10 если написать будет работать матрица? (давно когда то делал, тогда вообще не понимал ничего в ардуино) попробую еще раз)

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

      Да, будет

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

      @@UCanDo Супер! Диоды наверное от комбинаций при нескольких нажатиях нужны, в игровых клавиатурах ставят много диодов.

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

    Не подскажете как под STM32 удерживая кнопку отослать лишь 1 раз сообщение, а кнопка продолжит держаться, или мигнуть 1 раз светодоидом пока держится кнопка, ничего не смог сделать, там _Bool может как то использовать, все что нужно - нажали кнопку и не сто тысяч раз летит сообщение как например было бы достаточно если бы реле удерживать или светодиод горел, а один раз, а дребезг вовсе насколько возможно что бы задержек не делать вовсе, там важна скорость как в самолете, сверх быстро и только 1 раз, а кнопка будет дальше держаться.

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

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

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

    а как мне символ который в serial print тут отправляется Serial.print(kpd.key[i].kchar); перепаковать в слово, попробовал своим способом и не удалось через if попытался если символ такой то отправить слово, но не сработало(

  • @user-Atman
    @user-Atman 3 роки тому

    очень познавательно и конструктивно !) благодарность автору , но можно вопрос?

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

      Спасибо за отзыв! Да, конечно, постараюсь помочь чем смогу

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

    а под STM32 CUBE IDE не существует примеров в природе?

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

      И да и нет. Проблема в том что для STM существует крайне много способов написания кода и библиотек, которые между собой не стыкуются. По этому, несмотря на множество примеров, все равно код придётся писать практически с нуля.

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

      @@UCanDo Да там CUBEIDE даже собственные файлы не может открывать .IOC может подскажете как решить вопрос с открытием .ioc ? CUBE IDE смотрит на них как даун, и не понимает что за файл перед ним. Отношение к софту конечно у CUBEIDE ниже плинтуса, представьте если бы фотошоп каждый раз был несовместим со своими же файлами PSD. Только дибилы из SMT32 позволяют себе такое отношение к пользователям.

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

      @@UCanDo пришлось поставить ещё cubemx и только он открыл файл .ioc и то ещё задавал вопросы типа не знает что за файл

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

    А есть такие по i2c или резисторные(3пина). Если возможно то дайте ссылку

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

      Для i2C Используйте расширитель портов PCF857. Вот примеры:
      www.hackster.io/venkatesh_rao/i2c-keypad-73a012
      playground.arduino.cc/Main/I2CPortExpanderAndKeypads
      www.instructables.com/id/Arduino-Nano-I2C-Matrix-Keypad-With-PCF8574PCF8574/
      Для подключения по 3-м проводам досмотрите видео до конца.

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

      Gameplayer 55055 россыпь резисторов и аналоговый вход вам поможет. И немного кода.

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

    интересное видео! надо будет "антивандалку" от домофона разобрать, вдруг там схема похожая и ее получится использовать.

  • @user-pz9yx4zy5o
    @user-pz9yx4zy5o Рік тому

    как можно с вами связаться? консультация ваша нужна

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

      Вы можете обратиться за помощью в мою группу в Телеграмм:
      t.me/HomeMadeChannel

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

    но у меня этот вариант не заработал.....хааххахахааахаахахахахахх ахахахахахахах ахахахахахахх
    автор бог)

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

    Сопротивления в принципе на таких клавиатурах быть не должно. Если есть - может что-то с контактами?
    Даже если оно там стоит, можно все прозвонить тестером, выяснить, какие сопротивления где установлены, и уже отталкиваясь от этой информации подбирать резисторы.

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

      Похоже на плохой контакт самих кнопок. Скорее всего брак при сборке. На разных кнопках сопротивление разное, а так как это матрица, то сопротивление кнопок вносит разность в ожидаемое сопротивление. В общем должно быть одно, а получается другое. Но проблема в том что на кнопках сопротивление "прыгает" из-за плохого контакта и на разных кнопках получаются примерно одинаковые показатели сопротивления, что делает невозможным отличить одну кнопку от другой. Но это только для подключения по одному проводу. В обычном подключении все нормально работает.

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

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

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

      1) определите как осуществляется управление мотором
      2) узнайте принцип работы клавиатуры
      3) соедините два принципа всесте

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

      @@UCanDo 3 пункт не для меня я не программист...

  • @Drevorub
    @Drevorub 4 місяці тому

    А сделай джойстик для космосимулятора! плиз!

    • @UCanDo
      @UCanDo  4 місяці тому +1

      Джойстики для компа или приставок дешевле купить чем самому делать.

    • @Drevorub
      @Drevorub 4 місяці тому +1

      А если без 3d печати?

    • @Drevorub
      @Drevorub 4 місяці тому +1

      А ещё заместо датчиков Холла используй MPU6050@@UCanDo

    • @UCanDo
      @UCanDo  4 місяці тому +1

      @@Drevorub , любое устройство имеет смысл делать только при условии что такого устройства нет в продаже. Если что-то есть в продаже, то любая аналогичная самоделка будет хуже качеством, дороже, и еще нужно учесть время и силы потраченные на программирование и сборку. По этому, если что-то есть в продаже то не нужно «изобретать велосипед». Выигрыша от этого никакого.
      Самоделку есть смысл делать только при условии изготовлении устройства которого нет в продаже. Самоделки - это не про экономию, абсолютно.

    • @Drevorub
      @Drevorub 4 місяці тому +1

      Это понятно, но в нашей округе приемлемый джойстик Logitech Extreme 3D Pro стоит уже 6.500@@UCanDo

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

    а как слово отправить, а то библиотека только одну букву или цифру на английском причем только может отправлять в сериал

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

      Собирать символы в слово и отправлять только по нажатию какой-то кнопки

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

      @@UCanDo кнопку то я нажал, получил например один из 90 символов, например '#', через if получается сделать? если # то pirntserial "Привет" например?

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

      Да, что-то в этом роде

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

      @@UCanDo if (kpd.key[i].kchar='A') {Serial.print("привет ");} заработал такой способ, но слово привет пишет раз двадцать сразу

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

      Обнуляй значение нажатой клавиши

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

    сделайте калькулятор..... а то, что-то не совсем понятно зачем все это нужно...

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

      :))

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

      Home Made - То, что ты можешь сделать Типа вот такого... DIY Калькулятор Счетчик комплект калькулятор DIY Kit ЖК-дисплей Многоцелевой Электронные калькулятор Электроника вычислений с акриловый чехол
      s.aliexpress.com/QJnMZjuY?fromSns=

    • @404Negative
      @404Negative 6 років тому

      а калькулятор зачем нужен ?

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

      404Negative затрудняюсь ответить.... а вы что предлагаете...? ;-)... Можно попросить Home made, чтоб сделал платформу на гусеницах с кнопками и модулем mp3... чтоб с кнопок маршрут программировать и чтоб ездила по марруту, мигала светодиодами и пикала в стиле звездных воин и треки проигрывала, можно придумать будильник на гусеницах..... пускай ездит по комнатам и будит трудовой класс, школьников и домохозяек в установленное время....

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

      @@UCanDo Привествую уважаемый автор,,,вот решил повторить на днях Ваше детище,,,и она мне пишет так, "-¿¤~`?*_'°~

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

    матричная клавиатура катастрофически медленно работает, ничего лучше не существует ?

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

      Клавиатура не может быть медленной. Это просто кнопки. Скорость обработки на прямую зависит от скетча. Возможно он написан не оптимально. От этого и торможения.

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

      спасибо большое! у вас не тормозили кнопки? тормоза 1сек примерно, а одновременно нельзя вообще нажать. Это катастрофически плохо. keypad.h как и в вашем примере пример тестировался. Может кнопки резистрами подтянуть? диоды может нужны? тормозит 1сек примерно.

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

      Ого! Нет, у меня все четко срабатывало.
      Можете написать ваш скетч? Попробую глянуть что не так. Вот только у компьютера я буду часа через 3, тогда и смогу посмотреть

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

      @@UCanDo yadi.sk/d/5AUUP7YAYYQ2LA

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

      Добрый день простите за задержку с ответом.
      Только что посмотрел код. Сами писали или это чей-то код? Настоятельно рекомендую правильно форматировать код, тогда он нормально читаем. Вот так правильно:
      void read_serial() {
      if (Serial.available() > 0) {
      char ByteRead=Serial.read();
      if (ByteRead==13) { //возврат каретки
      analyzer(); //передача данных на обработку
      bufer="";
      } else { //освобождение буфера
      //накопление данных в буфер
      if(ByteRead!=10)bufer=bufer+char(ByteRead); // символ "новая строка"
      , нам в буффере не нужен
      }
      }
      }
      Первое на что обратил внимание, если я правильно понял, то кроме подключения и обработки нажатий на клавиатуре еще происходит управляемое, "виртуальное" нажатие кнопок управляемое через сериал? Именно это делает функция analyzer() ? У вас случайно ложных нажатий не бывает? Мне кажется эта функция нарушает работу Keypad.h
      Но это нужно проверять.
      Дальше, в Setup:
      keypad.setDebounceTime(100);
      Цитата из библиотеки Keypad.cpp: // Minimum debounceTime is 1 mS. Any lower will slow down the loop().
      Немного непонятно относительно чего говорится " Any lower". Относительно увеличения DebounceTime, и тем самым "замедления" кода, или о более низком значении DebounceTime, то есть ниже 1 мс.
      Так или иначе, попробуйте вместо
      keypad.setDebounceTime(100);
      прописать
      keypad.setDebounceTime(1);