#define POT_HOPPER 34
#define POT_VIBRATION 32
#define POT_FLOW 33
#define BTN_STOP 25
#define LED_PIN 26
bool stopped = false;
int percent(int raw) {
return map(raw, 0, 4095, 0, 100);
}
void setup() {
Serial.begin(115200);
pinMode(BTN_STOP, INPUT_PULLUP);
pinMode(LED_PIN, OUTPUT);
Serial.println("MES SIM STARTED");
}
void loop() {
// ---- STOP BUTTON ----
if (digitalRead(BTN_STOP) == LOW) {
stopped = true;
}
if (stopped) {
digitalWrite(LED_PIN, LOW);
Serial.println("SYSTEM STOPPED");
delay(1000);
return;
}
digitalWrite(LED_PIN, HIGH);
// ---- READ POTS ----
int hopper = percent(analogRead(POT_HOPPER));
int vibration = percent(analogRead(POT_VIBRATION));
int flow = percent(analogRead(POT_FLOW));
// ---- STATE LOGIC ----
String state = "RUNNING";
if (vibration > 80) {
state = "WARNING: VIBRATION";
}
if (flow < 20) {
state = "WARNING: LOW FLOW";
}
// ---- OUTPUT ----
Serial.println("\n--- MES CORE ---");
Serial.print("HOPPER: "); Serial.print(hopper); Serial.println("%");
Serial.print("VIBRATION: "); Serial.print(vibration); Serial.println("%");
Serial.print("FLOW: "); Serial.print(flow); Serial.println("%");
Serial.print("STATE: ");
Serial.println(state);
Serial.println("----------------");
delay(1000);
}