New to arduino coding need help for Important home project

feel free to leave comments on the doc Attached to the link it would be much appreciated

I am new to coding on the Arduino and I have somewhat self taught myself how to do most of the commands I read and took notes on almost everything but am having trouble now

so The objects Im trying to control are

16 x 2 Lcd chip:

so the LCD on start up will say "Hello"
And lets "beging"

then turn on the servo for a set amount of time, or move it to a specified Degree if you can even code that

then start the main code

i need the LCD will display a 60 in the middel and an 8 in one of the screens corners I belive i have it set to the last 3 or 4 in the top right

then for every minuet that passes it will change that number by -1

(I would code for a 1 hr timer but every tutorial online is for a stop watch, I just want an internal code
for a countdown that is displayed by an LCD not controlled and set by buttons )

once the number reaches 0

A buzzer will sound at a specified frequency for about 4 to 3 second

then what I would like to do is have the code pause until a button is pushed which will in turn activate the servo

the LCD will display "Enjoy"

then the code should restart with the exception that the number 8 displayed in the upper right corner needs to change to a number 7 then cycle again through the count down, basically
every time the count down ends and lcdt.print = "00:00" that number should decrease by 1 or with what i have written lcdn.print("8") should switch to a ("7") and so on..

here is my code If you have any suggestions on how I could simplify the count down or if errors exist please message me and explain what I need to do. thank you

here is my code

Where ?


Hmmm… Quite a mess

Lets start you with some simple stuff:-

#include <LiquidCrystal.h>

LiquidCrystal lcdt(12, 11, 5, 4, 3,2);
LiquidCrystal lcdw(12, 11, 5, 4, 3,2);
LiquidCrystal lcdn(12, 11, 5, 4, 3,2);

You’ve defined three software objects lcdt, lcdw and lcdn which all deal with the same physical display!


void setup ()

lcd.begin (16,2);
 pinMode servo (6,OUTPUT);
 pinMode Buz (7,OUTPUT);
Int servo = 6;
Int buz = 7;
Int lcdn = numb


In setup you are referencing an object lcd which has not been defined anywhere.

You have defined three variables servo, buzz and lcdn which are only available inside setup(). It would be worth reading up about the concept of variable scope in a c++ program.

Most of your entire (huge) loop() function consists of these six lines repeated with one tiny little change:-

lcdn.clear ();
lcdn.setCursor (14,1);
lcdn.print ("8");
lcdt.setCursor (4,2);
lcdt.print ("60:00");
delay (60000);

Consider that function loop() is repeated time after time so how easy would it be to have a variable that counts down from 60 to 0 each time through the loop. Then you could display that variable once each time round the loop.

By the way a 16 character x 2 line display is addressed as characters 0 to 15 and lines 0 and 1 when you are setting the cursor. There is no line 2!

Work through your code to get a countdown counter working first then we’ll worry about buzzers and servos.

Also think about replacing delay(60000) with the millis() function (have a look at this post on using millis() for timing)


This is a double post, right? OP: ask a moderator to combine your posts, so efforts are not duplicated. Or are you even gonna respond to those who have already helped?