0% found this document useful (0 votes)
12 views2 pages

Anti Sleep Alarm For Drivers

This document contains Arduino code for a sensor-based system that detects button presses and controls a relay and buzzer based on the duration of the button press. It defines various constants and variables for sensor timing and state management, and includes functions for setup and reading the sensor state. The main loop continuously checks the sensor state and triggers actions based on predefined time thresholds for button presses.

Uploaded by

Sathish
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
12 views2 pages

Anti Sleep Alarm For Drivers

This document contains Arduino code for a sensor-based system that detects button presses and controls a relay and buzzer based on the duration of the button press. It defines various constants and variables for sensor timing and state management, and includes functions for setup and reading the sensor state. The main loop continuously checks the sensor state and triggers actions based on predefined time thresholds for button presses.

Uploaded by

Sathish
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 2

#define Relay 13

#define buzzer A0
static const int sensorPin = 10; // sensor input pin
int SensorStatePrevious = LOW; // previousstate of the sensor

unsigned long minSensorDuration = 3000; // Time we wait before the sensor active
as long
unsigned long minSensorDuration2 = 6000;
unsigned long SensorLongMillis; // Time in ms when the sensor was
active
bool SensorStateLongTime = false; // True if it is a long active

const int intervalSensor = 50; // Time between two readings


sensor state
unsigned long previousSensorMillis; // Timestamp of the latest
reading

unsigned long SensorOutDuration; // Time the sensor is active in


ms

//// GENERAL ////

unsigned long currentMillis; // Variabele to store the number of


milleseconds since the Arduino has started

void setup() {
Serial.begin(9600); // Initialise the serial monitor

pinMode(sensorPin, INPUT); // set sensorPin as input


Serial.println("Press button");
pinMode(Relay,OUTPUT);
pinMode(buzzer,OUTPUT);
}

// Function for reading the sensor state


void readSensorState() {

// If the difference in time between the previous reading is larger than


intervalsensor
if(currentMillis - previousSensorMillis > intervalSensor) {

// Read the digital value of the sensor (LOW/HIGH)


int SensorState = digitalRead(sensorPin);

// If the button has been active AND


// If the sensor wasn't activated before AND
// IF there was not already a measurement running to determine how long the
sensor has been activated
if (SensorState == LOW && SensorStatePrevious == HIGH && !SensorStateLongTime)
{
SensorLongMillis = currentMillis;
SensorStatePrevious = LOW;

Serial.println("Button pressed");
}

// Calculate how long the sensor has been activated


SensorOutDuration = currentMillis - SensorLongMillis;
// If the button is active AND
// If there is no measurement running to determine how long the sensor is
active AND
// If the time the sensor has been activated is larger or equal to the time
needed for a long active
if (SensorState == LOW && !SensorStateLongTime && SensorOutDuration >=
minSensorDuration) {
SensorStateLongTime = true;
digitalWrite(Relay,HIGH);
Serial.println("Button long pressed");
}
if (SensorState == LOW && SensorStateLongTime && SensorOutDuration >=
minSensorDuration2) {
SensorStateLongTime = true;
digitalWrite(buzzer,HIGH);
delay(1000);
Serial.println("Button long pressed");
}

// If the sensor is released AND


// If the sensor was activated before
if (SensorState == HIGH && SensorStatePrevious == LOW) {
SensorStatePrevious = HIGH;
SensorStateLongTime = false;
digitalWrite(Relay,LOW);
digitalWrite(buzzer,LOW);
Serial.println("Button released");

// store the current timestamp in previousSensorMillis


previousSensorMillis = currentMillis;

void loop() {

currentMillis = millis(); // store the current time


readSensorState(); // read the sensor state

You might also like

pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy