Hi Everyone,
This is my first project, and I really need some advice please.
I'm busy setting up a Mega 2560 board with a 8 way relay board and a LCD shield with buttons for our business. The relays wil control blower motors, and the "up" and "down" screen buttons need to change one value.
I have managed to get the code working for the 8 relays, which will control the blowers. Each blower blows for 10 seconds in a sequence, and that will not change. The only value that needs to change is the time between blows. I've set the two values as "int on = 10" and "int off = 10". These values are seconds as I multiply by 1000 to achieve the correct milliseconds when each relay is called.
Is there a simple way of using the up and down buttons on the LCD shield to change the off value, and also displaying the changed value on the screen? I currently print the off value on the LCD so that it is known, but it has to also change as the off value changes in the code.
Please don't laugh, it's my first time coding, it's probably a bit of a confusing code, but I hope someone can point me in the right direction
My code so far is,
int Machine1 = 22 ; // I/O pin connected by the first relay
int Machine2 = 24 ;
int Machine3 = 26 ;
int Machine4 = 28 ;
int Machine5 = 30 ;
int Machine6 = 32 ;
int Machine7 = 34 ;
int Machine8 = 36 ;
int on = 10 ; // seconds
int off = 10 ; // seconds
int NUM = 1 ; // Change to 0 to stop relay sequence, 1 to start
#include <LiquidCrystal.h>
// select the pins used on the LCD panel
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
void setup()
{
for (int i1 = Machine1; i1 < Machine1 + NUM; i1 ++)
{
pinMode(i1, OUTPUT); //set digital I/O pin as output
}
{
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("CHINCO FIRESIDE");
lcd.setCursor(0, 1);
lcd.print("TREATMENT");
delay(1000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("D:"); // Delay time
lcd.print(off);
lcd.print("s");
lcd.setCursor(11, 0);
lcd.print("B:"); //Blow time
lcd.print(on);
lcd.print("s");
lcd.setCursor(3, 0);
}
}
void loop()
// Machine 1
{
{
lcd.setCursor(6, 1);
lcd.print("DaysOn:");
lcd.print(millis() / 864000000);
}
{}
{
lcd.setCursor(0, 1);
lcd.print("APPL1");
lcd.setCursor(0, 0);
}
for (int i1 = Machine1; i1 < Machine1 + NUM; i1 ++)
{
digitalWrite(i1, HIGH); //set digital I/O pin as ‘high’, i.e. turning on the relay gradually
delay(on * 1000); //delay
}
{
for (int i1 = Machine1; i1 < Machine1 + NUM; i1 ++)
{
digitalWrite(i1, LOW); // set digital I/O pin as ‘low’, i.e. turning off the relay gradually
delay(off * 1000); //delay
}
// Machine 2
{
{
lcd.setCursor(0, 1);
lcd.print("APPL2");
lcd.setCursor(0, 0);
}
for (int i2 = Machine2; i2 < Machine2 + NUM; i2 ++)
{
pinMode(i2, OUTPUT); //set digital I/O pin as output
}
{
for (int i2 = Machine2; i2 < Machine2 + NUM; i2 ++)
{
digitalWrite(i2, HIGH); //set digital I/O pin as ‘high’, i.e. turning on the relay gradually
delay(on * 1000); //delay
{
}
for (int i2 = Machine2; i2 < Machine2 + NUM; i2 ++)
{
digitalWrite(i2, LOW); // set digital I/O pin as ‘low’, i.e. turning off the relay gradually
delay(off * 1000); //delay
}
}
// Machine 3
{
{
lcd.setCursor(0, 1);
lcd.print("APPL3");
lcd.setCursor(0, 0);
}
for (int i3 = Machine3; i3 < Machine3 + NUM; i3 ++)
{
pinMode(i3, OUTPUT); //set digital I/O pin as output
}
{
for (int i3 = Machine3; i3 < Machine3 + NUM; i3 ++)
{
digitalWrite(i3, HIGH); //set digital I/O pin as ‘high’, i.e. turning on the relay gradually
delay(on * 1000); //delay
}
for (int i3 = Machine3; i3 < Machine3 + NUM; i3 ++)
{
digitalWrite(i3, LOW); // set digital I/O pin as ‘low’, i.e. turning off the relay gradually
delay(off * 1000); //delay
}
// Machine 4
}
{
lcd.setCursor(0, 1);
lcd.print("APPL4");
lcd.setCursor(0, 0);
}
for (int i4 = Machine4; i4 < Machine4 + NUM; i4 ++)
{
pinMode(i4, OUTPUT); //set digital I/O pin as output
}
{
for (int i4 = Machine4; i4 < Machine4 + NUM; i4 ++)
{
digitalWrite(i4, HIGH); //set digital I/O pin as ‘high’, i.e. turning on the relay gradually
delay(on * 1000); //delay
}
for (int i4 = Machine4; i4 < Machine4 + NUM; i4 ++)
{
digitalWrite(i4, LOW); // set digital I/O pin as ‘low’, i.e. turning off the relay gradually
delay(off * 1000); //delay
}
}
// Machine 5
{
lcd.setCursor(0, 1);
lcd.print("APPL5");
lcd.setCursor(0, 0);
}
for (int i5 = Machine5; i5 < Machine5 + NUM; i5 ++)
{
pinMode(i5, OUTPUT); //set digital I/O pin as output
}
{
for (int i5 = Machine5; i5 < Machine5 + NUM; i5 ++)
{
digitalWrite(i5, HIGH); //set digital I/O pin as ‘high’, i.e. turning on the relay gradually
delay(on * 1000); //delay
}
for (int i5 = Machine5; i5 < Machine5 + NUM; i5 ++)
{
digitalWrite(i5, LOW); // set digital I/O pin as ‘low’, i.e. turning off the relay gradually
delay(off * 1000); //delay
}
}
// Machine 6
{
lcd.setCursor(0, 1);
lcd.print("APPL6");
lcd.setCursor(0, 0);
}
for (int i6 = Machine6; i6 < Machine6 + NUM; i6 ++)
{
pinMode(i6, OUTPUT); //set digital I/O pin as output
}
{
for (int i6 = Machine6; i6 < Machine6 + NUM; i6 ++)
{
digitalWrite(i6, HIGH); //set digital I/O pin as ‘high’, i.e. turning on the relay gradually
delay(on * 1000); //delay
}
for (int i6 = Machine6; i6 < Machine6 + NUM; i6 ++)
{
digitalWrite(i6, LOW); // set digital I/O pin as ‘low’, i.e. turning off the relay gradually
delay(off * 1000); //delay
}
}
// Machine 7
{
lcd.setCursor(0, 1);
lcd.print("APPL7");
lcd.setCursor(0, 0);
}
for (int i7 = Machine7; i7 < Machine7 + NUM; i7 ++)
{
pinMode(i7, OUTPUT); //set digital I/O pin as output
}
{
for (int i7 = Machine7; i7 < Machine7 + NUM; i7 ++)
{
digitalWrite(i7, HIGH); //set digital I/O pin as ‘high’, i.e. turning on the relay gradually
delay(on * 1000); //delay
}
for (int i7 = Machine7; i7 < Machine7 + NUM; i7 ++)
{
digitalWrite(i7, LOW); // set digital I/O pin as ‘low’, i.e. turning off the relay gradually
delay(off * 1000); //delay
}
}
//Machine 8
{
lcd.setCursor(0, 1);
lcd.print("APPL8");
lcd.setCursor(0, 0);
}
for (int i8 = Machine8; i8 < Machine8 + NUM; i8 ++)
{
pinMode(i8, OUTPUT); //set digital I/O pin as output
}
{
for (int i8 = Machine8; i8 < Machine8 + NUM; i8 ++)
{
digitalWrite(i8, HIGH); //set digital I/O pin as ‘high’, i.e. turning on the relay gradually
delay(on * 1000); //delay
}
for (int i8 = Machine8; i8 < Machine8 + NUM; i8 ++)
{
digitalWrite(i8, LOW); // set digital I/O pin as ‘low’, i.e. turning off the relay gradually
delay(off * 1000); //delay
}
}
}
}
}
}
}
Thanks for the help.
Lance