#define sensor_pin A0
#define G_led 8
#define R_led 9
#define buzzer 12
#define relay 10 // Relay pin for vehicle control
#define helmet_sensor 11 // IR sensor pin for helmet detection
float adcValue=0, val=0, mgL=0;
void setup() {
pinMode(sensor_pin, INPUT);
pinMode(R_led, OUTPUT);
pinMode(G_led, OUTPUT);
pinMode(buzzer, OUTPUT);
pinMode(relay, OUTPUT); // declare Relay as output
pinMode(helmet_sensor, INPUT); // Helmet IR sensor
}
void loop() {
int helmetStatus = digitalRead(helmet_sensor); // Read helmet sensor
adcValue = 0;
for(int i=0; i<10; i++) {
adcValue += analogRead(sensor_pin);
delay(10);
}
val = (adcValue/10) * (5.0/1024.0);
mgL = 0.67 * val;
if(helmetStatus == LOW) {
// Helmet not worn (assuming LOW = no detection)
digitalWrite(buzzer, HIGH);
digitalWrite(R_led, HIGH);
digitalWrite(G_led, LOW);
digitalWrite(relay, LOW); // Vehicle OFF
}
else {
// Helmet worn
if(mgL > 0.8) {
digitalWrite(buzzer, HIGH);
digitalWrite(G_led, LOW);
digitalWrite(R_led, HIGH);
digitalWrite(relay, LOW); // Vehicle OFF
delay(300);
} else {
digitalWrite(G_led, HIGH);
digitalWrite(R_led, LOW);
digitalWrite(relay, HIGH); // Vehicle ON
}
}
digitalWrite(buzzer, LOW);
delay(100);
}
Post a Comment