Satura rādītājs:
- 1. darbība: savienošanas instrukcijas
- 2. darbība:
- 3. darbība:
- 4. solis:
- 5. darbība:
- 6. darbība
- 7. darbība:
- 8. darbība
- 9. solis: Programmēšanas instrukcijas
- 10. darbība:
- 11. darbība:
- 12. solis:
- 13. darbība
- 14. darbība:
Video: Arduino modinātāja projekts: 14 soļi
2024 Autors: John Day | [email protected]. Pēdējoreiz modificēts: 2024-01-30 10:54
Šajā projektā mēs izmantosim Arduino Uno, lai kontrolētu LCD ekrānu, lai parādītu pašreizējo laiku un laiku, kad ir iestatīts modinātājs. Katru reizi iestatīšanai izmantosim pogas.
Materiāli:
- Arduino Uno -
- Maizes dēlis -
- Džemperu vadi (x13+) -
- 10 kohm rezistori (x4) -
- LCD ekrāns -
- 7 pogas-https://vilros.com/collections/raspberry-pi-acces…
- Pjezo skaļrunis -
1. darbība: savienošanas instrukcijas
1. Pievienojiet džempera vadu no 5 V tapas uz Arduino ar vienu no + sliedēm uz maizes dēļa.
2. darbība:
2. Pievienojiet pārejas vadu no Arduino GND tapas pie sliedes blakus + sliedei, kuru izvēlējāties uz maizes dēļa.
3. darbība:
3. Savienojiet LCD ekrānu ar strāvu, zemējumu un TX tapu (1. tapa).
4. solis:
4. Novietojiet 7 pogas uz maizes dēļa ar kājām pāri maizes dēļa spraugai.
5. darbība:
5. Novietojiet 10 kohm rezistorus no sliedes ar GND tapu, kas tai pievienota, uz pogu apakšējām kreisajām tapām.
6. darbība
6. Novietojiet džemperu vadus starp pogu apakšējo labo tapu un maizes dēļa 5V sliedi.
7. darbība:
7. Novietojiet džemperu vadus starp tapām 6, pēc tam 8-13 un tapu uz pogas, kurai ir pievienots rezistors.
8. darbība
8. Pēc tam novietojiet Piezo skaļruni uz maizes dēļa un pievienojiet 7. tapu pie strāvas tapas, pēc tam 100 omu rezistoru pie zemes.
9. solis: Programmēšanas instrukcijas
1. Pārskats: Šis projekts prasīs lietotājam iestatīt pašreizējo laiku, kad displejā sākotnēji ieslēgts pašreizējais laiks un laiks, kad ir iestatīts modinātājs. Iepriekš pieslēgtās pogas tiks izmantotas, lai iestatītu katru reizi. No kreisās uz labo, tiem tiek iestatīta pašreizējā stunda, iestatīts pašreizējais minūte, iestatīts pašreizējais AM vai PM, iestatīts modinātāja stunda, iestatīta modinātāja minūte, iestatīts modinātājs AM vai PM. Pēdējā poga tiek izmantota, lai izslēgtu modinātāja skaņu.
10. darbība:
2. Pirmā lieta, kas mums jādara, ir inicializēt mūsu mainīgo, kuru mēs izmantosim.
// Inicializējiet izmantojamos mainīgos stundā = 0; // Stunda pašreizējam laikam int minūti = 0; //
Pašreizējā laika minūte int sekundē = 0; // Otrais pašreizējam laikam
int stunda_a = 0; int // Stunda modinātāja laikam
minūte_a = 0; // Minūte modinātāja laikam
bool am_pm = false; // AM/PM pārslēgšanas karodziņš. False ir AM, True ir PM
bool am_pm_a = nepatiess; // AM/PM pārslēgšanas karodziņš trauksmei. False ir AM, True ir PM
int set_hr = 13; // Izmantojiet tapu 13, lai iestatītu stundu
int set_min = 12; // Izmantojiet tapu 12, lai iestatītu minūtes int
set_am_pm = 11; // Izmantojiet 11. tapu, lai iestatītu am/pm
int set_hr_a = 10; // Izmantojiet tapu 10, lai iestatītu modinātāja stundu int set_min_a = 9; // Izmantojiet tapu 9, lai iestatītu modinātāja minūti int set_am_pm_a = 8; // Izmantojiet tapu 8, lai iestatītu modinātāju am/pm
int runātājs = 7; // Piespraude, ko izmantot skaļrunimkluss = 6; // Piespraust, lai apturētu skaļruni
bool signalizācija = nepatiesa; // Atzīmējiet, lai pārslēgtos, lai saglabātu satraukumu
bool quieted = nepatiess; // Karogs, kas rāda klusumu, nav nospiests
int cur_time = 0; // Mainīgais pašreizējam laikam
int etime = 0; // Mainīgais laiks
11. darbība:
3. Tālāk mums ir jāiestata LCD ekrāns un jāpasaka lietotājam iestatīt pašreizējo laiku. Tā kā tas ir jādara tikai vienu reizi, mēs to darīsim iestatīšanas režīmā.
void setup () {
// LCD ekrāna iestatīšana
Sērijas sākums (9600); // Inicializēt seriālu ar 9600 baudām
Sērijas.rakstīt (17); // Ieslēdziet aizmugurējo apgaismojumu
Serial.write (24); // Ieslēdziet displeju ar kursoru un nemirgo
Serial.write (12); // Notīriet ekrānu
Serial.write (128); // Pārvietot kursoru uz augšējo kreiso stūri // Iestatīt pinModes pinMode (set_hr, IEEJA); 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 (skaļrunis, OUTPUT);
pinMode (kluss, INPUT);
// Ieslēdzot sākotnējo jaudu, ļaujiet lietotājam iestatīt pašreizējo laiku. Serial.print ("Iestatīt pašreizējo laiku"); kavēšanās (2000);
Serial.write (12);
printTimes ();
cur_time = milis (); // Saglabāt pašreizējo laiku}
12. solis:
4. Pēc tam cilpas režīmā mēs izsekojam laiku un lasām pogas statusu, lai redzētu, vai lietotājs iestata kādu no laikiem.
void loop () {
// Saglabājiet laiku
keepTime ();
// Pārbaudiet, vai ir pienācis laiks trauksmei!
if ((stunda == stunda_a && minūte == minūte_a &&! apklusināta) || modinātājs) {tonis (runātājs, 2000, 500); // izvada skaļrunī 2000 Hz skaņu 500 ms
kavēšanās (500); // Aizkavējiet 500 ms, ja (! Signalizācija) {// Ja modinātājs ir izslēgts, ieslēdziet to
}
}
// Ja lietotājs apklusina trauksmi, nospiežot klusuma pogu, pārtrauciet satraukt, ja (alarm &&! Quieted && digitalRead (kluss)) {
trauksme = nepatiesa;
apklusināts = taisnība; }
// Atiestatīt modinātāju, ja (! Alarm && quieted && minute! = Minute_a) {quieted = false;
}
// Pārbaudiet, vai iestatītās tapas ir augstas, un, ja tā, palieliniet atbilstošo vērtībuif (digitalRead (set_hr) && stunda <12) {
stunda ++;
printTimes ();
debounce ();
}
cits if (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
debounce ();
}
cits {}
if (digitalRead (set_min) && minute <59) {
minūti ++; printTimes ();
debounce ();
}
cits if (digitalRead (set_min) && minute == 59) {minute = 0;
printTimes ();
debounce ();
}
cits {} ja (digitalRead (set_am_pm) && am_pm) {
am_pm = nepatiess;
printTimes ();
debounce ();
}
cits if (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
debounce ();
}
cits {} ja (digitalRead (set_hr_a) && hour_a <12) {
stunda_a ++;
printTimes ();
debounce ();
}
cits if (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
debounce ();
}
else {} if (digitalRead (set_min_a) && minute_a <59) {
minute_a ++;
printTimes ();
debounce ();
}
citādi, ja (digitalRead (set_min) && minute_a == 59) {minute_a = 0;
printTimes ();
debounce ();
}
cits {} ja (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = nepatiess;
printTimes ();
debounce ();
}
else if (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
debounce ();
}
cits {}
}
13. darbība
5. Šeit jūs pamanīsit pāris manis izveidotās apakšprogrammas - debounce () un printTimes (). Debounce () tiek izmantots, lai pārliecinātos, ka pogas lasām tikai vienu reizi. Tā kā Arduino skenē tūkstošiem reižu sekundē, tas var domāt, ka poga tika nospiesta vairākas reizes, kad jūs to paredzējāt lasīt tikai vienu reizi. Debounce () iesaldēs programmu, līdz poga tiks atlaista. printTimes () atjaunina LCD ekrānu, bet, tā kā tās bija vairākas komandas, es tās vienu reizi ierakstīju un pēc tam varu izsaukt apakšprogrammu jebkurā laikā, kad mainās laika vērtība.
// Kamēr tiek nospiesta kāda no pogām, palieciet šajā funkcijā un aizkavējiet 250 ms.
void debounce () {
kamēr (digitalRead (set_hr) || digitalRead (set_min) ||
digitalRead (set_am_pm) || digitalRead (set_hr_a) ||
digitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} aizkave (250);
}
// Izdrukā atjauninātos laikus, ja ir kādas izmaiņas
void printTimes () {
Serial.write (12);
Serial.print ("Pašreizējais laiks:");
Sērijas.rakstīt (148);
ja (stunda <10) {
Serial.print ("0");
}
Sērijas nospiedums (stunda);
Serial.print (":");
ja (minūte <10) {
Sērijas nospiedums ("0");
}
Sērijas nospiedums (minūte); Sērijas nospiedums (":");
ja (otrais <10) {
Serial.print ("0");
}
Sērijas nospiedums (otrais);
ja (am_pm) {
Serial.print ("PM");
}
cits {
Serial.print ("AM");
}
Sērijas.rakstīt (168);
Serial.print ("Modinātāja komplekts:");
Sērijas.rakstīt (188);
ja (stunda_a <10) {
Serial.print ("0");
}
Sērijas nospiedums (stunda_a);
Serial.print (":");
ja (minute_a <10) {
Sērijas nospiedums ("0");
}
Serial.print (minute_a);
ja (am_pm_a) {
Serial.print ("PM");
}
cits {
Serial.print ("AM");
}
}
// Palieliniet laika parametrus
keepTime () {
etime = milis () - cur_time;
if (etime> = 1000 && sekunde <59) {
otrais ++;
cur_time = milis ();
printTimes ();
}
citādi, ja (etime> = 1000 && second == 59 && minute <59) {second = 0;
minūte ++;
cur_time = milis ();
printTimes ();
}
citādi, ja (etime> = 1000 && second == 59 && minute == 59 && hour <12) {
otrais = 0; minūte =
0; stunda ++; cur_time =
milis (); printTimes ();
}
citādi, ja (etime> = 1000 && second == 59 && minute == 59 && hour == 12) {
otrais = 0; minūte =
0; stunda = 1; am_pm =
! am_pm;
cur_time = milis ();
printTimes ();
}
cits {}
}
14. darbība:
6. Tā tas ir!
Apkopojiet un augšupielādējiet, un esat pabeidzis!
Ieteicams:
DIY modinātāja velosipēda bloķēšana (aktivizēts trieciens): 5 soļi (ar attēliem)
DIY modinātāja velosipēda slēdzene (aktivizēts trieciens): šajā projektā es jums parādīšu, kā izveidot vienkāršu trieciena aktivizētu trauksmes velosipēda slēdzeni. Kā norāda nosaukums, tas rada trauksmes signālu, kad velosipēds tiek pārvietots ar atļauju. Pa ceļam mēs uzzināsim mazliet par pjezoele
DIY modinātāja izgatavošana ar LCD tastatūras vairogu: 5 soļi
DIY modinātāja izgatavošana ar LCD tastatūras vairogu: Sveiki visi! Šajā pamācībā es jums parādīšu, kā izveidot modinātāju, izmantojot Arduino dēli. Šī pulksteņa veidošanai esmu izmantojis Arduino UNO, LCD tastatūras vairogu, 5V skaņas signālu un džemperu vadus. Displejā var redzēt laiku un iestatīt laiku
Kā izveidot modinātāja paklāju ar Arduino Mega: 9 soļi
Kā izveidot modinātāja paklāju ar Arduino Mega: Mums visiem ir tie rīti, kad mums ir grūtības izkļūt no gultas. Modinātājs turpina darboties, un mēs turpinām atlikt, līdz … ir par vēlu! Mēs esam nokavējuši tikšanos vai arī stunda jau ir sākusies. Lai palīdzētu cīnīties ar šo problēmu, esam izveidojuši
Arduino digitālais pulkstenis ar modinātāja funkciju (pielāgota PCB): 6 soļi (ar attēliem)
Arduino digitālais pulkstenis ar modinātāja funkciju (pielāgota PCB): šajā DIY rokasgrāmatā es parādīšu, kā padarīt šo modinātāja funkciju savu ciparu pulksteni. Šajā projektā es nolēmu izveidot savu PCB, kuras pamatā ir Arduino UNO mikrokontrolleris - Atmega328p. Zemāk jūs atradīsit elektronisko shēmu ar PCB l
Arduino modinātāja relejs: 6 soļi (ar attēliem)
Arduino modinātājpulksteņa relejs: Man ir daudz problēmu pamosties agri no rīta, it īpaši, ja pagājušajā naktī paliku augšā. Būtībā šis projekts ļauj jums atvērt releju laikā, kad iestatījāt, izmantojot tastatūru un lcd. Šis relejs var kontrolēt daudzas ierīces no ieslēgšanās