Sisukord:
- Samm: ühendamisjuhised
- 2. samm:
- 3. samm:
- 4. samm:
- 5. samm:
- 6. samm:
- 7. samm:
- 8. samm:
- 9. samm: programmeerimisjuhised
- 10. samm:
- 11. samm:
- 12. samm:
- 13. samm:
- 14. samm:
Video: Arduino äratuskella projekt: 14 sammu
2024 Autor: John Day | [email protected]. Viimati modifitseeritud: 2024-01-30 08:47
Selles projektis kasutame Arduino Unot LCD -ekraani juhtimiseks, et näidata praegust kellaaega ja aega, mille jaoks äratus on seatud. Kasutame iga kord seadistamiseks nuppe.
Materjalid:
- Arduino Uno -
- Leivalaud -
- Jumper Traadid (x13+) -
- 10 kohm takistit (x4) -
- LCD -ekraan -
- 7 nuppu-https://vilros.com/collections/raspberry-pi-acces…
- Piezo kõlar -
Samm: ühendamisjuhised
1. Ühendage Arduino 5V tihvtilt hüppajajuhe ühe leivaplaadi + rööpaga.
2. samm:
2. Ühendage Arduino GND tihvtilt hüppajajuhe leivaplaadil valitud + rööpa kõrval oleva rööpaga.
3. samm:
3. Ühendage LCD -ekraan toite-, maandus- ja TX -tihvtiga (tihvt 1).
4. samm:
4. Asetage 7 nuppu leivaplaadile, jalad üle leivalaua pilu.
5. samm:
5. Asetage rööbast 10 kohm -takistit, mille külge on ühendatud GND -tihvt, nuppude vasakpoolsesse alumisse kontakti.
6. samm:
6. Asetage hüppaja juhtmed nuppude parema alumise tihvti ja leivaplaadi 5V rööpa vahele.
7. samm:
7. Asetage hüppaja juhtmed tihvtide 6, seejärel 8-13 ja nupu tihvti vahele, millega takisti on ühendatud.
8. samm:
8. Seejärel asetage oma Piezo kõlar leivaplaadile ja ühendage tihvt 7 toitepistikuga, seejärel maandage 100 oomi takisti.
9. samm: programmeerimisjuhised
1. Ülevaade: see projekt palub kasutajal määrata ekraanil esmakordsel sisselülitamisel praeguse kellaaja ja äratuse kellaaja. Ülaltoodud nuppe kasutatakse iga kord seadistamiseks. Vasakult paremale on seadistatud praegune tund, praegune minut, praegune AM või PM, äratustund, äratusminut, äratus AM või PM. Viimast nuppu kasutatakse alarmi vaigistamiseks, kui see kõlab.
10. samm:
2. Esimene asi, mida peame tegema, on lähtestada muutuja, mida hakkame kasutama.
// Initsialiseerige kasutatavad muutujadtunnis = 0; // Tund praegusele ajale int minut = 0; //
Praeguse aja minut sekundis = 0; // Praeguse aja teine
int tund_a = 0; int // Tund äratusaega
minut_a = 0; // Äratuse aja minut
bool am_pm = vale; // AM/PM lülituslipp. False on AM, tõsi on PM
bool am_pm_a = vale; // AM/PM lüliti alarm. False on AM, tõsi on PM
int set_hr = 13; // Tunni määramiseks kasutage tihvti 13
int set_min = 12; // Kasutage tihvti 12, et määrata minutite int
set_am_pm = 11; // Kasutage tihvti 11, et määrata am/pm
int set_hr_a = 10; // Kasutage tihvti 10, et määrata häire tund int set_min_a = 9; // Kasutage tihvti 9 äratuse minuti määramiseks int set_am_pm_a = 8; // Kasutage tihvti 8, et määrata äratus am/pm
int kõneleja = 7; // Kõlarite jaoks kasutatav tihvt vaikne = 6; // Kinnita kõneleja peatamiseks
bool alarm = vale; // Märguande vahetamiseks, et hoida murettekitavat
bool vaikseks = vale; // Vaiksust tähistavat lippu pole vajutatud
int cur_time = 0; // Muutuja praeguse aja kohta
int etime = 0; // Muutuv aeg
11. samm:
3. Järgmisena peame seadistama LCD -ekraani ja ütlema kasutajale hetkeaja seadmise. Kuna seda tuleb teha ainult üks kord, teeme seda seadistusrutiinis.
tühine seadistus () {
// LCD -ekraani seadistamine
Seriaalne algus (9600); // Initsialiseeri jada kiirusel 9600 baud
Seriaalne.kirjutamine (17); // Lülitage taustvalgus sisse
Serial.write (24); // Lülitage ekraan sisse, kursoriga ja vilkumata
Serial.write (12); // Kustuta ekraan
Serial.write (128); // Liiguta kursor vasakusse ülanurka // Määra pinModes pinMode (set_hr, SISEND); pinMode (set_min, INPUT);
pinMode (set_am_pm, INPUT);
pinMode (set_hr_a, INPUT);
pinMode (set_min_a, INPUT);
pinMode (set_am_pm_a, INPUT);
pinMode (kõlar, OUTPUT);
pinMode (vaikne, INPUT);
// Esialgse sisselülitamisel laske kasutajal määrata praegune kellaaeg. Serial.print ("Määra praegune aeg"); viivitus (2000);
Serial.write (12);
printTimes ();
cur_time = millis (); // Praeguse aja salvestamine}
12. samm:
4. Seejärel jälgime tsüklirutiinis aega ja loeme nuppude olekut, et näha, kas kasutaja määrab kummagi aja.
void loop () {
// Hoia aega
keepTime ();
// Kontrollige, kas on aeg äratada!
if ((tund == tund_a && minut == minut_a &&! vaigistatud) || äratus) {toon (kõneleja, 2000, 500); // 2000 Hz heli väljastamine kõlarisse 500 ms
viivitus (500); // Viivita 500 ms, kui (! Alarm) {// Kui alarm on välja lülitatud, lülita see sisse
}
}
// Kui kasutaja vaigistab alarmi vaikset nuppu vajutades, lõpetage murettekitamine, kui (alarm &&! Quieted && digitalRead (vaikne)) {
alarm = vale;
vaikne = tõsi; }
// Lähtesta äratus, kui (! Alarm && quieted && minute! = Minute_a) {quieted = false;
}
// Kontrollige, kas määratud tihvtid lähevad kõrgele ja kui jah, suurendage vastavat väärtustif (digitalRead (set_hr) && tund <12) {
tund ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr) && hour == 12) {tund = 1;
printTimes ();
debounce ();
}
muu {}
if (digitalRead (set_min) && minut <59) {
minut ++; printTimes ();
debounce ();
}
muidu kui (digitalRead (set_min) && minute == 59) {minut = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = vale;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
else {} if (digitalRead (set_hr_a) && hour_a <12) {
tund_a ++;
printTimes ();
debounce ();
}
muidu kui (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_min_a) && minute_a <59) {
minut_a ++;
printTimes ();
debounce ();
}
muidu kui (digitalRead (set_min) && minute_a == 59) {minute_a = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = vale;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
muu {}
}
13. samm:
5. Siin märkate paari minu loodud alamprogrammi - debounce () ja printTimes (). Debounce () kasutatakse veendumaks, et loeme nuppe ainult üks kord. Kuna Arduino skannib tuhandeid kordi sekundis, võib arvata, et nuppu vajutati mitu korda, kui kavatsesite seda lugeda ainult üks kord. Debounce () külmutab programmi, kuni nupp vabastatakse. printTimes () värskendab vedelkristallekraani, kuid kuna see oli mitu käsku, sisestasin need üks kord ja seejärel võin alamprogrammi helistada igal ajal, kui ajaväärtus muutub.
// Kui mõnda nuppu vajutatakse, hoidke seda funktsiooni ja seejärel viivitage 250 ms.
void debounce () {
samas (digitalRead (set_hr) || digitalRead (set_min) ||
digitalRead (set_am_pm) || digitalRead (set_hr_a) ||
digitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} viivitus (250);
}
// Prindib uuendatud ajad, kui neid muudetakse
void printTimes () {
Serial.write (12);
Serial.print ("Praegune aeg:");
Serial.write (148);
kui (tund <10) {
Serial.print ("0");
}
Serial.print (tund);
Serial.print (":");
kui (minut <10) {
Serial.print ("0");
}
Seerianumber (minut); Seeriaprint (":");
kui (teine <10) {
Serial.print ("0");
}
Serial.print (teine);
kui (am_pm) {
Serial.print ("PM");
}
muu {
Serial.print ("AM");
}
Serial.write (168);
Serial.print ("Alarm Set for:");
Seriaalne.kirjutamine (188);
kui (tund_a <10) {
Serial.print ("0");
}
Seeria.print (tund_a);
Serial.print (":");
kui (minut_a <10) {
Serial.print ("0");
}
Serial.print (minut_a);
kui (am_pm_a) {
Serial.print ("PM");
}
muu {
Serial.print ("AM");
}
}
// Ajaparameetrite tühistamine
keepTime () {
etime = millis () - cur_time;
if (etime> = 1000 && sekund <59) {
teine ++;
cur_time = millis ();
printTimes ();
}
muidu kui (etime> = 1000 && sekund == 59 && minut <59) {sekund = 0;
minut ++;
cur_time = millis ();
printTimes ();
}
muidu kui (etime> = 1000 && sekund == 59 && minut == 59 && tund <12) {
teine = 0; minut =
0; tund ++; cur_time =
millis (); printTimes ();
}
muidu kui (etime> = 1000 && sekund == 59 && minut == 59 && tund == 12) {
teine = 0; minut =
0; tund = 1; am_pm =
! am_pm;
cur_time = millis ();
printTimes ();
}
muu {}
}
14. samm:
6. See on kõik!
Koostage ja laadige üles ning oletegi valmis!
Soovitan:
Kuidas teha DIY äratuskella LCD -klahvistiku kilbiga: 5 sammu
Kuidas teha DIY äratuskella LCD -klahvistiku kilbiga: Tere kõigile! Selles juhendis näitan teile, kuidas teha Arduino Board abil äratuskella. Olen selle kella ehitamiseks kasutanud Arduino UNO -d, LCD -klaviatuuri kaitsekilpi, 5 V helisignaali ja hüppajajuhtmeid. Näete kellaaega ekraanil ja saate seadistada aega
Uuendatud äratuskella nutivalgus: 8 sammu (piltidega)
Ümbertöödeldud äratuskell Smart Light: Selles projektis töötan ringlusse täielikult katkise äratuskella. Kella nägu asendab 12 LED -i, mida valgustab kella serva ümbritsev LED -riba. 12 LED -i näitavad kellaaega ja LED -riba on programmeeritud toimima häirena, pöörates
1 £ Interneti -äratuskella raadio: 5 sammu (koos piltidega)
1 naelsterlingi Interneti -äratuskell: nii nagu paljudel inimestel, on mul vana nutitelefon ja nagu me teame, saab neid kasutada mitmel viisil. Siin teen internetikellaga raadio, mis maksab palju vähem kui need väljamõeldud saate oma iPhone'i ühendada
Arduino äratuskella relee: 6 sammu (piltidega)
Arduino äratuskella relee: Mul on palju probleeme varahommikul ärkamisega, eriti kui jäin eile õhtul üleval. Põhimõtteliselt võimaldab see projekt avada relee klahvistiku ja lcd abil määratud ajal. See relee saab juhtida paljusid seadmeid sisselülitamisel
Kuidas teha lihtsat iPhone'i äratuskella alust: 5 sammu (piltidega)
Lihtsa iPhone'i äratuskella aluse valmistamine: see on üheosaline tasane alus, mida saab kasutada koos oma iPhone'iga, kui see laaditakse kaabli kaudu. Minu jaoks tähendab see seda, et saan seda kasutada oma voodi juures äratuskellana, samal ajal kui ma seda näen. See on ka üheosaline disain, nii et seda on väga lihtne valmistada. Sain idee sealt