int led_pin = 3;
int pot_pin = A0;
int led_val, pot_val, ser_val;
int pot_old_val, ser_old_val;
bool lastComponent = false;
// false -> Serial monitor
// true -> potentiometer
void setup() {
pinMode(led_pin, OUTPUT);
Serial.begin(9600);
Serial.println();
}
void loop() {
readPotentiometer();
readSerialMonitor();
// we have to find the last component
if (pot_val != pot_old_val) {
lastComponent = true;
}
if (ser_val != ser_old_val) {
lastComponent = false;
}
// choose component
if(lastComponent == true) {
led_val = pot_val;
}
else {
led_val = ser_val;
}
analogWrite(led_pin, led_val);
printInfo();
// update old values
pot_old_val = pot_val;
ser_old_val = ser_val;
}
void printInfo() {
Serial.print("Pot: ");
Serial.print(pot_val);
Serial.print("\tSer: ");
Serial.print(ser_val);
Serial.print("\tLed: ");
Serial.println(led_val);
}
void readSerialMonitor() {
if (Serial.available() > 0) {
ser_val = Serial.parseInt();
Serial.read();
}
}
void readPotentiometer() {
pot_val = analogRead(pot_pin)/4;
}