Inhoudsopgave:
2025 Auteur: John Day | [email protected]. Laatst gewijzigd: 2025-01-13 06:57
Dit is een instructable voor een wekker. We hebben een wekker gemaakt omdat we altijd te laat zijn of we vergeten vaak de wekker te zetten.
Deze wekker is volledig automatisch, dus je hoeft je wekker niet te zetten. U kunt voor elke dag een andere wektijd kiezen. Je moet de wektijd één keer instellen, en dan gaat je wekker op de gekozen tijd.
Stap 1: Materialen
1. Arduino
We gebruikten een Arduino Uno. Je kunt de Arduino met een USB-kabel op de computer aansluiten. Om de Arduino te programmeren heb je het Arduino Sketch programma op je computer nodig.
2. Realtimeklok
De Real Time Clock, genaamd RTC, is een computerklok. De RTC werkt de tijd bij, dus u moet de tijd één keer instellen. We gebruikten de RTC ZS-042
3. LCD-scherm
De Liquid Crystal Display, genaamd LCD, is een scherm dat je op de arduino kunt aansluiten.
4. Broodplank
Om elektrische schakelingen te maken is het erg handig om een breadboard te hebben. De Arduino bestuurt elke pin.
5. Vrouwelijke en mannelijke draden
Om de elektrische componenten aan te sluiten, kunt u deze draden gebruiken. U kunt de mannelijke en de vrouwelijke draden verbinden met de gaten en de pinnen.
6. Zoemer
De zoemer maakt het geluid voor je wekker.
7. USB-kabel
Je kunt de Arduino met de USB-kabel op de computer aansluiten, zodat je de Arduino kunt programmeren.
8. 9 volt batterij
9. Batterijclip
Om de arduino te verbinden met de 9 volt batty heb je deze clip nodig.
10. Lego
We hebben onze beschermhoes met lego gemaakt, maar je kunt iets anders kiezen als je wilt.
Stap 2: Sluit de RTC. aan
Om de RTC op de Arduino aan te sluiten, hebben we de RTC, de Arduino, de Breadboard, vrouwelijke en mannelijke draden nodig.
Aansluiting Arduino
-GND: plaats op positie j12 van het breadboard
-8: Plaats op positie j10 van het breadboard
Aansluiting RTC:
- 32K: plaats op A5 in de Arduino
-SQW: plaats bij Vin in de Arduino
- SCL: Plaats op positie h30 van het breadboard
- SDA: plaats op positie g30 van het breadboard
-VCC: plaats deze niet
-GND: plaats op GND in de Arduino
Stap 3: Stel de tijd in
Eerst moet je de RTC in de schets uitleggen:
#erbij betrekken
DS3231 rtc (SDA, SCL);
Nu kunt u de tijd instellen:
rtc.begin();
rtc.setDOW(VRIJDAG); // Dag van de week instellen op ZONDAG
rtc.setTime (15, 49, 0); // Stel de tijd in op 12:00:00 (24-uurs formaat)
rtc.setDate(13, 4, 2018);
U kunt uw tijd controleren op de seriële monitor.
Stap 4: Sluit het LCD-scherm aan
Nu moet je het LCD-scherm op de Arduino aansluiten. We verbinden 4 draden van het LCD-scherm naar de Arduino of het breadboard. Je moet de draden als volgt aansluiten:
- GND: plaats bij GND in de arduino
- VCC: plaats in de powerrail van het breadboard
- SDA: plaats op positie j29 van het breadboard
- SCL: plaats op positie f30 van het breadboard
Stap 5: Stel het LCD-scherm in
Je moet het LCD-scherm in de schets uitleggen. Je moet het als volgt doen:
#erbij betrekken
In dit deel van de code wordt uitgelegd dat het LCD-scherm de datum en tijd op het scherm zal tonen.
ongeldige setup()
{ lcd.begin (16, 2); for(int i = 0; i<5; i++){ lcd.noBacklight(); vertraging (500); lcd.achtergrondverlichting(); lcd.print(" Terreuralarm"); vertraging (500); lcd.wissen(); }
Stap 6: Sluit de zoemer aan
De zoemer zit op pin h10 en in pin h12 van het breadboard. De toon wordt aangegeven met het woord ‘toon’. In onze schets hebben we deze toon voor het alarm gekozen: toon (10, 440, 200).
Stap 7: Installeer het alarm
We hebben ervoor gekozen om een automatische wekker te maken. We hebben de wekker gezet van maandag t/m zaterdag. We hebben vaak het probleem dat we vergeten onze wekker te zetten, dit is de oplossing voor ons probleem. We hebben het alarm aangepast in ons schoolrooster. Als het alarm afgaat, klinkt er een pieptoon en knippert het scherm. Dit is de code voor de alarmcheck in de void loop:
alarmcontrole(); if(t.min==15 && t.hour==7){ lcd.noBacklight(); vertraging (5000); lcd.achtergrondverlichting(); toon (10, 440, 200); } }
void alarmcheck(){ if (t.min==15 && t.hour==7 && rtc.getDOWStr(FORMAT_LONG)=="maandag"){ alarm(); } if (t.min==45 && t.hour==9 && rtc.getDOWStr(FORMAT_LONG)=="dinsdag"){ alarm(); } if (t.min==14 && t.hour==13 && rtc.getDOWStr(FORMAT_LONG)=="woensdag"){ alarm(); } if (t.min==45 && t.hour==7 && rtc.getDOWStr(FORMAT_LONG)=="donderdag"){ alarm(); } if (t.min==45 && t.hour==7 && rtc.getDOWStr(FORMAT_LONG)=="vrijdag"){ alarm(); } if (t.min==15 && t.hour==9 && rtc.getDOWStr(FORMAT_LONG)=="zaterdag"){ alarm(); } }
ongeldig alarm(){ lcd.noBacklight(); vertraging (1000); lcd.achtergrondverlichting(); for(int i = 0; i<100; i++){ tone(10, 200*i+200); } }
Als er geen alarm is, kunt u de tijd en de datum op het display zien. Dit is de code:
t = rtc.getTime(); Serial.println(rtc.getDOWStr(FORMAT_LONG)); lcd.setCursor(0, 0); lcd.print("Tijd: "); lcd.print(rtc.getTimeStr()); lcd.setCursor(0, 1); lcd.print("Datum: "); lcd.print(rtc.getDateStr()); vertraging (1000); lcd.wissen();
Stap 8: Maak de beschermhoes
Alle elektrische componenten zijn inmiddels aangesloten. Het enige wat we nodig hebben is de beschermhoes. De beschermhoes hebben we van Lego gemaakt, maar je kunt kiezen wat je wilt.
Stap 9: Gebruik je wekker
Nu is de wekker klaar voor gebruik. Door deze automatische wekker kom je nooit te laat!