Բովանդակություն:
- Քայլ 1: Միացման հրահանգներ
- Քայլ 2:
- Քայլ 3:
- Քայլ 4:
- Քայլ 5:
- Քայլ 6:
- Քայլ 7:
- Քայլ 8:
- Քայլ 9: Programրագրավորման հրահանգներ
- Քայլ 10:
- Քայլ 11:
- Քայլ 12:
- Քայլ 13:
- Քայլ 14:
Video: Arduino rmարթուցիչ Projectրագիր. 14 քայլ
2024 Հեղինակ: John Day | [email protected]. Վերջին փոփոխված: 2024-01-30 09:47
Այս նախագծում մենք կօգտագործենք Arduino Uno- ն ՝ LCD էկրանը կառավարելու համար ՝ ցույց տալու համար ահազանգի դրված ընթացիկ ժամն ու ժամը: Մենք ամեն անգամ սահմանելու համար կօգտագործենք կոճակներ:
Նյութեր:
- Arduino Uno -
- Breadboard -
- Jumper Wires (x13+) -
- 10 կոմի դիմադրություն (x4) -
- LCD էկրան -
- 7 կոճակ-https://vilros.com/collections/raspberry-pi-acces…
- Պիեզո խոսնակ -
Քայլ 1: Միացման հրահանգներ
1. Arduino- ի 5V պինից մի jumper մետաղալար միացրեք հացահատիկի + ռելսերից մեկին:
Քայլ 2:
2. Arduino- ի GND պինից միացնող թել միացրեք երկաթուղու կողքին ձեր ընտրած + տախտակին դրված + երկաթուղու կողքին:
Քայլ 3:
3. LCD էկրանը միացրեք հոսանքին, գետնին և TX կապին (կապ 1):
Քայլ 4:
4. Տեղադրեք 7 կոճակ հացահատիկի վրա, իսկ ոտքերը ՝ տախտակի բացվածքի միջով:
Քայլ 5:
5. Տեղադրեք 10 կոմ դիմադրություն ռելսից `երկաթուղով, որի հետ միացված է GND կապը` կոճակների ներքևի ձախ կապումներին:
Քայլ 6:
6. Տեղադրեք ցատկող լարերը կոճակների ներքևի աջ քորոցի և 5 Վ ռելսերի միջև ձեր տախտակի վրա:
Քայլ 7:
7. Տեղադրեք jumper լարերը 6 կապում, այնուհետև 8-13, իսկ քորոցը կոճակի վրա, որին միացված է դիմադրությունը:
Քայլ 8:
8. Հաջորդը, տեղադրեք ձեր Piezo բարձրախոսը տախտակի վրա և միացրեք 7 -րդ կապը հոսանքի պինին, այնուհետև 100 օմ դիմադրություն գետնին:
Քայլ 9: Programրագրավորման հրահանգներ
1. Համառոտ նկարագիր. Այս նախագիծը օգտագործողից կպահանջի էկրանի սկզբնական միացման ընթացիկ ժամանակը սահմանել ընթացիկ ժամը և այն ժամը, որի համար ահազանգը սահմանված է: Վերևում միացված կոճակները կօգտագործվեն ամեն անգամ կարգավորելու համար: Ձախից աջ `դրանք սահմանվում են ընթացիկ ժամ, ընթացիկ րոպե, ընթացիկ AM կամ PM, զարթուցիչի ժամ, ահազանգի րոպե, AM կամ PM զարթուցիչ: Վերջին կոճակը օգտագործվում է տագնապը հնչեցնելու ժամանակ լռեցնելու համար:
Քայլ 10:
2. Առաջին բանը, որ մենք պետք է անենք, նախնականացնել մեր փոփոխականը, որը մենք պատրաստվում ենք օգտագործել:
// Օգտագործման ենթակա փոփոխականների նախաստորագրում ժամ = 0; // ընթացիկ ժամանակի ժամ int րոպե = 0; //
Րոպե ընթացիկ ժամանակի համար int վայրկյան = 0; // Երկրորդ ՝ ընթացիկ ժամանակի համար
int ժամ_ա = 0; int // alarmարթուցիչի ժամ
րոպե_ա = 0; // alarmարթուցիչի րոպե
bool am_pm = կեղծ; // AM/PM միացնել դրոշը: Սուտը AM է, ճշմարիտը ՝ PM
bool am_pm_a = կեղծ; // AM/PM միացրեք դրոշը ահազանգի համար: Սուտը AM է, ճշմարիտը ՝ PM
int set_hr = 13; // pinամը սահմանելու համար օգտագործեք կապ 13 -ը
int set_min = 12; // Օգտագործեք PIN 12 ՝ րոպեի int սահմանելու համար
set_am_pm = 11; // Առավոտ/երեկո սահմանելու համար օգտագործեք 11 -րդ կապը
int set_hr_a = 10; // pinարթուցիչի ժամ սահմանելու համար օգտագործեք 10 կապը int set_min_a = 9; // pinարթուցիչի րոպե սահմանելու համար օգտագործեք 9 -րդ կապը int set_am_pm_a = 8; // Օգտագործեք 8 -րդ կապը `ահազանգի համար առավոտ/երեկո սահմանելու համար
int խոսնակ = 7; // Ամրապնդել խոսափողի համար հանգիստ = 6; // Ամրացնել ՝ բարձրախոսին կանգնեցնելու համար
bool ահազանգ = կեղծ; // Դրոշ միացնելու/ անջատելու համար `ահազանգ պահելու համար
բոլ լռեց = կեղծ; // Հանգիստ ցուցադրող դրոշը սեղմված չէ
int cur_time = 0; // Փոփոխական ընթացիկ ժամանակի համար
int etime = 0; // Փոփոխական անցած ժամանակի համար
Քայլ 11:
3. Հաջորդը, մենք պետք է կարգավորենք LCD էկրանը և օգտագործողին ասենք, որ սահմանի ընթացիկ ժամանակը: Քանի որ դա պետք է արվի միայն մեկ անգամ, մենք դա կանենք կարգաբերման ռեժիմում:
void setup () {
// Կարգավորել LCD էկրան
Serial.begin (9600); // Սերիալի սկզբնավորում 9600 baud- ում
Սերիա. Գրել (17); // Միացրեք հետևի լույսը
Սերիա. Գրել (24); // Միացրեք էկրանը ՝ կուրսորը առանց թարթելու
Սերիա. Գրել (12); // Մաքրել էկրանը
Սերիա. Գրել (128); // Կուրսորը տեղափոխել վերին ձախ անկյուն // Սահմանել pinModes pinMode (set_hr, Մուտք); 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 (բարձրախոս, OUTPUT);
pinMode (հանգիստ, Մուտք);
// Սկզբնական հզորության դեպքում օգտագործողին տվեք ընթացիկ ժամանակը: Serial.print («Սահմանել ընթացիկ ժամը»); ուշացում (2000);
Սերիա. Գրել (12);
printTimes ();
cur_time = millis (); // Պահել ընթացիկ ժամը}
Քայլ 12:
4. Հետո, օղակի ռեժիմում, մենք հետևում ենք ժամանակին և կարդում ենք կոճակի կարգավիճակը ՝ տեսնելու համար, թե արդյոք օգտվողը կարգավորում է որևէ մեկը:
դատարկ շրջան () {
// Keepամանակ պահեք
KeepTime ();
// Ստուգեք `ահազանգելու ժամանակն է:
եթե ((ժամ == ժամ_ա && րոպե == րոպե_ա &&! լռեց) || ահազանգ) {տոն (խոսնակ, 2000, 500); // Ելք թողեք 2000 Հց ձայն բարձրախոսին 500 ms- ի համար
ուշացում (500); // Հետաձգեք 500 ms եթե (! Ահազանգ) {// Եթե ահազանգն անջատված է, միացրեք այն
}
}
// Եթե օգտվողը լռեցնում է ահազանգը `սեղմելով հանգիստ կոճակը, դադարեցրեք տագնապը, եթե (ահազանգ &&! Հանգիստ && digitalRead (հանգիստ)) {
ահազանգ = կեղծ;
լռեց = ճշմարիտ; }
// Վերագործարկեք ահազանգը, եթե (! Alarm && bêdeng && րոպե! = Minute_a) {bêdengեց = կեղծ;
}
// Ստուգեք ՝ տեսնելու, թե արդյոք տեղադրված քորոցները բարձր են, և եթե այո, ավելացրեք համապատասխան արժեքը, եթե (digitalRead (set_hr) && ժամ <12) {
ժամ ++;
printTimes ();
դեբոնս ();
}
այլապես եթե (digitalRead (set_hr) && ժամ == 12) {ժամ = 1;
printTimes ();
դեբունս ();
}
ուրիշ {}
եթե (digitalRead (set_min) && րոպե <59) {
րոպե ++; printTimes ();
դեբոնս ();
}
այլապես եթե (digitalRead (set_min) && րոպե == 59) {րոպե = 0;
printTimes ();
դեբոնս ();
}
այլ {} եթե (digitalRead (set_am_pm) && am_pm) {
am_pm = կեղծ;
printTimes ();
դեբոնս ();
}
այլապես եթե (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
դեբունս ();
}
այլ {} եթե (digitalRead (set_hr_a) && hour_a <12) {
ժամ_ա ++;
printTimes ();
դեբունս ();
}
այլապես եթե (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
դեբոնս ();
}
այլ {} եթե (digitalRead (set_min_a) && minute_a <59) {
րոպե_ա ++;
printTimes ();
դեբոնս ();
}
այլապես եթե (digitalRead (set_min) && minute_a == 59) {minute_a = 0;
printTimes ();
դեբոնս ();
}
այլ {} եթե (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = կեղծ;
printTimes ();
դեբոնս ();
}
այլապես, եթե (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
դեբոնս ();
}
ուրիշ {}
}
Քայլ 13:
5. Այստեղ դուք կնկատեք իմ ստեղծած մի քանի ենթածրագրեր ՝ debounce () և printTimes (): Debounce () - ն օգտագործվում է համոզվելու համար, որ մենք միայն մեկ անգամ ենք կարդում կոճակները: Քանի որ Arduino- ն վայրկյանում հազարավոր անգամներ է սկանավորում, կարող է մտածել, որ կոճակը մի քանի անգամ սեղմվել է, երբ դու միայն մեկ անգամ կարդալու մտադրություն ունեիր: Debounce () ծրագիրը կսառեցնի մինչև կոճակը բացվի: printTimes () թարմացնում է LCD էկրանը, բայց քանի որ դա մի քանի հրաման էր, ես դրանք մեկ անգամ մուտքագրեցի, այնուհետև ցանկացած ժամանակի արժեքի փոփոխության դեպքում կարող եմ զանգահարել ենթածրագրին:
// Մինչև որևէ կոճակ սեղմվում է, մնացեք այս գործառույթում, ապա հետաձգեք 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)) {} ուշացում (250);
}
// Տպում է թարմացված ժամանակները, եթե կան փոփոխություններ
void printTimes () {
Սերիա. Գրել (12);
Serial.print ("Ընթացիկ ժամանակը.");
Սերիա. Գրել (148);
եթե (ժամ <10) {
Serial.print ("0");
}
Serial.print (ժամ);
Serial.print (":");
եթե (րոպե <10) {
Serial.print ("0");
}
Serial.print (րոպե); Serial.print (":");
եթե (երկրորդ <10) {
Serial.print ("0");
}
Serial.print (երկրորդ);
եթե (am_pm) {
Serial.print («PM»);
}
ուրիշ {
Serial.print («AM»);
}
Սերիա. Գրել (168);
Serial.print («rmարթուցիչի համար սահմանված է»);
Սերիա. Գրել (188);
եթե (ժամ_ա <10) {
Serial.print ("0");
}
Serial.print (hour_a);
Serial.print (":");
եթե (րոպե_ա <10) {
Serial.print ("0");
}
Serial.print (րոպե_ա);
եթե (am_pm_a) {
Serial.print («PM»);
}
ուրիշ {
Serial.print («AM»);
}
}
// parametersամանակի պարամետրերի դատարկության բարձրացում
KeepTime () {
etime = millis () - cur_time;
եթե (etime> = 1000 && երկրորդ <59) {
երկրորդ ++;
cur_time = millis ();
printTimes ();
}
այլապես եթե (etime> = 1000 && երկրորդ == 59 && րոպե <59) {երկրորդ = 0;
րոպե ++;
cur_time = millis ();
printTimes ();
}
այլապես, եթե (etime> = 1000 && երկրորդ == 59 && րոպե == 59 && ժամ <12) {
երկրորդ = 0; րոպե =
0; ժամ ++; cur_time =
millis (); printTimes ();
}
այլապես, եթե (etime> = 1000 && երկրորդ == 59 && րոպե == 59 && ժամ == 12) {
երկրորդ = 0; րոպե =
0; ժամ = 1; am_pm =
! am_pm;
cur_time = millis ();
printTimes ();
}
ուրիշ {}
}
Քայլ 14:
6. Դա այն է!
Կազմեք և վերբեռնեք, և ամեն ինչ ավարտված է:
Խորհուրդ ենք տալիս:
Arduino rmարթուցիչ ՝ ջերմաստիճանի տվիչով ՝ 5 քայլ
Arduino rmարթուցիչ ՝ ջերմաստիճանի տվիչով. Arduino- ն շատ հեշտ և էժան միկրոհսկիչ է: և հեշտ է վերահսկել այն: Այսպիսով, ինչ եք ակնկալում այս նախագծում … մենք կօգտագործենք RTC- ի այնքան ճշգրիտ ժամային պարամետրեր, որոնք բավական բարձր են, որպեսզի արթնացնեն ձեր սենյակի ջերմաստիճանը, եթե ցանկանում եք դիտել տեսանյութի կտտոց
Arduino Sound Sensor rmարթուցիչ `5 քայլ
Arduino Sound Sensor Alarm: Այս ձեռնարկը նպատակ ունի կառուցել ազդանշան ձայնի տվիչի հիման վրա `օգտագործելով Arduino- ն:
Ինչպես ստեղծել «rmարթուցիչ» Arduino Mega- ի միջոցով. 9 քայլ
Ինչպես ստեղծել «Տագնապի գորգ» Arduino Mega- ի հետ. Մենք բոլորս ունենում ենք այն առավոտները, որտեղ մենք դժվարանում ենք անկողնուց վեր կենալ: Alarmարթուցիչը շարունակվում է Մենք բաց ենք թողել հանդիպումը, կամ դասը արդեն սկսվել է: Այս խնդրի դեմ պայքարելու համար մենք ստեղծել ենք
Projectրագիր 2, LED լուսավորություն ՝ 3 քայլ
2րագիր 2, LED լուսավորություն. Այս նախագծում դուք կսովորեք, թե ինչպես վերահսկել լուսադիոդի պայծառությունը պոտենցիոմետրով: Այս նախագծում ձեզ կսովորեցնեն analogWrite, analogRead և int գործառույթի օգտագործումը: Հուսով եմ, որ այն ձեզ դուր կգա, և հիշեք, որ ստուգեք նախապատմությունը
Projectրագիր 2 - Fish Tank Monitor: 5 Steps
Նախագիծ 2 - Fish Tank Monitor. Այս ծրագրի համար մենք կստեղծենք ձկան տանկի մոնիտորինգի ծրագիր `օգտագործելով Arduino միկրո վերահսկիչ: Մասնավորապես, նախագծի համար մեզ պետք կլինեն այս կտորները ՝ 1 Arduino Micro Controller1 Full Size Breadboard1 Water Leveler Sensor1 LCD Screen1 Simpl