فكرة المشروع:
جهاز ساعه بسيط مع منبه , عند بداية تشغيلك للجهاز يجب عليك ضبط الوقت وذلك باستخدام الازارير الاربعه الموجودة في الجهاز , وبعد ذلك يمكنك ضبط المنبه باستخدام الازارير نفسها .


شرح المشروع:

الجهاز يحتوي على اربع ازارير وشرحها بالترتيب :

1- تعديل الساعه.
2- تعديل الدقائق.
3- اضغط مطولاً مع استخدام الزرين 1 و 2 لتعديل وقت الساعه.
4- اضغط مطولاً مع استخدام الزرين 1 و 2 لتعديل وقت المنبه.


صور من المشروع:

[![Potentiometer لتعديل سطوع الشاشه](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094114-300x234.jpg)](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094114.jpg)
Potentiometer لتعديل سطوع الشاشه
[![تعديل وقت المنبه](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094242-300x172.jpg)](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094242.jpg)
تعديل وقت المنبه
[![السماعة لاصدار صوت المنبه](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094157-300x229.jpg)](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094157.jpg)
السماعة لاصدار صوت المنبه
[![تعديل وقت الساعة](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094220-300x198.jpg)](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094220.jpg)
تعديل وقت الساعة
[![عرض الوقت](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094149-300x215.jpg)](http://alhazmy13.net/wp-content/uploads/2014/10/20140902_094149.jpg)
عرض الوقت
- - - - - -

مثال على المشروع:

http://instagram.com/p/sapmctEGn4


متطلبات المشروع:
Arduino Uno
LCD Screen 16*2
Potentiometer 10K
4 Buttons
Buzzer or small speaker
Breadboard
Hook-up wire


الدائرة الالكترونية:

image_3 (1)


الكود البرمجي:
ملاحظة : تم استخدام مكتبة LiquidCrystal تستطيع تحميلها من هنا

#include <LiquidCrystal.h> #define b1Pin 8 #define b2Pin 9 #define b3Pin 10 #define b4Pin 11 #define buzzerPin 12 LiquidCrystal lcd(7, 6, 5, 4, 3, 2); int starttime; int activetime; int prevoustime = 0; int hours = 0; int mins = 0; int ahours = 0; int amins = 0; void setup() { lcd.begin(16, 2); lcd.clear(); Serial.begin(9600); pinMode(b1Pin, INPUT); pinMode(b2Pin, INPUT); pinMode(b3Pin, INPUT); pinMode(b4Pin, INPUT); digitalWrite(b1Pin, HIGH); digitalWrite(b2Pin, HIGH); digitalWrite(b3Pin, HIGH); digitalWrite(b4Pin, HIGH); pinMode(buzzerPin, OUTPUT); pinMode(A0, OUTPUT); digitalWrite(A0, HIGH); starttime = millis()/1000; } void loop() { while(digitalRead(b4Pin) == LOW) { lcd.setCursor(6,1); lcd.print("Alarm"); lcd.setCursor(6,0); if(digitalRead(b2Pin) == LOW) { amins++; } else if (digitalRead(b1Pin) == LOW) { ahours++; } lcd.setCursor(6,0); if(ahours < 10) { lcd.print("0"); lcd.print(ahours); } else { lcd.print(ahours); } lcd.print(":"); if (amins < 10) { lcd.print("0"); lcd.print(amins); } else { lcd.print(amins); } if(amins > 59) { ahours++; amins = 0; } if(ahours > 23) { ahours = 0; } delay(500); lcd.clear(); } if(digitalRead(b3Pin) == LOW) { lcd.setCursor(5,1); lcd.print("Set Time"); lcd.setCursor(6,0); if(digitalRead(b2Pin) == LOW) { mins++; } else if (digitalRead(b1Pin) == LOW) { hours++; } } activetime = (millis() / 1000) - starttime; if(prevoustime < (activetime - 59)) { mins++; prevoustime = activetime; } if(mins > 59) { hours++; mins = 0; } if(hours > 24) { hours = 0; } lcd.setCursor(6,0); if(hours < 10) { lcd.print("0"); lcd.print(hours); } else { lcd.print(hours); } lcd.print(":"); if (mins < 10) { lcd.print("0"); lcd.print(mins); } else { lcd.print(mins); } if(ahours == hours && amins == mins && amins != 0) { tone(buzzerPin, 1000, 200); delay(200); noTone(buzzerPin); delay(200); } else { delay(300); } lcd.clear(); }