سلسلة الأردوينو للمبتدئين ( المشروع عـــ16ـــدد ) : ساعة مع منبه تعرض التوقيت و ساعة المنبه بالتناوب مع امكانية تعديل توقيت المنبه
المطلوب :
عرض التوقيت و ساعة المنبه امكانية تعديل توقيت لمنبه
القطع المطلوبة
1- اردوينو اونوا
2- شاشة (LCD (16*2
3-مديول RTC
4- 2 زر جرس
المخطط على البروتس
الكود
int alarm_H=0;
int alarm_M=0;
#include *RTClib.h*
#include *Wire.h*
RTC_DS1307 RTC;
#include *LiquidCrystal.h*
const int rs = A1, en = A0, d4 = A2, d5 = A3, d6 = 13, d7 = 12;
LiquidCrystal lcd(rs, en, d4, d5, d6, d7);
void setup() {
lcd.print("Initialising ");
lcd.begin(16, 2);
lcd.setCursor(4, 0);
lcd.print("Initialising");
delay(100);
lcd.clear();
lcd.print("Weeelkooom");
delay(100);
lcd.clear();
lcd.print("Salem BEN MOUSSA");
lcd.setCursor(4, 2);
lcd.print("\\ARDOUINO\\");
delay(200);
lcd.clear();
pinMode(10,OUTPUT);
pinMode(11,OUTPUT);
pinMode(12,INPUT_PULLUP);
pinMode(9,INPUT_PULLUP);
pinMode(8,INPUT_PULLUP);
pinMode(7,INPUT_PULLUP);
pinMode(6,INPUT_PULLUP);
Wire.begin();
RTC.begin();
RTC.adjust(DateTime(__DATE__, __TIME__));
digitalWrite(10,HIGH);
}
void loop() {
if (digitalRead(8) == LOW){
alarm_H=alarm_H;
if (alarm_H < 24){
alarm_H++;
lcd.clear();
lcd.setCursor(1,0);
lcd.print("set_alarm_H");
lcd.setCursor(4,1);
lcd.print(alarm_H);
delay(10);}
else {
lcd.print("alarm_H<=24");
alarm_H=0;
delay(10);
}
}
else if (digitalRead(9) == LOW){
alarm_M=alarm_M;
if (alarm_M < 60){
alarm_M++;
lcd.clear();
lcd.setCursor(1,0);
lcd.print("set_alarm_M");
lcd.setCursor(4,1);
lcd.print(alarm_M);
delay(10);}
else {
lcd.print("alarm_M<=60");
delay(10);
alarm_M=0;
}
}
else {
lcd.clear();
DateTime now = RTC.now();
lcd.begin(16, 2);
lcd.setCursor(2, 0);
lcd.print(now.hour(), DEC);
lcd.print(':');
lcd.print(now.minute(), DEC);
lcd.print(':');
lcd.print(now.second(), DEC);
lcd.setCursor(2, 1);
lcd.print(now.year(), DEC);
lcd.print(':');
lcd.print(now.month(), DEC);
lcd.print(':');
lcd.print(now.day(), DEC);
delay(1000);
lcd.clear();
lcd.setCursor(4,0);
lcd.print("alarm_TIME");
lcd.setCursor(6,1);
lcd.print(alarm_H);
lcd.print(":");
lcd.print(alarm_M);
delay(1000);
if ( now.hour() == alarm_H && now.minute() == alarm_M )
{
// lcd.noBacklight();
DateTime now = RTC.now();
digitalWrite(11,HIGH);
digitalWrite(10,HIGH);
delay(10);
digitalWrite(10,LOW);
delay(10);
}
else {
digitalWrite(11,LOW);
digitalWrite(10,HIGH);
}
}
}
------------
فهرس سلسلة مشاريع الأردوينو للمبتدئين
http://salembenmoussa.blogspot.com/2020/05/blog-post_17.html
فهرس سلسلة مشاريع الأردوينو للمبتدئين
http://salembenmoussa.blogspot.com/2020/05/blog-post_17.html
ليست هناك تعليقات:
إرسال تعليق