const int buttonPin = 3; // Button pin
const int ledPin8 = 8; // Loading Motor +
const int ledPin9 = 9; // Loading Motor -
const int ledPin10 = 10; // Lamp +
const int ledPin11 = 11; // Lamp -
int buttonState = 0; // Variable to store the button state
int lastButtonState = 0; // Previous button state to detect changes
bool sequenceStarted = false; // To check if the sequence has started
#include <Wire.h>
#include <LiquidCrystal_I2C.h>
#define BACKLIGHT_PIN 13
LiquidCrystal_I2C lcd(0x27,3,2);
int analogPin = A1;
int val = 0;
void setup() {
// Initialize the button pin as input and LED pins as outputs
pinMode(buttonPin, INPUT);
pinMode(ledPin8, OUTPUT);
pinMode(ledPin9, OUTPUT);
pinMode(ledPin10, OUTPUT);
pinMode(ledPin11, OUTPUT);
digitalWrite(ledPin8, LOW);
digitalWrite(ledPin9, LOW);
digitalWrite(ledPin10, LOW);
digitalWrite(ledPin11, LOW);
lcd.begin(16,4);
lcd.backlight();
Serial.begin(9600);
lcd.setCursor(2,2);
lcd.print("LUBRICANT TESTING");
}
void loop() {
buttonState = digitalRead(buttonPin); // Read the button state
Serial.println(buttonState);
// Check if the button was pressed (change from LOW to HIGH)
if (buttonState == HIGH && lastButtonState == LOW && !sequenceStarted) {
// Button has been pressed, start the sequence
sequenceStarted = false;
startSequence();
}
// Update the last button state
lastButtonState = buttonState;
}
void startSequence() {
// Turn on LED 1
digitalWrite(ledPin8, HIGH);
digitalWrite(ledPin9, HIGH);
lcd.clear();
lcd.setCursor(3,2);
lcd.print("LUBRICANT LOAD");
delay(2000); // Wait for 2 seconds
// Turn off LED 1
digitalWrite(ledPin8, LOW);
digitalWrite(ledPin9, LOW);
lcd.clear();
// Turn on LED 2
digitalWrite(ledPin10, HIGH);
digitalWrite(ledPin11, HIGH);
float sensorValue= analogRead (analogPin);
float Concentration = (sensorValue);
lcd.setCursor(1,2);
lcd.print(Concentration);
lcd.setCursor(6,2);
lcd.print("%");
lcd.setCursor(1,1);
lcd.print(sensorValue);
delay(2000); // Wait for 2 seconds
// Turn off LED 2
digitalWrite(ledPin10, LOW);
digitalWrite(ledPin11, LOW);
lcd.clear();
lcd.setCursor(2,3);
lcd.print("END OF TESTING");
delay(2000); // Wait for 2 seconds
lcd.clear();
lcd.setCursor(7,4);
lcd.print("READY ");
lcd.setCursor(4,2);
lcd.print("FOR TESTING");
// End the sequence, no further action is taken until the next button press
sequenceStarted = false;
}