Hi, I m new to this forum and also new to arduino..
i don't know how to increment or decrement in nimber using LCD keypad shield
here is the code i want to use up button for increment and down button for decrement kindly help.
i want to make increment in cutting feed and no of grooves
i have used library for keypad shield.
here is the link to download.
https://cdn.instructables.com/ORIG/FUP/530M/ITKJE80M/FUP530MITKJE80M.zip
#include <LiquidCrystal.h>
#include <DFR_LCD_Keypad.h>
LiquidCrystal lcd(8, 9, 4, 5, 6, 7);
DFR_LCD_Keypad keypad(A0, &lcd);
int last_key, key;
int totalcounts=200; //pulses for one complete rotation
int groove=0; //pulses for one groove
int groove_pulse=0;
int grov_counts=0; // Pulses required for one groove rotation
// buttons Status
//Push buttons setting
int add_pulse = 0; // required groove number addition
int subt_pulse = 0; // required groove number subtraction
int t_pulse=0; // equal to # of grooves
int LCD=0; // LCD no. of groove display
int con=0;
int add_cutf=1;
int subt_cutf;
int cut_feed;
int CF =0;
void setup()
{
lcd.clear();
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("I I U I");
lcd.setCursor(0, 1);
lcd.clear();
int cut_feed=0;
//CUTTING FEED SETUP LOOP
while(2) {
lcd.setCursor(0, 0);
lcd.print("Max_Cutting (20)");
lcd.setCursor(1, 1);
lcd.print("Cut Feed = ");
lcd.setCursor(12, 1);
lcd.print(cut_feed);
CF = cut_feed;
if (key==KEY_UP)
{
add_cutf=cut_feed;
add_cutf = add_cutf + 1;
cut_feed= add_cutf;
lcd.setCursor(1, 1);
lcd.print("cutting =");
lcd.setCursor(12, 1);
lcd.print(cut_feed);
subt_cutf=cut_feed;
}
if (key == KEY_DOWN)
{
subt_cutf = subt_cutf - 1;
cut_feed = subt_cutf;
lcd.setCursor(1, 1);
lcd.print("cutting =");
lcd.setCursor(12, 1);
lcd.print(cut_feed);
}
if (key== KEY_SELECT)
//while (buttonState4=1){}
{
lcd.clear();
CF = 21-cut_feed;
break;
}
}
// TEETH/ GROOVE ENTRY LOOP
while(1)
{
int add_pulse = subt_pulse;
lcd.setCursor(2, 0);
lcd.print("# of Groove/s");
lcd.setCursor(0, 1);
lcd.print("Enter Here");
lcd.setCursor(13, 1);
lcd.print(LCD);
if (key== KEY_UP)
{
add_pulse = add_pulse + 1;
LCD= add_pulse;
subt_pulse=LCD;
lcd.setCursor(13, 1);
lcd.print(LCD);
}
if (key == KEY_DOWN)
{
lcd.setCursor(0, 0);
lcd.print("# of Groove/s ");
subt_pulse = subt_pulse - 1;
LCD= subt_pulse;
add_pulse=LCD;
lcd.setCursor(13, 1);
lcd.print(LCD);
}
groove=LCD;
Serial.println(groove);
/if (key == KEY_SELECT)
{
lcd.setCursor(13, 1);
lcd.print(" OK ");
digitalWrite(40, LOW);
}/
groove=LCD;
Serial.println(groove);
if (key==KEY_SELECT)
//while (buttonState4=1){}
{
lcd.clear();
lcd.setCursor(0,0);
lcd.print("Required GROOVEs");
lcd.setCursor(6,1);
lcd.print(groove);
con=1;
}
}
void loop(); //Main Loop Begins
//HD_RT Loop
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Hd_Rotates ");
digitalWrite(42, HIGH);
digitalWrite(52, HIGH);
grov_counts=(200/ groove);
//while (t_pulse < groove) { //Number of groove or teeth //WhileBegins
for (int pulse = 0; pulse <= grov_counts; pulse++) // pulses required for head // rotation for one groove
{ //For Begins
lcd.setCursor(11, 0);
lcd.print(pulse);
lcd.setCursor(0, 1);
lcd.print("Groove");
lcd.setCursor(9, 1);
lcd.print(t_pulse);
// Head rotation indicator
digitalWrite(26, HIGH);
delay(3);
digitalWrite(26, LOW);
delay(2);
} //For Ends
//if (t_pulse >= groove)exit; //If Statement Starts/Ends //To be moved to the end
t_pulse ++;
// } //While Ends
delay(5000);
digitalWrite(42, LOW);
//FW_RW loop
lcd.clear();
lcd.begin(16, 2);
lcd.setCursor(0, 0);
lcd.print("- UNDER PROCESS-");
lcd.setCursor(0, 1);
lcd.print("*** Cutting ***");
for (; //For Begins
{
digitalWrite(28, HIGH);
digitalWrite(50, HIGH);
digitalWrite(46, LOW);
digitalWrite(22, HIGH);
delay(CF);
digitalWrite(22, LOW);
delay(CF);
if (digitalRead(30))break; } //For Ends
delay(5000);
lcd.setCursor(0, 1);
lcd.print("Reversing");
for (;;){ //For Begins
digitalWrite(50, LOW);
digitalWrite(52, HIGH);
digitalWrite(28, LOW);
digitalWrite(24, HIGH);
digitalWrite(22, HIGH);
delay(1);
digitalWrite(22 , LOW);
delay(1);
if (digitalRead(32))break;} //For Ends
digitalWrite(24, LOW);
digitalWrite(52, LOW);
if (t_pulse >= groove){
lcd.begin(16, 2);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("Done");
delay(5000);
lcd.clear();
lcd.setCursor(0, 0);
lcd.print("More Grooving?");
lcd.setCursor(0, 1);
lcd.print("SW3=No, SW4=Yes");
}
}