BlackSunFL icon

Alarm Sound Arduino

BlackSunFL | PRO | 11/19/24 01:08:05 PM UTC | 0 ⭐ | 10597 👁️ | Never ⏰ | []
Arduino |

2.28 KB

|

Software

|

0 👍

/

0 👎

#include <Wire.h>
#include <LiquidCrystal_I2C.h>
 
// Initialize the LCD (I2C address: 0x27, 16 columns, 2 rows)
LiquidCrystal_I2C lcd(0x27, 16, 2);
 
// Defines pins numbers
const int trigPin = 9;
const int echoPin = 10;
const int buzzerPin = 3; // Buzzer connected to pin 3
 
// Defines variables
long echoDuration; // Changed variable name to avoid conflict
int distance;
const int thresholdDistance = 20; // Distance in cm to trigger the alarm
 
void setup() {
  // Set up the pins
  pinMode(trigPin, OUTPUT); // Sets the trigPin as an Output
  pinMode(echoPin, INPUT);  // Sets the echoPin as an Input
  pinMode(buzzerPin, OUTPUT); // Sets the buzzerPin as an Output
 
  // Initialise Serial Monitor
  Serial.begin(9600);
 
  // Initialise the LCD
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0);
  lcd.print("Distance: ");
}
 
void loop() {
  // Clears the trigPin
  digitalWrite(trigPin, LOW);
  delayMicroseconds(2);
 
  // Sets the trigPin on HIGH state for 10 microseconds
  digitalWrite(trigPin, HIGH);
  delayMicroseconds(10);
  digitalWrite(trigPin, LOW);
 
  // Reads the echoPin, returns the sound wave travel time in microseconds
  echoDuration = pulseIn(echoPin, HIGH);
 
  // Calculating the distance
  distance = echoDuration * 0.034 / 2; // Speed of sound wave divided by 2 (go-and-back)
 
  // Prints the distance on the Serial Monitor
  Serial.print("Distance: ");
  Serial.println(distance);
 
  // Display the distance on the LCD
  lcd.setCursor(10, 0); // Move cursor to position
  lcd.print("    ");    // Clear previous value
  lcd.setCursor(10, 0);
  lcd.print(distance);
  lcd.print("cm");
 
  // Checks if the distance is below the threshold
  if (distance < thresholdDistance) {
    // Generate intermittent sound
    tone(buzzerPin, 1000); // 1000 Hz frequency
    delay(300); // Sound on for 300 ms
    noTone(buzzerPin); // Turn off sound
    delay(300); // Sound off for 300 ms
 
    // Update LCD with alarm message
    lcd.setCursor(0, 1);   // Second row for alarm message
    lcd.print("ALARM! Too Close");
  } else {
    noTone(buzzerPin); // Turn off the sound if the distance is safe
    lcd.setCursor(0, 1); // Clear alarm message
    lcd.print("                ");
  }
 
  delay(100); // Delay to avoid excessive updates
}
 

Comments

  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎

    
        
  •  icon
    01/01/70 12:00:00 AM UTC
    Plain Text |

    0 B

    |

    👍

    /

    👎