Menu with voice & rotary encoder - Arduino

Поделиться
HTML-код
  • Опубликовано: 29 янв 2018
  • Best & Fast Prototype ($2 for 10 PCBs): www.jlcpcb.com
    Thanks to JLCPCB for supporting this video.
    This is a small example of how to use a rotary encoder to scroll the menu. How to create special unique characters for the i2c LCD screen and how to play Mp3 files with the DFplayer module. You have all the files you need below.
    Help my projects on Patreon: / electronoobs
    my Q&A page: electronoobs.com/eng_preguntas...
    Canal en Español: / electronoobs en español
    --------------------------------------------------------------------
    COUPONS
    --------------------------------------------------------------------
    Creality CR10 mini: www.gearbest.com/3d-printers-...
    COUPON: "CR10MINI"
    Anycubic I3: www.gearbest.com/3d-printers-...
    COUPON: "I3MEGA"
    Creality CR10 : www.gearbest.com/3d-printers-...
    COUPON: "11CR10US" or "11CR10EU"
    Tevo Tornado: www.gearbest.com/3d-printers-...
    COUPON: "Tornados" or "TornadosUS"
    PROJECT LINKS
    --------------------------------------------------------------------
    Tutorial webpage: www.electronoobs.com/eng_ardui...
    Part list: www.electronoobs.com/eng_ardui...
    Rotary encoder test code: www.electronoobs.com/eng_ardui...
    i2c LCD test code: www.electronoobs.com/eng_ardui...
    Special char LCD code: www.electronoobs.com/eng_ardui...
    DFplayer example code: www.electronoobs.com/eng_ardui...
    Final code: www.electronoobs.com/eng_ardui...
    i2c library: www.electronoobs.com/eng_ardui...
    DFplayer library: www.electronoobs.com/eng_ardui...
    SCHEMATICS
    --------------------------------------------------------------------
    Rotary encoder: www.electronoobs.com/images/Ar...
    i2c LCD: www.electronoobs.com/images/Ar...
    DFplayer: www.electronoobs.com/images/Ar...
    Final schematic: www.electronoobs.com/images/Ar...
    Like share and subscribe to motivate me. Thank you
  • НаукаНаука

Комментарии • 154

  • @ELECTRONOOBS
    @ELECTRONOOBS  6 лет назад +19

    I hope you enjoy this video. If you have any question use this comment section or my Q&A.
    Want to support me? www.patreon.com/ELECTRONOOBS
    Thank you very much!

    • @ufohunter3688
      @ufohunter3688 6 лет назад

      Nicely done. What is the Max clock frequency you can use on the I2C line for these LCDs?
      Can it do 400KHz or even more? or just 100KHz?

    • @ufohunter3688
      @ufohunter3688 6 лет назад

      The reason I ask, is that you are using 10K pull-up resistors. That big of a resistor can hardly do 100KHz.

    • @madhukeshnp
      @madhukeshnp 5 лет назад

      Why GOD has stuffed all the intelligence at one single place ????????? I am jealous of this guy. You are just amazing.......!!!!!!!!

  • @luisces
    @luisces 2 года назад +3

    This was by far the most straightforward explanation I've seen around, also the amount of comments and code readability is amazing! Well done

  • @MrCrystan
    @MrCrystan 6 лет назад +1

    This is by far the best menu i have seen so far and the voice bonus is just WOW. Kudos for sharing the code with us too

  • @marinussmit3322
    @marinussmit3322 2 года назад

    Thanks for this easy to follow guide!
    I used it to build a sensor box with a scrolling menu to show the readings from the various sensors!

  • @DaveEverett01
    @DaveEverett01 4 года назад +2

    Nice to see someone combining all these elements together. You could eliminate the 10k resistors as pinMode can be configured as INPUT_PULLUP. Also the DFplayer has an amplifier onboard and can drive a normal speaker quite loud, so you could make the project simpler. I hope this information is helpful

  • @barbasbandas6665
    @barbasbandas6665 6 лет назад +5

    Man just great! You are becoming one of my favourites

  • @rubabvlogs1843
    @rubabvlogs1843 6 лет назад +4

    dude you are awesome....the way u describe the things so calmly...no youtuber does this....thanks...

  • @alphonsesynrem28
    @alphonsesynrem28 4 года назад

    You are really good, very detailed and easy to understand how every of your projects works. Thank you so much, I am learning so much. Keep up the detailed explanation and transparency of your projects. I have found your videos very helpful and nothing useless in them. Your videos are quick fast and to the point, makes it very worthwhile.

  • @ChunkySteveo
    @ChunkySteveo 6 лет назад

    Another great explanation of the basic fundamentals. You're very good at explaining it all, keep it up!

  • @james_waynegamingvideos6959
    @james_waynegamingvideos6959 5 лет назад

    I love this youtube channel, one of my favorite channel to view everyday, thanks for sharing your knowledge to everyone, you got a great job doing it. salute!

  • @mesotin
    @mesotin 4 года назад

    This was awesome dude!!! Great job, got to check out your other videos!

  • @texmuphy68
    @texmuphy68 2 года назад

    Great explanation of how a rotary encoder works. (and you're easy on the eye as well)

  • @lklkvcvc
    @lklkvcvc 4 года назад

    The best tutorial video I watched on a project

  • @1_HighDuke
    @1_HighDuke 6 лет назад +5

    Great video overall. I personally would've liked to see more of an explanation of the final code since it uses interrupts.

  • @littlemadness221990
    @littlemadness221990 5 лет назад +1

    At least, someone is still advertising JLCPCB :))

  • @leehewitt9559
    @leehewitt9559 2 года назад

    Excellent video, this will help me to build a project for a similar task. Glad I'm a patron to keep your channel going.

  • @alphonsesynrem28
    @alphonsesynrem28 5 лет назад +1

    Thank you for the tutorial. You have excellent way of simplifying the so seemed complicated work of electronics or mcu coding. I have learned a very nice and important thing.

  • @Farizno
    @Farizno 6 лет назад

    Fantastic video.Exactly what I was looking for, and then some. Thanks for your continued great videos and fantastic explainations.

  • @stever3886
    @stever3886 3 года назад

    Most excellent video. I will be using this for my next project menus

  • @paulbrandt2454
    @paulbrandt2454 6 лет назад

    Wonderfull tutorial! Great explanations and examples. A lot of good information.

  • @yogpanjarale
    @yogpanjarale 11 месяцев назад

    okay i coming back to this video after 5 years i used to watch this channel a lot back when i was 12-13 , now i am 17
    i will comeback and make it , making such stuff still interests me

  • @russ_vee_jr4199
    @russ_vee_jr4199 Год назад

    Really good vid.
    Your implementation of scrolling is helpful to me as I define coding of my current project.
    I hadn't stopped to figure it out, but your method showed me how simple it is.
    You do Good Work. Thanks Much....

  • @chiparooo
    @chiparooo 6 лет назад

    Nice tutorial! Great explanations and examples. A lot of good information.

    • @ZenoModiff
      @ZenoModiff 6 лет назад

      IF YOU ARE A PROJECT LOVER WE THE ZENO-MODIFF TEAM PARTNERS WITH YOU TO MAKE COOL PROJECTS WITH ARDUINO,RASPBERRY PI,IOT
      & DIY ELECTRONICS WHICH YOU LOVE IF YOU ARE ONE WHO REALLY NEED HELP TO ACHIEVE OR TO MAKE PROJECTS BUT DONT HAVE THE BASIC IDEA OF IT WE ARE WITH YOU FRIEND PLEASE SUBSCRIBE OUR RUclips CHANNEL FOR MORE VIDEOS ruclips.net/user/ZenoModiff

  • @nedstar7378
    @nedstar7378 Год назад

    Excellent video and great information, thanks for sharing.

  • @datdawg9291
    @datdawg9291 6 лет назад

    You are awesome at explaining and teaching

  • @octapc
    @octapc 6 лет назад +7

    You are so under subbed. Love your work.

    • @ZenoModiff
      @ZenoModiff 6 лет назад

      IF YOU ARE A PROJECT LOVER WE THE ZENO-MODIFF TEAM PARTNERS WITH YOU TO MAKE COOL PROJECTS WITH ARDUINO,RASPBERRY PI,IOT
      & DIY ELECTRONICS WHICH YOU LOVE IF YOU ARE ONE WHO REALLY NEED HELP TO ACHIEVE OR TO MAKE PROJECTS BUT DONT HAVE THE BASIC IDEA OF IT WE ARE WITH YOU FRIEND PLEASE SUBSCRIBE OUR RUclips CHANNEL FOR MORE VIDEOS ruclips.net/user/ZenoModiff

  • @ccango
    @ccango 5 лет назад

    Nicely done. Great explanation!!

  • @dilipsuthar1836
    @dilipsuthar1836 2 года назад

    Good vdo, great piece of information shared on fundamentals. Keep sharing....

  • @kanadnemade
    @kanadnemade 6 лет назад

    Love that background!

  • @dfn808
    @dfn808 2 года назад

    I know I'm a bit late, but this is an excellent tutorial. Thanks for sharing.

  • @Mysteryos
    @Mysteryos 6 лет назад

    Very very good explications and video. Moreover I am french and I understand you.
    Thanks

  • @mahmoudtarek8328
    @mahmoudtarek8328 6 лет назад

    You are my favourite electronics channel

  • @kamalambrator4332
    @kamalambrator4332 6 лет назад

    Nice nice nice nice tutorial! Great explanations and examples. A lot of good information, thank you!!!!!!!!!!!!!!!

  • @mohammedrhiat4375
    @mohammedrhiat4375 2 года назад +1

    Great Video , GOOD JOB !!

  • @mertcapkin7263
    @mertcapkin7263 6 лет назад

    Good content and great video editing! Subscribed :)

  • @jimbobillybob1959
    @jimbobillybob1959 6 лет назад

    Thanks so much! Another great video!!

  • @electrotsmishar
    @electrotsmishar 3 года назад

    Thank you. Awesome video

  • @tamarathompson9418
    @tamarathompson9418 6 лет назад

    Thanks heaps im reading a book on this and have all the components but haven't gotten around to doing anything with it yet , the df player i mean . Cheers

  • @DRI1966
    @DRI1966 3 года назад

    Thank you for this video. Well explained 👍

  • @vishal01mehra
    @vishal01mehra 6 лет назад

    Thank you very much for Great project.

  • @swaransinghsandhu
    @swaransinghsandhu 6 лет назад

    Also your work shop is very nice looking

  • @Shalfatk01
    @Shalfatk01 2 года назад

    i love that "banana for a scale" :D

  • @hsfi7408
    @hsfi7408 3 года назад

    Great Video! Thanks!!!

  • @1113562
    @1113562 5 лет назад

    very neat. I found this as was looking for a way to generate voice sentences and values for transmission from a data acquisition system at a remote location. transmission would be via an audio channel of a gsm gps tracker device.

  • @markknezovich5620
    @markknezovich5620 5 лет назад

    otlichna! Spasba bolshoi!

  • @ELECTROBUFF
    @ELECTROBUFF 6 лет назад +1

    Good video about rotary encoders. What software do you use to edit your videos?

  • @chalos9752
    @chalos9752 6 лет назад +1

    Great video!!!

  • @katrinapaulabalbuena2906
    @katrinapaulabalbuena2906 6 лет назад

    Thank you so much for this video.

  • @RandyLott
    @RandyLott 6 лет назад

    The 1k resistors likely reduce ringing, so that may be why it's quieter with them.

  • @j.lucena5486
    @j.lucena5486 3 года назад

    Very good. Excellent

  • @muratdndr
    @muratdndr 2 года назад

    Thank you very much bro...

  • @garethdavies8673
    @garethdavies8673 4 года назад

    great video many thanks

  • @Rayyarhs
    @Rayyarhs 3 года назад

    For rotary use interupt. If using delay or you use library that has delay, and turn the rotary to fast, it will read wrong readings.

  • @jordanmusleh6305
    @jordanmusleh6305 4 года назад

    Best video ever..!!👏👏👏👏👏🤟🙏🤜🤛

  • @majinkeyboards
    @majinkeyboards 3 года назад

    Awesome!

  • @amirakhtar390
    @amirakhtar390 4 года назад

    this is very help full video

  • @isprithul
    @isprithul 6 лет назад +1

    Hoping to see that brushed motor quadcopter soon.

    • @anthonyg4671
      @anthonyg4671 6 лет назад +1

      Iqbal Samin Prithul sound is ok it must be your end.

    • @isprithul
      @isprithul 6 лет назад +1

      Anthony ihavenoidea Right. Somebody turned my speaker knob to the lowest position

  • @alirezaasad8822
    @alirezaasad8822 3 года назад

    good work

  • @addaemichael4683
    @addaemichael4683 4 года назад

    This is a great project and I will be glad if you can use this same project to produce an electric drum using piezo transducers no MIDI.thanks

  • @swaransinghsandhu
    @swaransinghsandhu 6 лет назад

    Nice project

  • @belenhedderich3330
    @belenhedderich3330 6 лет назад

    Dear Your example test sketch of the LCD is for a 20*4, not for a 16*2 as in the example. Doing the whole thing hehe

  • @kimberlycarreon1804
    @kimberlycarreon1804 3 года назад

    You nare so awesome

  • @eii9639
    @eii9639 7 месяцев назад

    This is awesome!! What kind of breadboard is that?

  • @apollorobb
    @apollorobb 4 года назад

    On some libraries for I2C displays you have to initiate the LCD with lcd.begin and not init.

  • @GRBtutorials
    @GRBtutorials 6 лет назад

    "And share the video with your friends" Unfortunately, my friends don't like electronics.

  • @DeclanGreen
    @DeclanGreen 4 года назад

    I love this project. Is there a PCB design to go with it?

  • @imadjihad9295
    @imadjihad9295 5 лет назад

    You are A one ,,,,,,, master , thanks .

  • @duverneygomeztovar4422
    @duverneygomeztovar4422 5 лет назад

    hola el video esta super interesante te felicito por favor hazlo en español saludos desde colombia

    • @hornos27hotmailcom
      @hornos27hotmailcom 4 года назад

      Saludos amigo Colombiano, vea este link,
      ruclips.net/video/oYjd7NcTNjg/видео.html esta en Español.

  • @Zhaymoor
    @Zhaymoor 6 лет назад +2

    I wish you explaind how to use the interrupts in your code

  • @GRBtutorials
    @GRBtutorials 6 лет назад

    And what about the orders after the first one? How much is the shipping here to Spain? I heard figures like 20 € or so, which is a bit expensive considering that the PCBs are less than 2 € (the EUR/USD goes pretty well, finally...).

  • @Toro-Tor
    @Toro-Tor 4 года назад

    Good stuff and THANK YOU!
    But there is one problem with the suggested library, if I put it in my arduino-libraries, I get Warnings:
    "Invalid library found in C:/.../libraries/DFPlayer_Mini_Mp3_by_Makuna: no headers files (.h) found ..."
    Even if I now use a sketch where I dont use this library, still get this message.
    Its nice to have libraries where there is only the necessary stuff written, but obviously here to little was written.
    Any ideas what to do?

  • @orange11squares
    @orange11squares 6 лет назад +2

    you forgot to add a replicator to materialize your desired coffee ! :))

  • @akroutsamo
    @akroutsamo 5 лет назад

    are switch case break better with menu than the iF statement ?
    maybe a new tuto , and how to save some value to the eeprom, lets say temperature controller for example

  • @AdriOq
    @AdriOq 4 года назад

    Hi! I love your videos, I was wondering if you can explain how to change the encoder pins for clk and dt in the complete code.

  • @VikMKW
    @VikMKW 6 лет назад

    Couldn't you substitute the external pull up resistors on the Data/Clock pins with the on board pullup resistors of the arduino using "pinMode(data, INPUT_PULLUP)" ?

  • @calvin-7540
    @calvin-7540 4 года назад

    @9:21, shouldn't be both the 3rd and 4th rows decimal 8 instead of 6 if we count in terms of binary order, should they?

  • @Andandos
    @Andandos 5 лет назад

    very nice and simple code! I tried it with the LiquidMenu library (qithub/VaSe7u/LiquidMenu) but I was not able to combine it with the rotary encoder + I2C display...

  • @grecomoragagonzalez5031
    @grecomoragagonzalez5031 6 лет назад

    hi, nice video!!
    i have some troubles with the special characters. "array must be initialized with a brace-enclosed initializer" appears when i load the uint0_t sentence, do you knou what could be the problem?, thanks BTW

  • @maikscheermeijer718
    @maikscheermeijer718 3 года назад +1

    ***SOLVED***
    If you are using a black soldered rotery encoder with already 3 resistors on the back, don't use the resistors in the schematic for the encoder. You also have to change the code line to
    ************ if (!digitalRead(push))******************

  • @omhobby9481
    @omhobby9481 4 года назад

    5:40 hey is it possible only use internal pull up instead of pull up resistor?

  • @ImaginaPower
    @ImaginaPower 6 лет назад

    But thank you for very intuitiv videos

  • @guyfradasyl88650
    @guyfradasyl88650 6 лет назад

    wonderfull video
    have you a link (enable) to buy the same breadbord, because mine is not working good. thank

  • @emreoztoklu
    @emreoztoklu 6 лет назад

    hi my friend, ı would like yo ask a question. Could u create a project which can use same like this kidnd of project by using a GLCD KS0108 ?

  • @gsuresh2u
    @gsuresh2u 2 года назад

    Is this code work for Stm32 blue pill?
    What pins I need to use for rotary encoder?

  • @abbaschandorwal724
    @abbaschandorwal724 2 года назад

    I want to print measuring tape can a signal from the encoder give a continuous print outif connected to a printer so I can have a 5 meter long tape printed to sell commercially

  • @MikeSmith
    @MikeSmith 5 лет назад +2

    I notice that the button on the encoder is set for a pulldown resistor however the encoder I have has is set for pullup so it is acting like the button is always pushed. How would you change the code for a button with a pullup resistor?

    • @carangers
      @carangers 3 года назад

      This every get solved? I think Im having the same issue.

    • @yukonschannel
      @yukonschannel 3 года назад

      This every get solved? I think Im having the same issue.

    • @oriannakane7359
      @oriannakane7359 3 года назад

      I did it by taking out the switch resistor (so it will no longer be pulled down). Then in the code where the button section is, reverse it by saying if (!digitalRead(push))...

    • @oriannakane7359
      @oriannakane7359 3 года назад

      @@yukonschannel I just answered. Hope it helps!

    • @oriannakane7359
      @oriannakane7359 3 года назад

      @@carangers I just answered. Hope it helps!

  • @gare_moore
    @gare_moore 4 года назад

    How would you adapt this system for a Bluetooth speaker? Also, can you use normal push buttons? Thank you for posting.

  • @sidharthap
    @sidharthap 6 лет назад

    What software do you use to design your PCBs, Eagle, KiCAD?

    • @ELECTRONOOBS
      @ELECTRONOOBS  6 лет назад

      In this video EASYEDA. Also use DesignSpark or Eagle.

  • @unalakdogan9416
    @unalakdogan9416 2 года назад

    hello, every time I turn the rotary encoder, why does the counter increase by 2? For example, when I turn a round, it says 1 and then 2 on the screen.

  • @olegyanishen2577
    @olegyanishen2577 4 года назад

    Love your work! I need help with come project... can you help?

  • @abolfazlabbasi4854
    @abolfazlabbasi4854 5 лет назад

    Thanks for the tutorial
    But your IDE's font size need to be bigger because I couldn't see the lines even with 1080 quality.

    • @alejandroperez5368
      @alejandroperez5368 5 лет назад

      You need to learn some modals and stop watching tutorials on tiny screens.

  • @Arunram-2000
    @Arunram-2000 4 года назад

    Sir. Please make a video for transformer winding m/c using two stepper motors, lcd with menu system,arduino, matrix keypad. It will useful to students project and commercial purpose.

  • @gsuresh2u
    @gsuresh2u 2 года назад

    Hi, good work, but how to use this code for Stm32 blue pill? How to define rotary pins?

  • @ashajjar
    @ashajjar 6 лет назад

    Hey what's up with the banana in every video :D :D

  • @moienrabbany8344
    @moienrabbany8344 2 года назад

    hi thanks for helpful information, I wanna make mp3 player and display file name in lcd with BT-201 module and I don't know how to connect it with arduino and write the code . I need help to do that

  • @ruslan.zhumabai
    @ruslan.zhumabai 5 лет назад

    Do you have project menu with button on arduino. If you have show please.

  • @markd.maranan3742
    @markd.maranan3742 4 года назад

    Does it work with the regular lcd 16x2 (not the i2c one)?????

  • @MrTigger015
    @MrTigger015 5 лет назад

    if someone has problem with switch inside encoder just solder 1k/10k resistor on bottom layer of pcb

  • @hemantmundhe6662
    @hemantmundhe6662 6 лет назад

    Nice bro I think so you build a coffee machine in future.best of luck.

  • @akshayd211
    @akshayd211 5 лет назад

    Your code does not work with my setup which is exactly the same.