Turinys:
- 1 žingsnis: prijungimo instrukcijos
- 2 žingsnis:
- 3 žingsnis:
- 4 žingsnis:
- 5 veiksmas:
- 6 žingsnis:
- 7 žingsnis:
- 8 žingsnis:
- 9 žingsnis: programavimo instrukcijos
- 10 veiksmas:
- 11 veiksmas:
- 12 žingsnis:
- 13 žingsnis:
- 14 žingsnis:
Video: „Arduino“žadintuvo projektas: 14 žingsnių
2024 Autorius: John Day | [email protected]. Paskutinį kartą keistas: 2024-01-30 10:46
Šiame projekte mes naudosime „Arduino Uno“LCD ekranui valdyti, kad būtų rodomas dabartinis laikas ir laikas, kuriam nustatytas žadintuvas. Kiekvieną kartą nustatymui naudosime mygtukus.
Medžiagos:
- „Arduino Uno“-
- Duonos lenta -
- Trumpieji laidai (x13+) -
- 10 kohm rezistorių (x4) -
- LCD ekranas -
- 7 mygtukai-https://vilros.com/collections/raspberry-pi-acces…
- Pjezo garsiakalbis -
1 žingsnis: prijungimo instrukcijos
1. Prijunkite trumpąjį laidą nuo 5 V kištuko ant „Arduino“prie vieno iš + bėgių ant duonos lentos.
2 žingsnis:
2. Prijunkite jungiamąjį laidą nuo „Arduino“GND kaiščio prie bėgio, esančio šalia + bėgio, kurį pasirinkote ant duonos lentos.
3 žingsnis:
3. Prijunkite LCD ekraną prie maitinimo, įžeminimo ir TX kaiščio (1 kaištis).
4 žingsnis:
4. Padėkite 7 mygtukus ant duonos lentos, kojomis skersai duonos lentos.
5 veiksmas:
5. Įdėkite 10 kohm rezistorių nuo bėgio su prijungtu GND kaiščiu prie apatinių kairiųjų mygtukų kaiščių.
6 žingsnis:
6. Įdėkite trumpiklius tarp apatinio dešiniojo mygtukų kaiščio ir 5V bėgelio ant jūsų duonos lentos.
7 žingsnis:
7. Įdėkite trumpiklius tarp 6, tada 8-13 kaiščių ir mygtuko, prie kurio yra prijungtas rezistorius, kaiščio.
8 žingsnis:
8. Tada padėkite „Piezo“garsiakalbį ant duonos lentos ir prijunkite 7 kaištį prie maitinimo kaiščio, tada 100 omų rezistorių prie žemės.
9 žingsnis: programavimo instrukcijos
1. Apžvalga: Šis projektas paprašys vartotojo nustatyti dabartinį pradinio maitinimo laiką ekrane dabartinį laiką ir žadintuvo nustatymo laiką. Aukščiau prijungti mygtukai bus naudojami kiekvieną kartą nustatyti. Iš kairės į dešinę jie nustato dabartinę valandą, dabartinę minutę, dabartinę AM arba PM, žadintuvo valandą, žadintuvo minutę, žadintuvą AM arba PM. Paskutinis mygtukas naudojamas nutildyti aliarmą, kai jis skamba.
10 veiksmas:
2. Pirmas dalykas, kurį turime padaryti, yra inicijuoti mūsų kintamąjį, kurį ketiname naudoti.
// Inicijuoti naudojamus kintamuosiusvalandas = 0; // Valanda dabartiniam laikui int minute = 0; //
Esamo laiko minutė int sekundė = 0; // Antras dabartiniam laikui
int valanda_a = 0; int // Žadintuvo valanda
minutė_a = 0; // Žadintuvo laiko minutė
bool am_pm = false; // AM/PM perjungimo vėliava. Netiesa yra AM, tiesa yra PM
bool am_pm_a = klaidinga; // AM/PM perjungimo vėliava aliarmui. Netiesa yra AM, tiesa yra PM
int set_hr = 13; // Naudodami 13 kaištį nustatykite valandą
int set_min = 12; // Naudokite 12 kaištį, kad nustatytumėte minutės int
set_am_pm = 11; // Naudokite 11 kaištį, kad nustatytumėte am/pm
int set_hr_a = 10; // Naudokite 10 kaištį, kad nustatytumėte žadintuvo valandą int set_min_a = 9; // Naudokite 9 kaištį, kad nustatytumėte žadintuvo minutę int set_am_pm_a = 8; // Norėdami nustatyti žadintuvą am/pm, naudokite 8 kaištį
int garsiakalbis = 7; // Smeigtukas, naudojamas garsiakalbiui tyliai = 6; // Prisegti, kad sustabdytumėte garsiakalbį
bool signalizacija = klaidinga; // Žymėti, kad perjungtumėte, kad nerimautumėte
bool tylus = klaidinga; // Vėliava, rodanti tylą, nebuvo nuspausta
int cur_time = 0; // Kintamasis dabartiniam laikui
int etime = 0; // Kintamas laikas
11 veiksmas:
3. Toliau turime nustatyti LCD ekraną ir liepti vartotojui nustatyti dabartinį laiką. Kadangi tai reikia padaryti tik vieną kartą, tai darysime sąrankos metu.
void setup () {
// LCD ekrano nustatymas
Serial.begin (9600); // Inicijuoti seriją 9600 baudų greičiu
Serial.write (17); // Įjunkite galinį apšvietimą
Serial.write (24); // Įjunkite ekraną su žymekliu ir nemirksėkite
Serial.write (12); // Išvalyti ekraną
Serial.write (128); // Perkelti žymeklį į viršutinį kairįjį kampą // Nustatyti pinModes pinMode (set_hr, INPUT); pinMode (set_min, INPUT);
pinMode (nustatyti_am_pm, INPUT);
pinMode (set_hr_a, INPUT);
pinMode (set_min_a, INPUT);
pinMode (nustatyti_am_pm_a, INPUT);
pinMode (garsiakalbis, OUTPUT);
pinMode (tylus, Įvestis);
// Įjungus pradinį maitinimą, leiskite vartotojui nustatyti dabartinį laiką. Serial.print ("Nustatyti dabartinį laiką"); vėlavimas (2000 m.);
Serial.write (12);
printTimes ();
cur_time = milis (); // Išsaugoti dabartinį laiką}
12 žingsnis:
4. Tada ciklo rutinoje mes sekame laiką ir skaitome mygtukų būseną, kad pamatytume, ar vartotojas nustato kurį nors laiką.
void loop () {
// Laikyk laiką
keepTime ();
// Patikrinkite, ar atėjo laikas įspėti!
if ((valanda == valanda_a && minutė == minutė_a &&! nutildyta) || žadintuvas) {tonas (garsiakalbis, 2000, 500); // Išveskite 2000 Hz garsą į garsiakalbį 500 ms
vėlavimas (500); // Atidėkite 500 ms, jei (! Signalizacija) {// Jei signalas išjungtas, įjunkite jį
}
}
// Jei naudotojas nutildo signalą paspausdamas tylų mygtuką, nustokite nerimauti, jei (alarm &&! Quieted && digitalRead (tyliai)) {
aliarmas = klaidingas;
tylus = tiesa; }
// Iš naujo nustatyti žadintuvą, jei (! Alarm && quieted && minute! = Minute_a) {quieted = false;
}
// Patikrinkite, ar nustatyti kaiščiai yra aukšti, ir jei taip, padidinkite atitinkamą reikšmęif (digitalRead (set_hr) && hour <12) {
valanda ++;
printTimes ();
debounce ();
}
else if (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
debounce ();
}
Kitas{}
if (digitalRead (set_min) && minute <59) {
minutė ++; printTimes ();
debounce ();
}
else if (digitalRead (set_min) && minute == 59) {minute = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = false;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
else {} if (digitalRead (set_hr_a) && hour_a <12) {
valanda_a ++;
printTimes ();
debounce ();
}
else if (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 ();
}
else if (digitalRead (set_min) && minute_a == 59) {minute_a = 0;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = klaidinga;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
Kitas{}
}
13 žingsnis:
5. Čia pastebėsite porą mano sukurtų paprogramių - debounce () ir printTimes (). Debounce () naudojamas norint įsitikinti, kad mygtukus skaitome tik vieną kartą. Kadangi „Arduino“nuskaito tūkstančius kartų per sekundę, jis gali manyti, kad mygtukas buvo paspaustas kelis kartus, kai ketinote jį perskaityti tik vieną kartą. Debounce () užšaldys programą, kol mygtukas bus atleistas. „printTimes“() atnaujina LCD ekraną, bet kadangi tai buvo kelios komandos, jas vieną kartą įvedžiau ir tada galiu paskambinti paprogramei bet kuriuo metu, kai pasikeičia laiko vertė.
// Kol spaudžiamas bet kuris mygtukas, pasilikite šią funkciją ir atidėkite 250 ms.
void debounce () {
while (digitalRead (set_hr) || digitalRead (set_min) ||
digitalRead (set_am_pm) || digitalRead (set_hr_a) ||
digitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} delsa (250);
}
// Spausdina atnaujintą laiką, jei yra kokių nors pakeitimų
void printTimes () {
Serial.write (12);
Serial.print ("Dabartinis laikas:");
Serial.write (148);
jei (valanda <10) {
Serial.print ("0");
}
Serijinis atspaudas (valanda);
Serial.print (":");
jei (minutė <10) {
Serial.print ("0");
}
Serijos atspaudas (minutė); Serijos atspaudas („:“);
jei (antra <10) {
Serial.print ("0");
}
Serial.print (antras);
jei (am_pm) {
Serial.print („PM“);
}
Kitas{
Serial.print („AM“);
}
Serial.write (168);
Serial.print ("Alarm Set for:");
Serial.write (188);
jei (valanda_a <10) {
Serial.print ("0");
}
Serijinis atspaudas (valanda_a);
Serial.print (":");
jei (minutė_a <10) {
Serial.print ("0");
}
Serijinis atspaudas (minutė_a);
jei (am_pm_a) {
Serial.print („PM“);
}
Kitas{
Serial.print („AM“);
}
}
// Laiko parametrų padidinimas tuščias
keepTime () {
etime = millis () - cur_time;
if (etime> = 1000 && sekundė <59) {
antras ++;
cur_time = milis ();
printTimes ();
}
kitaip jei (etime> = 1000 && second == 59 && minute <59) {second = 0;
minutė ++;
cur_time = milis ();
printTimes ();
}
kitaip jei (etime> = 1000 && sekundė == 59 && minutė == 59 && valanda <12) {
antras = 0; minutė =
0; valanda ++; cur_time =
milis (); printTimes ();
}
kitaip jei (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
antras = 0; minutė =
0; valanda = 1; am_pm =
!ryto vakaro;
cur_time = milis ();
printTimes ();
}
Kitas{}
}
14 žingsnis:
6. Štai ir viskas!
Surinkite ir įkelkite - ir viskas!
Rekomenduojamas:
„Pasidaryk pats“žadintuvo dviračio užraktas (suaktyvintas smūgis): 5 žingsniai (su nuotraukomis)
„Pasidaryk pats“žadintuvo dviračio užraktas (įjungtas smūgis): Šiame projekte parodysiu, kaip sukurti paprastą smūgiu suaktyvinamą žadintuvo dviračio užraktą. Kaip rodo pavadinimas, jis sukuria aliarmo garsą, kai jūsų dviratis yra gabenamas su leidimu. Pakeliui šiek tiek sužinosime apie pjezoele
Kaip sukurti „žadintuvo kilimėlį“naudojant „Arduino Mega“: 9 žingsniai
Kaip sukurti „žadintuvo kilimėlį“naudojant „Arduino Mega“: mes visi turime tuos rytus, kai mums sunku atsikelti iš lovos. Žadintuvas vis tiek skamba, o mes nuolat snaudžiame, kol … jau per vėlu! Mes praleidome susitikimą arba pamoka jau prasidėjo. Norėdami padėti kovoti su šia problema, sukūrėme
„Arduino“skaitmeninis laikrodis su žadintuvo funkcija (pasirinktinė PCB): 6 žingsniai (su paveikslėliais)
„Arduino“skaitmeninis laikrodis su žadintuvo funkcija (pasirinktinė PCB): šiame „pasidaryk pats“vadove aš jums parodysiu, kaip padaryti savo skaitmeninį laikrodį šią žadinimo funkciją. Šiame projekte nusprendžiau sukurti savo PCB, pagrįstą „Arduino UNO“mikrovaldikliu - „Atmega328p“. Žemiau rasite elektroninę schemą su PCB l
„Arduino“žadintuvo relė: 6 žingsniai (su nuotraukomis)
„Arduino“žadintuvo estafetė: Turiu daug problemų pabusti anksti ryte, ypač jei praleidau naktį. Iš esmės šis projektas leidžia jums atidaryti relę tuo metu, kai nustatote naudodami klaviatūrą ir LCD. Ši relė gali valdyti daugelį prietaisų nuo
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): 3 žingsniai
USB degiklis! Šis projektas gali sudegti per plastiką / medieną / popierių (įdomus projektas taip pat turi būti labai plonas medis): NEDARYKITE ŠIO NAUDOTI USB! iš visų komentarų sužinojau, kad tai gali pakenkti jūsų kompiuteriui. mano kompiuteris gerai. Naudokite 600 mA 5v telefono įkroviklį. Aš tai naudoju ir jis veikia gerai, ir niekas negali būti sugadintas, jei naudosite apsauginį kištuką, kad sustabdytumėte maitinimą