Სარჩევი:
- ნაბიჯი 1: დაკავშირების ინსტრუქცია
- ნაბიჯი 2:
- ნაბიჯი 3:
- ნაბიჯი 4:
- ნაბიჯი 5:
- ნაბიჯი 6:
- ნაბიჯი 7:
- ნაბიჯი 8:
- ნაბიჯი 9: პროგრამირების ინსტრუქციები
- ნაბიჯი 10:
- ნაბიჯი 11:
- ნაბიჯი 12:
- ნაბიჯი 13:
- ნაბიჯი 14:
ვიდეო: Arduino მაღვიძარა პროექტი: 14 ნაბიჯი
2024 ავტორი: John Day | [email protected]. ბოლოს შეცვლილი: 2024-01-30 10:17
ამ პროექტში ჩვენ გამოვიყენებთ Arduino Uno– ს LCD ეკრანის გასაკონტროლებლად, რათა ნახოთ მიმდინარე დრო და დრო, რომლისთვისაც განგაშია დაყენებული. ჩვენ გამოვიყენებთ ღილაკებს ყოველ ჯერზე დასაყენებლად.
მასალები:
- Arduino Uno -
- პურის დაფა -
- Jumper Wires (x13+) -
- 10 კომის რეზისტორი (x4) -
- LCD ეკრანი -
- 7 ღილაკი-https://vilros.com/collections/raspberry-pi-acces…
- პიეზო სპიკერი -
ნაბიჯი 1: დაკავშირების ინსტრუქცია
1. შეაერთეთ ჯუმბერის მავთული არდუინოს 5V პინიდან პურის დაფაზე ერთ + რელსზე.
ნაბიჯი 2:
2. შეაერთეთ ჯამპერის მავთული არდუინოს GND პინიდან რკინიგზით + სარკინიგზო მაგისტრალის გვერდით, რომელიც თქვენ შეარჩიეთ პურის დაფაზე.
ნაბიჯი 3:
3. შეაერთეთ LCD ეკრანი დენის, მიწისა და TX პინის (პინი 1).
ნაბიჯი 4:
4. მოათავსეთ 7 ღილაკი პურის დაფაზე, ხოლო ფეხები გადააჭარბეთ პურის დაფაზე არსებულ უფსკრულს.
ნაბიჯი 5:
5. მოათავსეთ 10 კომის რეზისტორი რკინიგზადან - სარკინიგზო მაგისტრალური GND პინით, რომელიც დაკავშირებულია ღილაკების ქვედა მარცხენა ქინძისთავებთან.
ნაბიჯი 6:
6. მოათავსეთ ჯუმბერის მავთულები ღილაკების ქვედა მარჯვენა პინსა და 5V სარკინიგზო ხაზს შორის თქვენს დაფაზე.
ნაბიჯი 7:
7. მოათავსეთ ჯუმბერის მავთულები ქინძისთავებს შორის 6, შემდეგ 8-13 და პინი ღილაკზე, რომელსაც რეზისტორი უკავშირდება.
ნაბიჯი 8:
8. შემდეგი, მოათავსეთ თქვენი Piezo სპიკერი პურის დაფაზე და დაუკავშირეთ pin 7 დენის კავშირს, შემდეგ 100 ოჰმიანი რეზისტორი მიწასთან.
ნაბიჯი 9: პროგრამირების ინსტრუქციები
1. მიმოხილვა: ეს პროექტი სთხოვს მომხმარებელს დააყენოს მიმდინარე დრო ეკრანზე საწყის ენერგიაზე მიმდინარე დრო და დრო, რომლისთვისაც განგაშია დაყენებული. ზემოთ დაკავშირებული ღილაკები გამოყენებული იქნება ყოველ ჯერზე დასაყენებლად. მარცხნიდან მარჯვნივ, მათ აქვთ მითითებული მიმდინარე საათი, მითითებული მიმდინარე წუთი, მითითებული მიმდინარე AM ან PM, მაღვიძარა, საათის მაღვიძარა, მაღვიძარა AM ან PM. ბოლო ღილაკი გამოიყენება სიგნალის გასაჩუმებლად, როდესაც ის ჟღერს.
ნაბიჯი 10:
2. პირველი რაც ჩვენ უნდა გავაკეთოთ არის ჩვენი ცვლადის ინიციალიზაცია, რომელსაც ჩვენ გამოვიყენებთ.
// ცვლადების ინიციალიზაცია გამოსაყენებლად საათში = 0; // საათი მიმდინარე დრო int წუთი = 0; //
წუთი მიმდინარე დრო int მეორე = 0; // მეორე მიმდინარე დროისთვის
int საათი_ა = 0; int // საათი მაღვიძარაზე
წუთი_ა = 0; // სიგნალიზაციის დრო
bool am_pm = ყალბი; // AM/PM დროშის გადართვა. ყალბი არის AM, მართალია PM
bool am_pm_a = ყალბი; // AM/PM დროშის გადართვა განგაშისათვის. ყალბი არის AM, მართალია PM
int set_hr = 13; // საათის დასაყენებლად გამოიყენეთ პინი 13
int set_min = 12; // გამოიყენეთ pin 12 წუთში int- ის დასაყენებლად
set_am_pm = 11; // გამოიყენეთ pin 11 დილის/საღამოს დასაყენებლად
int set_hr_a = 10; // გამოიყენეთ pin 10 განგაშის საათის დასაყენებლად int set_min_a = 9; // გამოიყენეთ pin 9 მაღვიძარას წუთის დასაყენებლად int set_am_pm_a = 8; // გამოიყენეთ pin 8 დილის/საღამოს სიგნალიზაციის დასაყენებლად
int სპიკერი = 7; // ჩამაგრება, რათა გამოიყენოთ speakerint მშვიდი = 6; // ჩაამაგრეთ სპიკერის შესაჩერებლად
bool განგაში = ყალბი; // დროშის გადართვა განგაშის შესანარჩუნებლად
ბოლი გაჩუმდა = ყალბი; // მშვიდი დროშის ჩვენება არ არის დაჭერილი
int cur_time = 0; // ცვლადი მიმდინარე დროისათვის
int etime = 0; // ცვლადი გასული დროის განმავლობაში
ნაბიჯი 11:
3. შემდეგი, ჩვენ უნდა დავაყენოთ LCD ეკრანი და ვუთხრათ მომხმარებელს დააყენოს მიმდინარე დრო. ვინაიდან ეს მხოლოდ ერთხელ უნდა გაკეთდეს, ჩვენ ამას გავაკეთებთ დაყენების რუტინაში.
void setup () {
// LCD ეკრანის დაყენება
სერიული.დაწყება (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 (მშვიდი, INPUT);
// საწყის ენერგიაზე, მომხმარებლისთვის დააყენეთ მიმდინარე დრო. Serial.print ("მიმდინარე დროის დაყენება"); დაგვიანება (2000);
სერიული. დაწერე (12);
printTimes ();
cur_time = მილი (); // შეინახეთ მიმდინარე დრო}
ნაბიჯი 12:
4. შემდეგ, მარყუჟის რუტინაში, ჩვენ თვალყურს ვადევნებთ დროს და ვკითხულობთ ღილაკის სტატუსს, რომ ნახოთ არის თუ არა მომხმარებელი მითითებული რომელიმე დროს.
ბათილი მარყუჟი () {
// შეინახეთ დრო
KeepTime ();
// შეამოწმეთ დროა განგაშის დრო იყოს!
თუ ((საათი == საათი_ა && წუთი == წუთი_ა &&! ჩუმად) || განგაში) {ტონი (სპიკერი, 2000, 500); // გამოსცეს 2000 Hz ხმა დინამიკს 500 ms
დაგვიანება (500); // დააგვიანეთ 500 ms, თუ (! განგაში) {// თუ მაღვიძარა გამორთულია, ჩართეთ იგი
}
}
// თუ მომხმარებელი გააჩუმებს სიგნალს მშვიდი ღილაკის დაჭერით, შეწყვიტეთ განგაში, თუ (სიგნალი &&! ჩუმად && digitalRead (მშვიდი)) {
განგაში = ყალბი;
გაჩუმდა = მართალია; }
// აღადგინეთ განგაში, თუ (! სიგნალი && ჩუმდება && წუთი! = წუთი_ა) {ჩუმდება = ყალბი;
}
// შეამოწმეთ თუ არა მითითებული ქინძისთავები მაღალი და თუ ასეა, გაზარდეთ შესაბამისი მნიშვნელობა თუ (digitalRead (set_hr) && საათი <12) {
საათი ++;
printTimes ();
დებუნსი ();
}
else if (digitalRead (set_hr) && საათი == 12) {საათი = 1;
printTimes ();
დებუნსი ();
}
სხვა {}
თუ (digitalRead (set_min) && წუთი <59) {
წუთი ++; printTimes ();
დებუნსი ();
}
else if (digitalRead (set_min) && წუთი == 59) {წუთი = 0;
printTimes ();
დებუნსი ();
}
სხვა {} თუ (digitalRead (set_am_pm) && am_pm) {
am_pm = ყალბი;
printTimes ();
დებუნსი ();
}
else if (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
დებუნსი ();
}
სხვა {} if (digitalRead (set_hr_a) && hour_a <12) {
საათი_ა ++;
printTimes ();
დებუნსი ();
}
else if (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
დებუნსი ();
}
სხვა {} თუ (digitalRead (set_min_a) && minute_a <59) {
წუთი_ა ++;
printTimes ();
დებუნსი ();
}
else if (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 () გამოიყენება იმისათვის, რომ დავრწმუნდეთ, რომ ჩვენ მხოლოდ ერთხელ ვკითხულობთ ღილაკებს. მას შემდეგ, რაც არდუინო წამში ათასობითჯერ სკანირებს, შეიძლება ფიქრობდეს, რომ ღილაკი რამდენჯერმეა დაჭერილი, როდესაც თქვენ მხოლოდ ერთხელ აპირებთ მის წაკითხვას. Debounce () გაყინავს პროგრამას ღილაკის გამოშვებამდე. printTimes () აახლებს LCD ეკრანს, მაგრამ ვინაიდან ეს იყო რამდენიმე ბრძანება, მე ერთხელ ავკრიფე ისინი და შემდეგ შემიძლია გამოვიძახო ქვეჯგუფში ნებისმიერ დროს, როცა დროის მნიშვნელობა იცვლება.
// სანამ რომელიმე ღილაკს იჭერს, დარჩით ამ ფუნქციაში, შემდეგ გადადეთ 250 ms.
void debounce () {
ხოლო (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 (":");
თუ (წუთი <10) {
Serial.print ("0");
}
Serial.print (წუთი); Serial.print (":");
თუ (მეორე <10) {
Serial.print ("0");
}
სერიული. ბეჭდვა (მეორე);
თუ (am_pm) {
Serial.print ("PM");
}
სხვა {
Serial.print ("AM");
}
სერიული. დაწერეთ (168);
Serial.print ("მაღვიძარა დაყენებულია:");
სერიული. დაწერა (188);
თუ (საათი_ა <10) {
Serial.print ("0");
}
სერიული. ბეჭდვა (საათი_ა);
Serial.print (":");
თუ (წუთი_ა <10) {
Serial.print ("0");
}
სერიული. ბეჭდვა (წუთი_ა);
თუ (am_pm_a) {
Serial.print ("PM");
}
სხვა {
Serial.print ("AM");
}
}
// დროის პარამეტრების ბათილად გაზრდა
KeepTime () {
ეტიმე = მილი () - cur_time;
if (etime> = 1000 && მეორე <59) {
მეორე ++;
cur_time = მილი ();
printTimes ();
}
else if (etime> = 1000 && მეორე == 59 && წუთი <59) {მეორე = 0;
წუთი ++;
cur_time = მილი ();
printTimes ();
}
სხვა შემთხვევაში (etime> = 1000 && მეორე == 59 && წუთი == 59 && საათი <12) {
მეორე = 0; წუთი =
0; საათი ++; cur_time =
მილილი (); printTimes ();
}
სხვა შემთხვევაში (etime> = 1000 && მეორე == 59 && წუთი == 59 && საათი == 12) {
მეორე = 0; წუთი =
0; საათი = 1; am_pm =
!შუადღემდე შუაღამემდე;
cur_time = მილი ();
printTimes ();
}
სხვა {}
}
ნაბიჯი 14:
6. ეს არის ის!
შეადგინეთ და ატვირთეთ და ყველაფერი დასრულებულია!
გირჩევთ:
ჭკვიანი მაღვიძარა Magicbit– ის გამოყენებით (Arduino): 10 ნაბიჯი
ჭკვიანი მაღვიძარა Magicbit– ის გამოყენებით (Arduino): ეს სახელმძღვანელო გვიჩვენებს, თუ როგორ უნდა გააკეთოთ ჭკვიანი მაღვიძარა OLED ეკრანის გამოყენებით Magicbit dev დაფაზე RTC მოდულის გამოყენების გარეშე
ჭკვიანი მაღვიძარა: გონიანი მაღვიძარა დამზადებულია ჟოლოს პი: 10 ნაბიჯი (სურათებით)
ჭკვიანი მაღვიძარა: ჭკვიანი მაღვიძარა დამზადებულია ჟოლოს პი: ოდესმე გსურდათ ჭკვიანი საათი? თუ ასეა, ეს არის თქვენთვის გამოსავალი! მე გავაკეთე სმარტ მაღვიძარა, ეს არის საათი, რომლის საშუალებითაც შეგიძლიათ შეცვალოთ განგაშის დრო ვებგვერდის მიხედვით. როდესაც მაღვიძარა ითიშება, იქნება ხმა (ზუზუნი) და 2 შუქი
10 ძირითადი არდუინოს პროექტი დამწყებთათვის! გააკეთეთ მინიმუმ 15 პროექტი ერთი დაფით!: 6 ნაბიჯი
10 ძირითადი არდუინოს პროექტი დამწყებთათვის! გააკეთეთ მინიმუმ 15 პროექტი ერთი დაფით!: Arduino პროექტი & სამეურვეო საბჭო; მოიცავს Arduino– ს 10 ძირითად პროექტს. ყველა კოდის კოდი, გერბერის ფაილი და სხვა. SMD არ არის! მარტივი შედუღება ყველასთვის. ადვილად მოსახსნელი და შესაცვლელი კომპონენტები. თქვენ შეგიძლიათ გააკეთოთ მინიმუმ 15 პროექტი ერთი პროგრამით
USB დამწვრობა! ეს პროექტი შეიძლება დაიწვას პლასტმასის / ხის / ქაღალდის საშუალებით (სახალისო პროექტი ასევე უნდა იყოს ძალიან წვრილი ხე): 3 ნაბიჯი
USB დამწვრობა! ეს პროექტი შეიძლება დაიწვას პლასტმასის / ხის / ქაღალდის საშუალებით (სახალისო პროექტი ასევე უნდა იყოს ძალიან წვრილი ხე): არ გააკეთოთ ეს USB– ის გამოყენებით !!!! აღმოვაჩინე, რომ მას შეუძლია დააზიანოს თქვენი კომპიუტერი ყველა კომენტარიდან. ჩემი კომპიუტერი კარგადაა გამოიყენეთ 600ma 5v ტელეფონის დამტენი. მე გამოვიყენე ეს და ის მშვენივრად მუშაობს და არაფერი შეიძლება დაზიანდეს, თუ თქვენ იყენებთ უსაფრთხოების შტეფსელს ელექტროენერგიის შესაჩერებლად
LED მზის ამოსვლის მაღვიძარა დააკონფიგურიროთ სიმღერის მაღვიძარა: 7 ნაბიჯი (სურათებით)
LED მზის ამოსვლის მაღვიძარა დასაკონფიგურირებელი სიმღერის სიგნალიზაციით: ჩემი მოტივაცია ამ ზამთარს ჩემს შეყვარებულს დილის გაღვიძებისთანავე ბევრი უბედურება ჰქონდა და თითქოს სნეულებას განიცდიდა (სეზონური აფექტური აშლილობა). მე კი ვამჩნევ, რამდენად რთულია ზამთარში გაღვიძება, რადგან მზე არ ამოდის