// Define pin numbers for LEDs
const int led1Pin = 2;
const int led2Pin = 3;
const int led3Pin = 4;
const int led4Pin = 5;
// Define analog input pins for EOG signals
const int eogLeftPin = A0;
const int eogRightPin = A1;
// Threshold values to determine eye movement direction
const int threshold = 512;
void setup() {
// Initialize LED pins as outputs
pinMode(led1Pin, OUTPUT);
pinMode(led2Pin, OUTPUT);
pinMode(led3Pin, OUTPUT);
pinMode(led4Pin, OUTPUT);
// Initialize serial communication for debugging
Serial.begin(9600);
}
void loop() {
// Read the EOG signal values
int eogLeft = analogRead(eogLeftPin);
int eogRight = analogRead(eogRightPin);
// Debugging: Print EOG values
Serial.print("Left Eye: ");
Serial.print(eogLeft);
Serial.print("\tRight Eye: ");
Serial.println(eogRight);
// Control LEDs based on eye movement
if (eogLeft > threshold && eogRight <= threshold) {
digitalWrite(led1Pin, HIGH); // Left eye movement - LED1 on
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
} else if (eogRight > threshold && eogLeft <= threshold) {
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, HIGH); // Right eye movement - LED2 on
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, LOW);
} else if (eogLeft > threshold && eogRight > threshold) {
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, HIGH); // Both eyes movement - LED3 on
digitalWrite(led4Pin, LOW);
} else {
digitalWrite(led1Pin, LOW);
digitalWrite(led2Pin, LOW);
digitalWrite(led3Pin, LOW);
digitalWrite(led4Pin, HIGH); // No eye movement - LED4 on
}
delay(100);
}