// Libraries
#include <Arduino.h>
// Pin Definitions
#define ADC_PIN_1 34 // ADC 1 pin
#define ADC_PIN_2 35 // ADC 2 pin
#define LED_RED 12 // Red LED pin
#define LED_GREEN 13 // Green LED pin
#define LED_BLUE 14 // Blue LED pin
// Function Declarations
void setup();
void loop();
// Variable Declarations
int adcValue1, adcValue2;
// Setup function
void setup() {
Serial.begin(115200); // Initialize serial communication
pinMode(LED_RED, OUTPUT); //LED red sebagai output
pinMode(LED_GREEN, OUTPUT); // LED green sebagai output
pinMode(LED_BLUE, OUTPUT); //LED Blue sebagai output
}
// Loop function
void loop() {
// Read ADC values
adcValue1 = analogRead(ADC_PIN_1); // analog read yang dibaca oleh esp32
adcValue2 = analogRead(ADC_PIN_2); // analog read yang dibaca oleh esp32
// Print ADC values
Serial.print("ADC 1: ");
Serial.println(adcValue1); // agar nilai adc 1 muncul pada serial monitor
Serial.print("ADC 2: ");
Serial.println(adcValue2); // agar nilai adc 2 muncul pada serial monitor
// Rule
// Jika ADC 1 dan ADC 2 berada di rentang 0-100, LED merah menyala dan lainnya mati
if (adcValue1 >= 0 && adcValue1 <= 100 && adcValue2 >= 0 && adcValue2 <= 100) {
digitalWrite(LED_RED, HIGH); // LED red menyala
digitalWrite(LED_GREEN, LOW); // LED green mati
digitalWrite(LED_BLUE, LOW); // LED blue mati
}
// Jika ADC 1 atau ADC 2 berada di rentang 101-150, LED hijau menyala dan lainnya mati
else if ((adcValue1 >= 101 && adcValue1 <= 150) || (adcValue2 >= 101 && adcValue2 <= 150)) {
digitalWrite(LED_RED, LOW); //LED red mati
digitalWrite(LED_GREEN, HIGH); // LED green menyala
digitalWrite(LED_BLUE, LOW); // LED blue mati
}
// Jika ADC 1 dan ADC 2 berada di rentang 151-255, LED biru menyala dan lainnya mati
else if (adcValue1 >= 151 && adcValue1 <= 255 && adcValue2 >= 151 && adcValue2 <= 255) {
digitalWrite(LED_RED, LOW); // LED red mati
digitalWrite(LED_GREEN, LOW); // LED Green mati
digitalWrite(LED_BLUE, HIGH); // LED blue menyala
}
// Jika tidak ada aturan yang memenuhi, matikan semua LED
else {
digitalWrite(LED_RED, LOW);
digitalWrite(LED_GREEN, LOW);
digitalWrite(LED_BLUE, LOW);
}
delay(1000); // Delay for readability
}