hey
i have a problem in this code (if statement) that dosn't work after set =0.35 in truth way..
how can i get Alternative way to slove this issue
#include <EEPROM.h>
#include <math.h>
#include <Wire.h>
#include <LiquidCrystal.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
int pinup = 6;
int pindown = 7;
int pinok = 8;
int relay = 9;
int encoderPosCount = 0;
int pinALast;
int lcd_key = 0;
int adc_key_in = 0;
#define btnUP 1
#define btnDOWN 2
#define btnSELECT 3
#define btnNONE 4
int read_LCD_buttons()
{
if (digitalRead(pinup) == HIGH) return btnUP ;
if (digitalRead(pindown) == HIGH) return btnDOWN;
if (digitalRead(pinok) == HIGH) return btnSELECT;
if (digitalRead(pinup) == pinALast || digitalRead(pindown) == pinALast || digitalRead(pinok) == pinALast) return btnNONE;
}
int address ;
float set = 0.1;
void setup() {
lcd.begin(16, 2);
pinMode (pinup, INPUT_PULLUP);
pinMode (pindown, INPUT_PULLUP);
pinMode (pinok, INPUT_PULLUP);
pinMode (relay, OUTPUT);
EEPROM.get(address , set);
digitalWrite(relay, HIGH);
Serial.begin(9600); // use the serial port
}
void loop() {
while ( lcd_key != btnNONE )
{
lcd_key = read_LCD_buttons();
}
lcd.clear();
lcd.setCursor(0, 0);
lcd.print(" MOTOR SETTING ");
lcd.setCursor(0, 1);
lcd.print("SET: < > ");
while (lcd_key != btnSELECT)
{
if ((set <= 2) and (set >= 0.1))
{
lcd.setCursor(7, 1);
lcd.print(set);
}
else if (set >= 2.1 )
{
set = 2;
lcd.setCursor(7, 1);
lcd.print(set);
}
else if (set <= 0.1 )
{
set = 0.1;
lcd.setCursor(7, 1);
lcd.print(set);
}
lcd_key = read_LCD_buttons();
switch (lcd_key)
{
case btnUP:
{
set = set + 0.05;
lcd.setCursor(12, 1);
lcd.print(">");
while (lcd_key != btnNONE )
{
lcd_key = read_LCD_buttons();
}
break;
}
case btnDOWN:
{
set = set - 0.05;
lcd.setCursor(5, 1);
lcd.print("<");
while (lcd_key != btnNONE )
{
lcd_key = read_LCD_buttons();;
}
break;
}
case btnNONE:
{
lcd.setCursor(5, 1);
lcd.print(" ");
lcd.setCursor(12, 1);
lcd.print(" ");
break;
}
}
}
EEPROM.put(address , set);
Serial.println(set);
if (set==0.1){
digitalWrite(relay, LOW);
delay(1070);
digitalWrite(relay, HIGH);
}
else if (set==0.15){
digitalWrite(relay, LOW);
delay(1560);
digitalWrite(relay, HIGH);
}
else if (set==0.2){
digitalWrite(relay, LOW);
delay(1042);
digitalWrite(relay, HIGH);
}
else if (set==0.25){
digitalWrite(relay, LOW);
delay(1071);
digitalWrite(relay, HIGH);
}
else if (set==0.3){
digitalWrite(relay, LOW);
delay(1012);
digitalWrite(relay, HIGH);
}
else if (set==0.35){
digitalWrite(relay, LOW);
delay(2400);
digitalWrite(relay, HIGH);
}
else if (set==0.4){
digitalWrite(relay, LOW);
delay(2110);
digitalWrite(relay, HIGH);
}
else if (set==0.45){
digitalWrite(relay, LOW);
delay(2000);
digitalWrite(relay, HIGH);
}
else if (set==0.5){
digitalWrite(relay, LOW);
delay(2000);
digitalWrite(relay, HIGH);
}
else if (set==0.55){
digitalWrite(relay, LOW);
delay(3000);
digitalWrite(relay, HIGH);
}
else if (set==0.6){
digitalWrite(relay, LOW);
delay(3000);
digitalWrite(relay, HIGH);
}
else if (set==0.65){
digitalWrite(relay, LOW);
delay(3000);
digitalWrite(relay, HIGH);
}
else if (set==0.7){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==0.75){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==0.8){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==0.85){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==0.9){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==0.95){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.0){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.15){
digitalWrite(relay, LOW);
delay(1500);
digitalWrite(relay, HIGH);
}
else if (set==1.20){
digitalWrite(relay, LOW);
delay(1100);
digitalWrite(relay, HIGH);
}
else if (set==1.25){
digitalWrite(relay, LOW);
delay(1400);
digitalWrite(relay, HIGH);
}
else if (set==1.3){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.35){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.4){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.45){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.5){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.55){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.6){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.65){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.7){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.75){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.8){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.85){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.9){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==1.95){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else if (set==2){
digitalWrite(relay, LOW);
delay(1000);
digitalWrite(relay, HIGH);
}
else
{
digitalWrite(relay, HIGH);
}
}
thx 4 all