Ep. 59 - Arduino LCD Display Menu System Tutorial, Scrolling Menu, Changeable Variables for Projects

Поделиться
HTML-код
  • Опубликовано: 10 дек 2024

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

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

    Vlad, I've followed you on Solis PLC, your videos gave me a lot of good help. Now I am branching out into micro controllers I find you again helping me with your video''s!!!

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

    Super good. Integrating this into a temperature controller for bioethanol fuel cell research, controlled with a joystick. Changing parameters can be scaled by the y axis of the joystick, so the further away from the middle it is the faster the value changes.

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

    about 20 years ago, I remember making a menu system from if statements, my problem was that they weren't mutually exclusive. Meaning, if you meth the criteria of one, you could then also meet the criteria of the next and next. So I eventually switched over to Case statements. This has it's own follies, but the system is much more exclusive. Thanks for the video. I'll keep pluggin'

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

      Like what follies?

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

    I've been spending a while looking for videos to help me with programming and LCD menu on Arduino. This has been by far the most helpful! Thanks.

  • @yugendravenkatadurgamruthk7797
    @yugendravenkatadurgamruthk7797 4 года назад +1

    Thanks for a CRYSTAL CLEAR explanation.

  • @rarenu
    @rarenu 6 лет назад +14

    Hi, I am 73 years old retired Telecom Engineer and my hobby is Arduino. Your Menu System is really nice. Advice me how to store the parameters in EEPROM to recall on restart. With Great regards.

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

      3 years and he still hasnt replied lol-

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

      @@vil5286 maybe he already give up his account 🤣

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

    Hi, Mr.Roman, I know you from the PLC tutorials. I use C++ too, but frankly, I prefer the Ladder logic of A.Bradley, with the 2nd you use pure logic. The C and Java are more just like foreign languages.

  • @IRgEEK
    @IRgEEK 7 лет назад +1

    These vids are great. I can't keep up. :-) If work works out, I'll be bingeing them over the weekend. Nice work!

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

    As long as people understand that this is beginner level stuff, this is a good tutorial.
    I mean there are no interrupts utilized, the menu structure and arrays could be saved directly to flash so you could save on RAM and there could be display buffer such that you render to that buffer and then when it's ready you send it to the LCD using hardware SPI/I2C module etc. etc.
    Debouncing could utilize hardware timers as well and buttons shouldn't be polled if not necessary but be interrupt driven (either timer or state change interrupt).
    It's a good tutorial for those who want to learn the basics regardless. :)

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

    Excellent Tutorial. Thank you for all the insights. It made the menu function so much simpler and i can actually understand it!!

  • @MM-bn7uo
    @MM-bn7uo 4 года назад

    thank you your complete and precise description helped me to figure out my code and BTW your accent is awesome I felt like I have Vodka on my desk

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

    this was a huge help, thank you! I used your method and modified for my project, works great!

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

    I found it interesting that you used a AB PowerFlex 4 for your example. I designed a lot of equipment that used that drive. Allen Bradley is obsoleting that particular drive soon by the way.

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

      It's a drive I see quite frequently in the field, but you're completely right in saying that it is an older model at this point. For most panels I specify nowadays, I've been using PF 525 drives. That being said, they have somewhat of a different screen setup, but it still applies to some extent.

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

    This is really a great video. Got my concept cleared. It would really helpful if you make same tutorial with 4x4 keypad instead of four buttons, since it would be really simple to input parameters to send to arduino.

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

      Thank you for the kind comment sir. I actually have one of those keypads on hand and may create a tutorial with it if I receive more interest! Thank you for the suggestion.

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

    This is brilliant ! thanks for the tutorial

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

    Thank you very much for the informative video. It helps a lot in many applications.

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

    Amazing! Cheers from Argentina!!!

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

      Argentina....!! Wow....
      I like Argentina.... Mario Kempes, Diego Maradona, Lion Messi and a lot more like Batistuta, Kaniggia..etc....etc..
      Hasta la vista.....!!!!😅

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

    Could you go into more detail on saving the adjusted values and how to call on them in a program

  • @plymouthrovadventures.646
    @plymouthrovadventures.646 Год назад

    Thank you. A very nice tutorial of screen management. BTW Web sits is Down. Shame was looking on how to Store the results onto EEprom Etc. Easy to adapt to other screen formats as all the screen data is in one place in a Void. Thank you again.

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

    Good video bro... keep posting

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

    Easy to Understand Thank you so much

  • @muthratha38
    @muthratha38 4 года назад +1

    Really great for this tutorial. Thanks you so much. And could you add output depends on each parameters?

  • @Hsrt767.....93
    @Hsrt767.....93 2 года назад +1

    bro can you explain how to edit a variable using a keypad or pushbutton and print in real-time on an LCD using arduino.

  • @JeffreyVastine
    @JeffreyVastine 7 лет назад +2

    Vlad is it possible to do something similar using capacitive or resistive touchscreens and instead of using momentary contact switches to change options, settings, or parameters simply touch the screen where the item one desires to modify and a drop-down list of options opens up? If so, this would be a great addition to this tutorial since small touchscreens with enough area to carry this out are cheap. By the way, the regularity of your posts is great and the production quality has improved too. I truly appreciate the time and effort you put into these videos as well as your willingness to freely share your knowledge and experience with the world. Thanks, brother you are truly a blessing!
    Peace!

    • @VladRomanov89
      @VladRomanov89  7 лет назад

      thank you sir, sorry for the late reply. I'll definitely look into getting a touch screen and get on that.

  • @Sega-and-Mao
    @Sega-and-Mao Год назад

    Really helpful! 👌👌👍👍👍I will exploit it!!! Thanks , plus you just got another subscriber😅

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

    WoW.!!!!.....VERY GOOD , MAN!!!!!!

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

    Thanks for this tutorial. You get a new subscribe

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

    (clap) (clap) (clap)
    Thanks... very clear...
    Greetings from Argentina!

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

    Excellent work!

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

    Thanks for your video, very well explained!
    And thanks for the code which I will be using once I have hacked it a bit to work with I2C 1602 and a resistor chain 4 switch input on an analog pin.

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

    Thanks for your videos ,Excellent job and very useful.
    Would you please tell me how to save the changes, I loose all setting after reconnect the Arduino.
    Thanks.

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

    I have bn looking for this thanks man

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

    Many thanks to EEEnthusiast for your introduction. Following your guidance, can I have 02 questions as following:
    1. Link menu to an action such as show date/ temperature:
    I tried to deal with inserting a function like ShowDate but when running the showdate, button click is nolonger avaiable to change menu.
    2. How to make a setup code so at first the LCD will print out date/temp or general information. After clicking a button, menu will so up and we can choose other action below. After finishing or time out the menu goes back to the general screen.
    Please be so kind to advice me.

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

    HI...enjoying your videos and find the coding explanations you use are very clear.Question: after you have written and compiled some complicated code...is there any way, or what is the best way, to insert "stop" commands at various stages so that you can step thru the code/actions for debugging purposes??.

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

    Have you done any video with rotary encoder same as this video?

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

    Thanks i have made it. Works well. How can i add range limit on each parameter for examble voltage up to 380v current up to 30 amp etc?

  • @frederickcunningham978
    @frederickcunningham978 7 лет назад

    instead of puting an if else in your action group for button one you could just say currentScreen = (currentScreen+1)%10;
    great vid!

  • @chingizkuryaz7713
    @chingizkuryaz7713 26 дней назад

    can you do exactly same thing using updated libarary pls

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

    Thanks, muchas gracias. Excelente video.

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

    very use full tutorial

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

    How would you implement validation for each screen?
    I guess you would have to create another 2D array with min and max for each page and check for them,
    any better solutions?
    What If I have non integer things like Yes/No?

  • @DevesTechnet
    @DevesTechnet 7 лет назад

    Very nice! Thanks for this.. the question is, I have 10 different functions (function one for example is 6 LEDs that blink in succession, two would use a Pot to adjust the blink rate, etc etc). They are set up in Switch/Case format using the Serial interface to choose items. How do I plug what I am trying to do into your menu system? This looks very promising! It would end the requirement of having to open the serial monitor.

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

    So lets say we wanted a scrollable menu that managed an array of sensors and had adjustable set points for activating relays. Is this something you would like to do a tutorial on? I know the answer is here and I have modified this code to open up possibilities but if you could grant this request it would mean a world to lots of folks just trying to rock out DIY automation.

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

      do you have any results in this project? sounds like interesting one

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

    I want to make a LCD menu just like that one but it has two variables per screen. How do i make the two side buttons on my Adafruit RGB LCD be able to move between the two variables?

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

    Hi, The content is what I am looking for but I have 12c connection on my LCD

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

    The written tutorial link redirects to an e-commerce website and can locate the page for the written tutorial

  • @2112user
    @2112user 3 года назад

    Thank you for explaining this, googled Arduino menu and glad I saw this.
    I do have 2 questions. How could we go about having that first screen be a sort of home screen.... specifically, I want to do this for time and temperature.
    The menu would be used to set low temp, high temp and then time on and time off. On the home screen I'd like to show actual temp and time.
    My second question is on time.... how would this be implemented to change 12 hour time, would you have a menu screen for each element (hour, min, am/pm) or is there a way to select only the section of time you want to adjust?
    If you show this in other videos, I'm going to go check out your others now, but could you let me know which one(s). Thank you.

    • @2112user
      @2112user 3 года назад

      Also, IDK if it matters, but I'll be using an OLED screen...... figured the concept would be the same?

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

    Sir! I made an arduino solar charge controller using 16x2 LCD with a button switch to select "menu1" monitors solar voltage and current and "menu2" monitors voltage and current
    of the battery. Switching between these two menus was good but I noticed that the lcd display did not keep updating the voltage from the input pins. can you help me? thank

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

    Possible to do this with a Keyes KY-040 rotary encoder..?

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

    Thank You! Great tutorial!!! Question: I used serial print to view the Variables.
    When the code starts it shows:
    (screens[currentScreen][0] shows Motor Voltage, Motor Voltage, Start Time, Motor Voltage
    Serial.print (parameters[currentScreen]); shows 1,0,0,0
    Serial.print(screens[currentScreen][1]); Volts, Volts,Times,Volts
    so at startup it looks as if it is not setting all the button presses to 0 untill it goes through all the buttons.
    Is their a way to fix this?
    I attempted to debug but could not figure out why it was doing this.
    Thanks! Again.

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

    Hi, please make a video on Menu inside multiple sub-menu and its action or share link.

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

    Why are you making lastInputState full of LOWs when your buttons are by default HIGH? Wouldn't it make the Arduino detect push at the beginning of the program?

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

    Worked out how to access the parameters and rename each for the rest of my program as variables. First 2 I wanted to be floats so did that as far as my program is concerned but is there any way to display the parameter as a float value. for example as 0.001"

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

    Hello sir, wishes for the day.Sir I tried the given code ,but after switch OFF/ON the Arduino ,the numric value (in second row) become 0,If you have made same using eeprom ,pls suggest episode no.
    THANKS .

  • @minkloco619
    @minkloco619 10 месяцев назад

    Can I do this in XOD? I’m trying to make a drum machine.

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

    Very helpful.

  • @drhve5641
    @drhve5641 7 лет назад

    show more about the int string parameter so i can make a led go on in first menupage and control the motorspeed in the second menupage

  • @Flippomatik
    @Flippomatik 7 лет назад +1

    Hello how can I change one input value from int to float?

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

    Respectable sir
    I have a small doubt, imagine i changed some value using this switch for my purpose, what will happen once power off and on??. What value will remain once the power on??. Whether the value i changed?? or, the value you that written in the code???.
    If it will remain the value written in the code, is there any way to keep the value manually given by user even after powercut??. Please give me solution, thank you

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

    very useful, thanx a lot.

  • @9thb1996
    @9thb1996 3 года назад

    Hello sir, awesome project by the way, I implemented the same and wanted to try out one feature, like I have another button which is pressed to execute something with respect to the values i recorded in the menu. eg. I put run time and frequency in the menu and stored the values in the variable and now i want to use these values and execute a basic command. like if there is another button which when pressed executes some codes taking values entered previously. how do we do it?

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

    This is great tutorial for lcd menu that I found. I'm in the middle of making project of programmable dozing pump using arduino uno with lcd keypad shield, RTC DS3231 and peristaltic pump. I want to make the dosing pump running automatically base and day and time that I can set before. also every pump will run for specific volume as we set. I really appreciate if you help me to create the code for those project? thanks

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

    how do i make the values i change on the lcd an output for stepper motors so i can have them independently rotate a set number of steps, thank you for you help

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

    thank you for your good smilling

  • @abinavanantharaman1555
    @abinavanantharaman1555 7 лет назад

    Really good video Vlad!! I want your help. I am trying to make a similar GUI but i have to use only 3 buttons. I have got 4 main menu items and the first menu item has 4 more sub items.So i am going to use one button for entering a menu and saving a changed parameter. The other two for navigation and changing parameter values. Please can you help me out!! Also the code is not available on the link you have posted.

    • @VladRomanov89
      @VladRomanov89  7 лет назад +1

      That's definitely something I can help you with. Could you please post some more info (your menu structure, what you'd want that 3rd button to do exactly at every step, etc.) on the forum (forum.eeenthusiast.com/)? I'd like to build exactly what you're talking about and create a "follow-up" video to this one on how to add sub menus. Also, I'll fix the link to the code tonight; thanks for pointing that out.

    • @abinavanantharaman1555
      @abinavanantharaman1555 7 лет назад

      Heyy Vlad !! i figured it out. Your code ,I think is the most versatile one i have seen so far. Excellent code!! I could easily make changes and yeah, i will provide you the structure. I think you can show a more easier way than i have done. Thanks!!

    • @VladRomanov89
      @VladRomanov89  7 лет назад +1

      awesome!

  • @frankbose544
    @frankbose544 4 года назад +1

    I'm trying to implement a rotary encoder to increase parameters and I'm having a hard time doing that

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

    How to control outputs using 4x4 keypad matrix (0-9 input) and 16x2..

  • @debjyotidey6928
    @debjyotidey6928 7 лет назад

    good explanation.
    thanks.

  • @santhoshsathyanarayanan4972
    @santhoshsathyanarayanan4972 7 лет назад

    How can set a float input..lyk u showed example in tiz video....I want to get input similar like 5.64,6.62 as user input wit only buttons...can u just help me how can I make it???...jus 1 input...

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

    Hey ! This is really a great video.
    initial values ​​are always zero, how can I change the values ​​of all items.
    sample
    Motor voltage: 5
    Amp: 20
    etc...
    I will assign a value to the nonvolatile memory and I want to change these values

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

      my question is the. please revert me if u had got the answer

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

    Can you use a rotary encoder instead of buttons. Ps very good learend a loat

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

    You are the best

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

    Good job

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

    can we do this on 20x4 lcd with i2c

  • @ความรู้เบื้องต้น

    thank you 🙏🙏🙏

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

    is this how you set it up for a LCD keypad shield?
    //Input & Button Logic
    const int numOfInputs = 5;
    const int inputPins[numOfInputs] = analogRead (0) ;
    int inputState[numOfInputs];
    int lastInputState[numOfInputs] = {LOW,LOW,LOW,LOW};
    bool inputFlags[numOfInputs] = {LOW,LOW,LOW,LOW};
    long lastDebounceTime[numOfInputs] = {0,0,0,0};
    long debounceDelay = 5;
    and to call a thing in your list, you put void in front of whatever you're calling?

  • @Torudson
    @Torudson 7 лет назад

    What about trying this but instead of using buttons, using a ps2 joystick module? You can change the screen moving the x axys and the parameters moving the y axys.

    • @VladRomanov89
      @VladRomanov89  7 лет назад

      Well, that's definitely possible. As it stands, any button or input can toggle the transition. If you wire it up the same way as the buttons, you can use any peripheral to create the same effect.

    • @Torudson
      @Torudson 7 лет назад

      I tried it and it worked very well!

    • @VladRomanov89
      @VladRomanov89  7 лет назад

      Awesome! Glad to hear it worked.

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

    Hi, just one question please. how i can use the parameter value for analog input? still cant figure it out

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

      Plug the button into your analog input,say you use inputs A0 through 3 for the four buttons type in stead of 8, 9, 10, 11 type A0, A1, A2 , A3 and that’s it

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

    But, when you reset yor device, you must to setup all again. Why you dont use EEEPROM.write() to store parameters?

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

      This code is doing nothing with parameters, so it is just part of whole project. Saving & reading EEPROM depends on other project logic.

  • @drhve5641
    @drhve5641 7 лет назад +1

    how can i use, set and define the parameters? can you help me pls,
    thanks friend!

    • @drhve5641
      @drhve5641 7 лет назад

      so you cant even put and controll parameters?

  • @sinankarakurt4392
    @sinankarakurt4392 7 лет назад

    Although I did not install the proteus, it did not work. Is lcd panel connections wrong

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

    Link to your www is broken/wrong.

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

    switch case may be?

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

    Hi, how we will add sub menu?

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

    can the data be saved even if i reset the arduino?

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

    how do i have 3 different inputs to different things ?

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

    Estaría bueno un tutorial dónde un display manejado con un encoder rotativo, poder definir un encendido de un led de una salida con un pulsador, um ejemplo sería poder tener 3 pulsadores y tres led y con el menu definir que pulsador quiero usar para encender uno de los led, eso se puede cambiar por relay y usarlo para domótica, maquinaria de una fábrica etc, es muy práctico pero para los que no entendemos mucho es un dolor de cabeza

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

    Thank you!!!

  • @DarrenDIY
    @DarrenDIY 7 лет назад

    nice one man

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

    ok, great (y) how to stores it in the eeprom ?

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

      Yes, I also want to store it in the eeprom, I suggest to try to add a function to save the values with another "save" button. This will prevent the eeprom to get over used. For real industrial use I would rather use a SD card.

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

    thank you

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

    Integrate with keypad?

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

    Thanks, but sir this program doesn't retain data after power off. how to do this sir?

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

      Never disconnect the power or learn how to save the values in the memory. How that is done there are instructions on Google where you can search and find what you need so you can put it together your self.

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

    HI good tutorial

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

    Looks like the eeenthusiast website has been taken over by a shoe shop.

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

    anybody know something about advanced input and button control but for micropython?

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

    Hi, I have been looking for something similar. The video was a big help. Thanks for the same. I am struggling to make the increments/decrements faster on a long sustained press of value buttons. (Want to do something similar to what digital clock buttons do). Please help me to add code to make the increments/decrements faster on a long sustained press of value buttons.

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

      That's an interesting application. It's obviously something which is present on many devices. It shouldn't be too difficult to implement, all you need to increase is the rate based on the press duration. In other words, in my case, the code does +0.01 with each press. As you hold the button down, after 5 seconds, it could change to +0.1.

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

      Thanks !
      Will sure try.

  • @100roberthenry
    @100roberthenry 7 лет назад

    excellent...

  •  Год назад

    COOL!

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

    How to add sub menus? how would that look like?

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

      You would need to nest the same array as you have at the top

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

      Okej, i´ll try that. Thanks for the reply :D