"if you want to fully understand it you have to make your own menu and see how it works" could not agree more awesome job! Also love the quotes at the beginning of the vid's
Hey Nick - I bought some of these 5110 displays when I saw your "favourite displays for Arduino" video. I don't know if it's a phase or not, but every single one I bought from dfferent suppliers had the same problem. The display is not soldered to the PCB - there is a flexible connector pad, and the display is pressed against it and the PCB by the metal frame we see in your video. The problem is that this frame is very often not pressing correctly to get a good connection, and even when it is - it is not reliable. This makes debugging a nightmare, It took me 2 days to work out there was nothing wrong iwht my electornics or my coding -the problem was this intermittent fault. There is a similar display - the HK1230 - with the same size LCD technology, SPI interface and pinout which does not rely on this metal frame pinch - in fact, there IS not metal frame It is a little more expensive, but Im hoping it's a lot less hassle. Also - regarding the 5110 and I'm hoping the HK1230 too - you can get 2 pins back by connecting RST to the rpocessor reset and CE to Vcc if you're on a 3.3v processor like the ESP8266.
Very helpful. I have been trying to do this exact thing for some time. I have been playing with Arduinos for a couple of years. I have read books and watched 100's of videos. I still don't do coding well. Having a starting point like this sketch is a big help. Thanks Nick for making and sharing your videos. Looking forward to the interrupt video.
Might have missed it but I don't see a 5V -> 3.3V level shifter in this video. If yours isn't working it's possible that this missing component has killed your LCD.
Beautiful, simple clean and i like that part about interrupt state to conserve energie i will try to modify this for Oled 0,96" screen with buttons, but for now just learning slowly KUDOS
Thanks for the very clear instructions and explanations. Great website as well and one of the best formats that I have seen. Very clean and good navigation.
Hi Nick - another great project. There is a correction needed to your commentary as follows: CLK pin (pin 5 on 5110) is connected to Arduino pin 13 as you have done physically but your commentary first says it is connected to Arduino pin 13 but then you change to saying pin 12. This is important to point out for any newbys following your work because the program won't run if CLK pin is connected to Arduino pin 12. Cheers Ian
Yep - you clearly say pin 13 at 2:18 clearly my mistake and my humble apologies. So I then checked your previous 5110 video (Oct 14 2014) and this is where the pin number mixup occurs at 4:28.; I was watching both simultaneously because I can't get the contrast to change up and down as yours? I see that you do not include " #include " in your code and am wondering if this should be and might be the reason for the non-changing contrast or might be some other problem with my set up [[I have my buttons on a separate little board which is grounded to the BB]] and I note one other commenter raised this same "SPI" query - I didn't include this information in my previous comment because I simply don't know as yet?? Once again my humble apologies for my mistake here and I look forward to your reply in due course to (hopefully) clear up these two issues. Cheers
Nick - a point of clarification on my last comment is required - the contrast numbers can be changed up & down according to your program but the actual contrast level does not change accordingly - nothing seems to be wrong with my 5110 as it works perfectly with the graphics programs etc??? Got me totally tossed? cheers.
+Ian Brown After publishing the video, I noticed that you can't set the contrast to the Nokia 5110 displays with the blue pcb. Maybe your version of the display is also affected?
Thanks Nick but I used the red Nokia 5110 because I have both and have had problems previously with the blue version. Any answer for the #include issue please? Cheers
Excellent project Nick, please keep up the good work my friend. Did you de-bounce the switch buttons with a separate de-bounce routine or is this embedded in the display code?
Hi I connected Nokia 5110 to Arduino UNO exactly as in this video and used the code and library provided by the link but nothing shows on the LCD. Then I tried the software SPI method instead of the hardware SPI and it worked. I didn't change anything except for reassigning the pins in the code. How should I explain this. Have you had similar experience with this issue?
Hello, great video! Please help me, I am trying do a code for a Hidden Menu that can be accessed by holding a button and power on the Arduino. Do you know how can I do it? Thank you!
You seems to have a lot of LCD, color and B&W ones, I have two questions There's some LCD bigger(more pixels) than this one like 128x128? Second; all the color LCD have a very bad viewing angle, their colors change depending the angle of your eyes. There's some color LCD with better quality, maybe IPS instead of bad TFT quality? Something like 128x128 or 128x160 is enough.
Thank you. I'm a beginner and I'm trying a project like yours too. but menu has different options and lights up leds when selected. Could you tell me where you get the documentation (link please) for the function commands for the display? I would like to use that as reference but can't find it anywhere. Thank you
Thank you again for your video yes buttons are better than a rotary encoder and want to use the small color 1.8" TFT screen and buttons to make a temperature controller for my boiler with a clock and menu to set temperature high and low with two relay output and possibly Bluetooth for remote control
Very useful tutorial! I have been watching a lot of your videos focusing on the Nokia 5110, but can you make one about using bitmaps? My project requires this and I have been having trouble with it. Anyway, thanks!
hello και καλη χρονία. How about making some videos for Nextion touch screens.If you dont know what it is, its a screen that you can really easily make menus on tft touch screens.It has its own pc program to make menus as easy as drag and drop.I would like to see it interact with Arduino using this screen ,buttons,sensors and more .You can make some kind of tempreture controller with it?
I realised I have the SperkFun Nokia 5110 screen which has a different pinout :| I couldn't get it to work - thanks for the reply though! Please keep up the great work!
i got a question.. i want to make server node with arduino with plugged with realtime clock, esp8266, nrf24, 433MHz module and microsd. which is suitable for my application? arduino uno or mega?
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
great vid. I am having trouble writing a sketch that uses a 5110 display and two switches. the purpose is to have the display show some text while on switch1 is on. and another when switch2 is on.I can do either. but I need help to write a sketch that will do both. I am not savy with code because I never studied it in school.any help would be appreciated. if I should contact you some other way please let me know.Thank you.
button does not work on the port (2) (0) and (1) are working fine Please Help me! Connecting an LCD display // pin 13 - Serial clock out (SCLK) // pin 11 - Serial data out (DIN) // pin 5 - Data/Command select (D/C) // pin 7 - LCD chip select (CS) // pin 6 - LCD reset (RST) // pin 12 - LCD Light Adafruit_PCD8544 display = Adafruit_PCD8544(13, 11, 5, 7, 6); int lcd_light = 12;
On supplier's page there is a remark: "You will Need: ( NOT Included in this Listing ! ) Set of Two 1K Resistors ( For Safe Operation ) Set of Four 10K Resistors ( For Safe Operation )". Where exactly these resistors should be connected?
for some reason i cant make it work.. i ve the liraries and i upload the code. the screen show nothing.. the screen is tested and working with other scetches but not with this one... any ideas?
my problem is: when reset item is selected it goes to contrast adjust page, when contrast item is selected goes to backlight adjust on/off and when backlight is selected, it resets.. can anyone help?
Hi, I tried to use another similar screen and my code does not run, it gives an error "'display' was not declared in this scope", anyone can help me ? others programs are running normally =/
Don't forget to include #include at the beginning of your project :) thanks !
Just getting my parts out now and looking forward to playing.
Keep up the great tutorials, and a happy new year
"if you want to fully understand it you have to make your own menu and see how it works"
could not agree more awesome job! Also love the quotes at the beginning of the vid's
Nice work. Nice to see the display driven by a simple Menu. Thanks
Hey Nick - I bought some of these 5110 displays when I saw your "favourite displays for Arduino" video. I don't know if it's a phase or not, but every single one I bought from dfferent suppliers had the same problem. The display is not soldered to the PCB - there is a flexible connector pad, and the display is pressed against it and the PCB by the metal frame we see in your video. The problem is that this frame is very often not pressing correctly to get a good connection, and even when it is - it is not reliable.
This makes debugging a nightmare, It took me 2 days to work out there was nothing wrong iwht my electornics or my coding -the problem was this intermittent fault.
There is a similar display - the HK1230 - with the same size LCD technology, SPI interface and pinout which does not rely on this metal frame pinch - in fact, there IS not metal frame It is a little more expensive, but Im hoping it's a lot less hassle.
Also - regarding the 5110 and I'm hoping the HK1230 too - you can get 2 pins back by connecting RST to the rpocessor reset and CE to Vcc if you're on a 3.3v processor like the ESP8266.
Very helpful. I have been trying to do this exact thing for some time. I have been playing with Arduinos for a couple of years. I have read books and watched 100's of videos. I still don't do coding well. Having a starting point like this sketch is a big help. Thanks Nick for making and sharing your videos. Looking forward to the interrupt video.
Thanks Danny for the comment! I am glad that this video was helpful!
Thank you for all the videos about Arduino applications. By combining all info supplied in your videos I can create my own projects and I do it.
Once again we are reminded how much it's possible to do with such a tiny and abundant microcontroller.
This project is very useful. I always appreciate your videos/tutorials! Thank you so much for sharing with us!
Super! I was waiting for such a video a long time! Bravo Nick!
Thanks for this great tutorial! It shows how useful and easy to program the 5110 is. I ordered one right away, projects in mind :)
what a great quote at the beginning.
I'm SO going to steal this for my SSD1303 oled project. Thanks man !
Nice. simple and illustrative video, Seth PiP. nice detail
Nice work!!! And a happy New Year! :-)
Thanks! Happy New Year to you as well! Cheers!
Thanks for a very nice and clear presentation.
Very educational.
Good instructional video. This can be used in many projects. I always enjoy your videos! Thanks for sharing it!
Thanks a lot, for explaining the code... I needed this for my project and u happen to help me just on time. great content
Might have missed it but I don't see a 5V -> 3.3V level shifter in this video. If yours isn't working it's possible that this missing component has killed your LCD.
Excelent work, thanks a lot for sharing , greetings from El Salvador, Central America
+Carlos Zapata Hola Carlos! Muchas gracias. Saludos desde Grecia..
Very nice tutorials you have on your channel. I subscribed imediately.
Welcome to our community! Cheers!
this is outrageous n helpful thank u my guy
Beautiful, simple clean and i like that part about interrupt state to conserve energie i will try to modify this for Oled 0,96" screen with buttons, but for now just learning slowly KUDOS
Thank you very much this tutorial will help me a lot for my project.
Give us a project combining your old rotary encoder tutorial with this one __thank you
Great idea....
Hi Nick, thanks very much for sharing your work, it's quite tedious coding a menu etc. so thanks for providing such a useful example :)
Thanks for the very clear instructions and explanations. Great website as well and one of the best formats that I have seen. Very clean and good navigation.
I really like that project. And i choose different buttons. And it Really Worked. Thank You 🤣
Great explain of the menu function. Thank you very much. Keep up the good work
Oh nice, j'avais deja fait un menu pour ma smart watch, mais cette librairie va vraiment optimiser mon code ! merci :)
Hi Nick - another great project. There is a correction needed to your commentary as follows: CLK pin (pin 5 on 5110) is connected to Arduino pin 13 as you have done physically but your commentary first says it is connected to Arduino pin 13 but then you change to saying pin 12. This is important to point out for any newbys following your work because the program won't run if CLK pin is connected to Arduino pin 12. Cheers Ian
Hello Ian, at which point do I make this mistake? I can't find it
Yep - you clearly say pin 13 at 2:18 clearly my mistake and my humble apologies. So I then checked your previous 5110 video (Oct 14 2014) and this is where the pin number mixup occurs at 4:28.; I was watching both simultaneously because I can't get the contrast to change up and down as yours? I see that you do not include " #include " in your code and am wondering if this should be and might be the reason for the non-changing contrast or might be some other problem with my set up [[I have my buttons on a separate little board which is grounded to the BB]] and I note one other commenter raised this same "SPI" query - I didn't include this information in my previous comment because I simply don't know as yet?? Once again my humble apologies for my mistake here and I look forward to your reply in due course to (hopefully) clear up these two issues. Cheers
Nick - a point of clarification on my last comment is required - the contrast numbers can be changed up & down according to your program but the actual contrast level does not change accordingly - nothing seems to be wrong with my 5110 as it works perfectly with the graphics programs etc??? Got me totally tossed? cheers.
+Ian Brown After publishing the video, I noticed that you can't set the contrast to the Nokia 5110 displays with the blue pcb. Maybe your version of the display is also affected?
Thanks Nick but I used the red Nokia 5110 because I have both and have had problems previously with the blue version. Any answer for the #include issue please? Cheers
good project, please tutorial hourmeter with arduino
Excellent project Nick, please keep up the good work my friend. Did you de-bounce the switch buttons with a separate de-bounce routine or is this embedded in the display code?
Hey.. just tried this. It says X addresses outside of 0 to 83 are not allowed when trying to run on a Proteus. How do I fix this?
Can i use adafruit library with arduino mega
Oh, there seem to be more Stepahns in Germany...
I did not do anything with a menu by now, but i allready considered about that. Thanks :-)
Very good video. Well done!
Hi
I connected Nokia 5110 to Arduino UNO exactly as in this video and used the code and library provided by the link but nothing shows on the LCD. Then I tried the software SPI method instead of the hardware SPI and it worked. I didn't change anything except for reassigning the pins in the code. How should I explain this. Have you had similar experience with this issue?
Hello, great video! Please help me, I am trying do a code for a Hidden Menu that can be accessed by holding a button and power on the Arduino. Do you know how can I do it? Thank you!
You seems to have a lot of LCD, color and B&W ones, I have two questions
There's some LCD bigger(more pixels) than this one like 128x128?
Second; all the color LCD have a very bad viewing angle, their colors change depending the angle of your eyes.
There's some color LCD with better quality, maybe IPS instead of bad TFT quality? Something like 128x128 or 128x160 is enough.
Got everything to work just like you said in the video....Thanks
I'm getting an error setsize class member is missing
Hi. Can you do it with 0.96 OLED display I2C?( and rotary encoder)
I really need a complex menu but I'm quite a noob ...
Great video! Really easy to understand. Thanks!
great project. you could use Finite State Machine (FSM) for better management of the Menus.
it is an Arduino Library .
Thank you. I'm a beginner and I'm trying a project like yours too. but menu has different options and lights up leds when selected. Could you tell me where you get the documentation (link please) for the function commands for the display? I would like to use that as reference but can't find it anywhere. Thank you
Why the code is not compiling after installing libralies also
i have done everything as you intructed but my nokia 5110 lcd does not display anything can i get some help.
Excelent, great work..
Hi Nick,
Another great project, Thanks
Stan
Thanks. It's always good to share knowledge
Thank you again for your video yes buttons are better than a rotary encoder and want to use the small color 1.8" TFT screen and buttons to make a temperature controller for my boiler with a clock and menu to set temperature high and low with two relay output and possibly Bluetooth for remote control
Can you make a tutorial, how to build line-follower robot which use only two line sensors,please?
Wonderful Video. Hey can you make a tutorial about Arduino sleep mode? I find it very difficult to understand that code
Very useful tutorial! I have been watching a lot of your videos focusing on the Nokia 5110, but can you make one about using bitmaps? My project requires this and I have been having trouble with it. Anyway, thanks!
Thank you Arthur, have you seen this video? th-cam.com/video/aUZP0nzxc0k/w-d-xo.html
No, but thanks a lot! It helped me through my troubles!
after I watched it!
Ohhh... u r so so helpfull bro..... will u help me if I mail u a problem???
Thank you verry verry much Nick for this great Project with my favorit Display .. Nice Work as allways !
hello και καλη χρονία.
How about making some videos for Nextion touch screens.If you dont know what it is, its a screen that you can really easily make menus on tft touch screens.It has its own pc program to make menus as easy as drag and drop.I would like to see it interact with Arduino using this screen ,buttons,sensors and more .You can make some kind of tempreture controller with it?
This looks really great! Have you done it with a NodeMCU ESP8266?
No, not yet, but the code would almost the same if you are using the Arduino IDE to program the board.
I realised I have the SperkFun Nokia 5110 screen which has a different pinout :| I couldn't get it to work - thanks for the reply though! Please keep up the great work!
i got a question.. i want to make server node with arduino with plugged with realtime clock, esp8266, nrf24, 433MHz module and microsd. which is suitable for my application? arduino uno or mega?
My requirement is to select options in a led display using aurdino or raspberry pi... Using switch push statement
there is an error: draw.menu is no declared in this scope. how do i get the drawmenu function with a 2x16 LCD
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
Could you run the same program for an Arduino Nano 33 BLE?
great vid. I am having trouble writing a sketch that uses a 5110 display and two switches. the purpose is to have the display show some text while on switch1 is on. and another when switch2 is on.I can do either. but I need help to write a sketch that will do both. I am not savy with code because I never studied it in school.any help would be appreciated. if I should contact you some other way please let me know.Thank you.
button does not work on the port (2)
(0) and (1) are working fine
Please Help me!
Connecting an LCD display
// pin 13 - Serial clock out (SCLK)
// pin 11 - Serial data out (DIN)
// pin 5 - Data/Command select (D/C)
// pin 7 - LCD chip select (CS)
// pin 6 - LCD reset (RST)
// pin 12 - LCD Light
Adafruit_PCD8544 display = Adafruit_PCD8544(13, 11, 5, 7, 6);
int lcd_light = 12;
Good Job. Thank you
very useful, thanks!
What font did you use for the text?
On supplier's page there is a remark: "You will Need: ( NOT Included in this Listing ! ) Set of Two 1K Resistors ( For Safe Operation ) Set of Four 10K Resistors ( For Safe Operation )".
Where exactly these resistors should be connected?
Can you create main menu with lcd 20x4 ?
3.3 on Vcc and 5.0 on data pins? Is that legal?
thanks for the project
+orlando molina you are welcome!
Cool project !!!
I had a big issue while connecting the system to my pc... Nothing or just bugged out stuff happened until I connectid it to 3 batteries...
sir can you make a project controll relay ,leds with display contrll
I want to make a gameboy with this screen can you help
for some reason i cant make it work..
i ve the liraries and i upload the code. the screen show nothing..
the screen is tested and working with other scetches but not with this one... any ideas?
i included: #include
on the beggining but nothing again..
crazy tutorial crazy menu
Hi Nick!
It says that 'display' was not declared in this scope line 36
Thanks for the video.
Maybe you build a System sensors will be used with nRF24L01
Thanks
Nice project! Easy on the coffee next time. lol
how to change the code in your menu in 16x2 i2c ??
Hi Nick can i use the nokia 3310 and how
Good sir i need your same please post 16x2 LCD display more helpful
We will try
@@Educ8s thank you sir
Cool video! Like for you!
Could I set the ''page = 3'' on the screen ?
I tried it before but it didnt work :(
need some suggest please , thanks.
This is my part of project downbelow .
Same as this Tutorial's project but a little bit different.
---------------------------------------------------------------------------------------------------------
int timeitem = 1;
int menuitem = 1;
int page = 1;
int setcursorMainMenu = 0;
int setcursorBlackLine = 10;
int setcursorA = 15;
int setcursorB = 25;
int setcursorC = 35;
int setcursorD = 45;
void loop() {
drawMenu();
if (middle) { // if I press middle button
else if (page == 1 && menuitem == 4)
{
page=3;
timeitem = 1;
}
else if (page == 3)
{
page=1;
menuitem = 4;
}
}
}
void drawMenu()
{
if (page==1)
{
display.setTextSize(1);
display.clearDisplay();
display.setTextColor(BLACK, WHITE);
display.setCursor(15, setcursorMainMenu);
display.print("MAIN MENU");
display.drawFastHLine(0,setcursorBlackLine,83,BLACK);
display.setCursor(0, 15);
if (menuitem==1)
{
display.setTextColor(WHITE, BLACK);
}
else
{
display.setTextColor(BLACK, WHITE);
}
{
display.setCursor(0, setcursorA);
display.print(">Contrast");
}
if (menuitem==2)
{
display.setTextColor(WHITE, BLACK);
}
else
{
display.setTextColor(BLACK, WHITE);
}
{
display.setCursor(0, setcursorB);
display.print(">Light: ");
}
if (backlight)
{
display.print("ON");
}
else
{
display.print("OFF");
}
if (menuitem==3)
{
display.setTextColor(WHITE, BLACK);
}
else
{
display.setTextColor(BLACK, WHITE);
}
{
display.setCursor(0, setcursorC);
display.print(">Reset");
}
if (menuitem==4)
{
display.setTextColor(WHITE, BLACK);
}
else
{
display.setTextColor(BLACK, WHITE);
}
{
display.setCursor(0, setcursorD);
display.print(">Time");
}
else if (page==3)
{
display.setTextSize(1);
display.clearDisplay();
display.setTextColor(BLACK, WHITE);
display.setCursor(15, setcursorMainMenu);
display.print("TIME");
display.drawFastHLine(0,setcursorBlackLine,83,BLACK);
display.setCursor(0, 15);
if (timeitem==1)
{
display.setTextColor(WHITE, BLACK);
}
else
{
display.setTextColor(BLACK, WHITE);
}
{
display.setCursor(0, setcursorA);
display.print(">Time show");
}
if (timeitem==2)
{
display.setTextColor(WHITE, BLACK);
}
else
{
display.setTextColor(BLACK, WHITE);
}
{
display.setCursor(0, setcursorB);
display.print(">Time set ");
}
}
i want 6 items like in the rotary coder code but i cant do it
Yes please , give us an FM radio receiver with TEA5767 and a choice of screens if possible.
+Giorgos Stolis yes that's coming but first we have to learn how to use interrupts wit Arduino .
will be that I can change the screen by a 16x2
Thank you so much
why dont use lib lcd5110_graph.h?
Thank you!
my problem is: when reset item is selected it goes to contrast adjust page, when contrast item is selected goes to backlight adjust on/off and when backlight is selected, it resets..
can anyone help?
Hi, I tried to use another similar screen and my code does not run, it gives an error "'display' was not declared in this scope", anyone can help me ? others programs are running normally =/
very very beatiful... tnx.
excelente vídeo
Good computer
I have a problem.
THE RESET part flashes and scrolls all the time
please help me.
Look for "display.display();" below "display.print("OFF");
}" Line
Using this display() function two times is causing that flickering.
I've got a problem. It doesn't appear anything on screen but display lights.
Did you fix that?
@@eduhza I have the same problem
anybody can help i do all the tutorial and the contrast is not work
thank you!