Automatic School Bell system using Arduino | School Project
Scroll down for code.....
We all know when we were in school, a person was waiting near school bell to make bell ring. He had to come and rang bell in every period. But what about if it can be automated. Yes it is very simple and we can do that with Arduino. So in this tutorial we are going to make automatic school bell system using Arduino.
LiquidCrystal_I2C library Github link
https://github.com/fdebrabander/Ardui...
Real Time Clock (DS1302) library
http://www.rinkydinkelectronics.com/l...
If you want to support my video please buy any product through my amazon affiliate link. I will receive a commission, at no extra cost to you.
LIST OF COMPONENT (affiliate links)
http://amzn.to/2fvSRJq (Arduino)
http://amzn.to/2gRFSiv (RTC DS1302)
http://amzn.to/2zg8aeX (I2C)
http://amzn.to/2yBk7eT (LCD display)
https://amzn.to/3bvGYLh (Cycle or Bike Bell)
https://amzn.to/2wu2jWg (Toy DC motor)
https://amzn.to/2UxuY4G (L298N Motor Driver)
https://amzn.to/3bl1MoC (4 AAA 1.5V battery case)
https://amzn.to/2QE4kGm (AAA 1.5v Battery)
http://amzn.to/2wxPmWz (Breadboard)
http://amzn.to/2vJ3lvo (Jumper wire)
Music: Elektronomia & Stahl! - Journey
Watch: • Elektronomia & Stahl! - Journey
Music: Elektronomia - Shine On (Instrumental)
Watch: • Elektronomia - Shine On (Instrumental)
#include (Wire.h) //instead of parenthesis () put angle bracket as YouTube description does not allow angle bracket
#include (LiquidCrystal_I2C.h)
#include (DS1302.h)
// Set the LCD address to 0x27 for a 16 chars and 2 line display
LiquidCrystal_I2C lcd(0x3F, 16, 2);
int Hour;
int Min;
int Sec;
int period;
int in1 = 8;
int in2 = 9;
int activate=0;
Time t;
// Init the DS1302
DS1302 rtc(2, 3, 4);
void setup()
{
pinMode(8, OUTPUT);
pinMode(9, OUTPUT);
// Set the clock to run-mode, and disable the write protection
rtc.halt(false);
rtc.writeProtect(false);
// Setup LCD to 16x2 characters
lcd.begin();
Serial.begin(9600);
// The following lines can be commented out to use the values already stored in the DS1302
// rtc.setDOW(SUNDAY); // Set Day-of-Week to FRIDAY
// rtc.setTime(10, 30, 30); // Set the time to 12:00:00 (24hr format)
// rtc.setDate(23, 03, 2020); // Set the date to August 6th, 2010
}
void loop()
{
// Display time on the right conrner upper line
lcd.setCursor(0, 0);
lcd.print("Time: ");
lcd.setCursor(6, 0);
lcd.print(rtc.getTimeStr());
t = rtc.getTime();
Hour = t.hour;
Min = t.min;
Sec = t.sec;
//Display Period Number
lcd.setCursor(0, 1);
lcd.print("Period No: ");
lcd.setCursor(11, 1);
lcd.print(period);
//Period timing, when bell will ring, you can add more period if you want
if ((Hour== 7 && Min== 0 && Sec(= 5)||(Hour== 7 && Min== 30 && Sec(= 5)||(Hour== 8 && Min== 0 && Sec(= 5)||(Hour== 8 && Min== 30 && Sec(= 5)||(Hour== 9 && Min== 30 && Sec(= 5)||(Hour== 10 && Min== 0 && Sec(= 5)||(Hour== 10 && Min== 30 && Sec(= 5)||(Hour== 11 && Min== 0 && Sec(= 5)) {
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
Serial.println("motor is running");
if (activate == 0){
period = period +1;
activate =1;
}
}
else if (Hour== 9 && Min== 0 && Sec(= 7) { // Recess break time (Long ring bell)
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
lcd.setCursor(11, 1);
lcd.print("Break");
delay(500);
lcd.clear();
}
else if (Hour== 11 && Min== 30 && Sec(= 7) { // School time over (Long Ring bell)
digitalWrite(in1, HIGH);
digitalWrite(in2, LOW);
lcd.setCursor(11, 1);
lcd.print("Over");
period =0;
delay(500);
lcd.clear();
}
else { // stop motor
digitalWrite(in1, LOW);
digitalWrite(in2, LOW);
activate =0;
}
delay (500);
}
Информация по комментариям в разработке