ዝርዝር ሁኔታ:
- ደረጃ 1: የማቆሚያ መመሪያዎች
- ደረጃ 2
- ደረጃ 3
- ደረጃ 4
- ደረጃ 5
- ደረጃ 6
- ደረጃ 7
- ደረጃ 8
- ደረጃ 9 የፕሮግራም መመሪያዎች
- ደረጃ 10
- ደረጃ 11
- ደረጃ 12
- ደረጃ 13
- ደረጃ 14
ቪዲዮ: የአርዱዲኖ የማንቂያ ሰዓት ፕሮጀክት 14 ደረጃዎች
2024 ደራሲ ደራሲ: John Day | [email protected]. ለመጨረሻ ጊዜ የተሻሻለው: 2024-01-30 07:31
በዚህ ፕሮጀክት ውስጥ የማንቂያ ደወል የተቀመጠበትን የአሁኑን ሰዓት እና ሰዓት ለማሳየት የኤልዲሲ ማያ ገጽን ለመቆጣጠር አርዱዲኖ ኡኖን እንጠቀማለን። እያንዳንዱን ጊዜ ለማዘጋጀት አዝራሮችን እንጠቀማለን።
ቁሳቁሶች
- አርዱዲኖ ኡኖ -
- የዳቦ ሰሌዳ -
- የጁምፐር ሽቦዎች (x13+) -
- 10 kohm resistors (x4) -
- ኤልሲዲ ማያ ገጽ -
- 7 አዝራሮች-https://vilros.com/collections/raspberry-pi-acces…
- ፒዬዞ ተናጋሪ -
ደረጃ 1: የማቆሚያ መመሪያዎች
1. በአርዱዲኖ ላይ ካለው 5 ቮ ፒን የመዝለያ ሽቦን በዳቦ ሰሌዳው ላይ ካሉት + ሐዲዶች አንዱን ያገናኙ።
ደረጃ 2
2. በአርዱዲኖ ላይ ካለው የ GND ፒን የመዝለያ ሽቦን ወደ - በዳቦ ሰሌዳው ላይ ከመረጡት + የባቡር ሐዲድ ጋር ያገናኙ።
ደረጃ 3
3. ኤልሲዲ ማያውን ከኃይል ፣ ከመሬት እና ከ TX ፒን (ፒን 1) ጋር ያገናኙ።
ደረጃ 4
4. በዳቦ ሰሌዳው ላይ ባለው ክፍተት በኩል እግሮቹ ላይ 7 አዝራሮችን በዳቦ ሰሌዳው ላይ ያስቀምጡ።
ደረጃ 5
5. 10 kohm resistors ን ከ - የ GND ፒን ጋር በማገናኘት ከአዝራሮቹ ታችኛው ግራ ካስማዎች ያስቀምጡ።
ደረጃ 6
6. በአዝራሮቹ ታችኛው ቀኝ ጥግ እና በ 5 ቪ ባቡር መካከል የዳቦ ሰሌዳዎን ላይ የጃምፐር ሽቦዎችን ያስቀምጡ።
ደረጃ 7
7. የዝላይ ሽቦዎችን በፒን 6 ፣ ከዚያ 8-13 ፣ እና ተከላካዩ በተገናኘበት ቁልፍ ላይ ያለውን ፒን ያስቀምጡ።
ደረጃ 8
8. በመቀጠልም የፒዮዞ ድምጽ ማጉያዎን በዳቦ ሰሌዳው ላይ ያስቀምጡ እና ፒን 7 ን ከኃይል ፒን ጋር ያገናኙ ፣ ከዚያ 100 ohm resistor ን መሬት ላይ ያገናኙ።
ደረጃ 9 የፕሮግራም መመሪያዎች
1. አጠቃላይ እይታ - ይህ ፕሮጀክት ተጠቃሚው የአሁኑን ሰዓት በማሳያው ላይ በመነሻ ኃይል ላይ የአሁኑን ሰዓት እና ማንቂያው የሚዘጋጅበትን ሰዓት እንዲያዘጋጅ ይጠይቃል። ከላይ የተገናኙት አዝራሮች እያንዳንዱን ጊዜ ለማዘጋጀት ጥቅም ላይ ይውላሉ። ከግራ ወደ ቀኝ የአሁኑ ሰዓት ተዘጋጅተዋል ፣ የአሁኑን ሰዓት ያዘጋጁ ፣ የአሁኑን AM ወይም PM ያዘጋጁ ፣ የማንቂያ ሰዓት ያዘጋጁ ፣ የማንቂያ ደቂቃን ያዘጋጁ ፣ ማንቂያ AM ወይም PM ን ያዋቅሩ። የመጨረሻው አዝራር ማንቂያውን ሲጮህ ዝም ለማለት ያገለግላል።
ደረጃ 10
2. መጀመሪያ ማድረግ ያለብን የምንጠቀመውን የእኛን ተለዋዋጭ ማስጀመር ነው።
// ተለዋዋጮችን በአንድ ሰዓት = 0 እንዲጠቀሙ ያስጀምሩ። // ሰዓት ለአሁኑ ሰዓት int ደቂቃ = 0; //
ለአሁኑ ሰዓት int ሰከንድ = 0; // ለአሁኑ ጊዜ ሁለተኛ
int hour_a = 0; int // ለማንቂያ ጊዜ ሰዓት
ደቂቃ_አ = 0; // ለማንቂያ ጊዜ ደቂቃ
bool am_pm = ሐሰት; // AM/PM ሰንደቅ ዓላማ ይቀያይሩ። ውሸት AM ፣ እውነት ጠቅላይ ሚኒስትር ነው
bool am_pm_a = ሐሰት; // AM/PM ለማንቂያ ደውል ባንዲራ ይቀይሩ። ውሸት AM ፣ እውነት ጠቅላይ ሚኒስትር ነው
int set_hr = 13; // ሰዓት ለማዘጋጀት ፒን 13 ን ይጠቀሙ
int set_min = 12; // ደቂቃን ለማዘጋጀት ፒን 12 ን ይጠቀሙ
set_am_pm = 11; // ጥዋት/ሰዓት ለማዘጋጀት ፒን 11 ን ይጠቀሙ
int set_hr_a = 10; // ለማንቂያ ሰዓት ሰዓት ለማዘጋጀት ፒን 10 ን ይጠቀሙ set_min_a = 9; // ለደወል int set_am_pm_a = 8 ደቂቃን ለማዘጋጀት ፒን 9 ን ይጠቀሙ። // ለማንቂያ/ጥዋት ጥዋት ጥዋት/ፒን 8 ን ይጠቀሙ
int ተናጋሪ = 7; // ለንግግር ህትመት ጸጥታ = 6 ን ለመጠቀም ፒን; // ተናጋሪውን ለማቆም ይሰኩ
bool ማንቂያ = ሐሰት; / አስደንጋጭ ሆኖ ለመቀየር ለመቀየር ይጠቁሙ
bool ጸጥታ = ሐሰት; // ጸጥታን የሚያሳይ ሰንደቅ አልተጫነም
int cur_time = 0; // ለአሁኑ ጊዜ ተለዋዋጭ
int etime = 0; // ያለፈው ጊዜ ተለዋዋጭ
ደረጃ 11
3. በመቀጠል የኤልሲዲ ማያ ገጹን ማዘጋጀት እና ለተጠቃሚው የአሁኑን ሰዓት እንዲያዘጋጅ መንገር አለብን። ይህ አንድ ጊዜ ብቻ መደረግ ስላለበት ፣ በማዋቀሪያ አሠራሩ ውስጥ እናደርገዋለን።
ባዶነት ማዋቀር () {
// የ LCD ማያ ገጽ ያዘጋጁ
Serial.begin (9600); // ተከታታይን በ 9600 ባውድ ያስጀምሩ
Serial.write (17); // የጀርባውን ብርሃን ያብሩ
Serial.write (24); // ጠቋሚው እና ብልጭ ድርግም ባለበት ማሳያውን ያብሩ
Serial.write (12); // ማያ ገጹን ያፅዱ
Serial.write (128); // ጠቋሚውን ወደ ላይኛው ግራ ጥግ ያንቀሳቅሱ // የፒን ሞዶች ፒን ሞዶን ያዘጋጁ (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 (ድምጽ ማጉያ ፣ መውጫ);
pinMode (ጸጥ ያለ ፣ ግቤት);
// በመነሻ ኃይል ላይ ተጠቃሚው የአሁኑን ሰዓት እንዲያዘጋጅ ያድርጉ። Serial.print ("የአሁኑን ሰዓት ያዘጋጁ"); መዘግየት (2000);
Serial.write (12);
printTimes ();
cur_time = ሚሊስ (); // የአሁኑን ጊዜ ያከማቹ}
ደረጃ 12
4. ከዚያ ፣ በሉፕ አሠራሩ ውስጥ ፣ እኛ ጊዜውን እንከታተላለን እና ተጠቃሚው የትኛውንም ጊዜ እያዋቀረ መሆኑን ለማየት የአዝራሩን ሁኔታ እናነባለን።
ባዶነት loop () {
// ጊዜን ይቆጥቡ
keepTime ();
// የማንቂያ ደወል ጊዜው ከሆነ ለማየት ይፈትሹ!
ከሆነ ((ሰዓት == hour_a && ደቂቃ == ደቂቃ_አ &&!! ጸጥ ያለ) || ማንቂያ) {ቶን (ተናጋሪ ፣ 2000 ፣ 500); // የ 2000 Hz ድምጽ ለድምጽ ማጉያው ለ 500 ሚ.ሜ ያውጡ
መዘግየት (500); // (! ማንቂያ) ከሆነ {/ 500 ማንቂያ/ መዘግየት {// ማንቂያ ከጠፋ ያብሩት
}
}
// ተጠቃሚው ጸጥ ያለ ቁልፍን በመጫን ማንቂያውን ዝም ካሰኘ ((ማንቂያ &&! ጸጥ & ዲጂታል አንብብ (ጸጥ)) {
ማንቂያ = ሐሰት;
ጸጥ ብሏል = እውነት; }
// ማንቂያውን ዳግም ያስጀምሩ (!
}
// የተቀመጡት ፒኖች ወደ ላይ ከፍ ካሉ ለማየት ይፈትሹ ፣ እና እንደዚያ ከሆነ ተጓዳኙን እሴት (ዲጂታል አንብብ (set_hr) && ሰዓት <12) {)
ሰዓት ++;
printTimes ();
ማረም ();
}
ሌላ ከሆነ (digitalRead (set_hr) && hour == 12) {ሰዓት = 1;
printTimes ();
ማረም ();
}
ሌላ {}
ከሆነ (digitalRead (set_min) && minute <59) {
ደቂቃ ++ ፤ printTimes ();
ማረም ();
}
ሌላ ከሆነ (digitalRead (set_min) && minute == 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 () አዝራሮቹን አንድ ጊዜ ብቻ እንዳነበብን ለማረጋገጥ ጥቅም ላይ ይውላል። አርዱዲኖ በሺዎች የሚቆጠሩ ጊዜዎችን በሰከንድ ስለሚቃኝ ፣ አንድ ጊዜ ብቻ እንዲያነቡት ባሰቡበት ጊዜ አዝራሩ ብዙ ጊዜ ተጭኖ ነበር ብሎ ሊያስብ ይችላል። Debounce () አዝራሩ እስኪወጣ ድረስ ፕሮግራሙን ያቀዘቅዛል። printTimes () የ LCD ማያ ገጹን ያዘምናል ፣ ግን ያ ብዙ ትዕዛዞች ስለነበሩ ፣ አንድ ጊዜ ተየብኳቸው እና ከዚያ የጊዜ እሴት ሲቀየር በማንኛውም ጊዜ ንዑስ ፕሮግራሙን መደወል እችላለሁ።
// ማንኛቸውም አዝራሮች ተጭነው በሚቆዩበት ጊዜ በዚህ ተግባር ውስጥ ይቆዩ እና ከዚያ 250 ms ያዘግዩ።
ባዶነት መቀልበስ () {
ሳለ (digitalRead (set_hr) || digitalRead (set_min) ||
digitalRead (set_am_pm) || digitalRead (set_hr_a) ||
digitalRead (set_min_a) || digitalRead (set_am_pm_a)) {} መዘግየት (250);
}
// ለውጦች ካሉ የዘመኑትን ጊዜያት ያትማል
ባዶ ህትመት ጊዜያት () {
Serial.write (12);
Serial.print ("የአሁኑ ሰዓት:");
Serial.write (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");
}
Serial.write (168);
Serial.print ("ማንቂያ ተዘጋጅቷል ለ");
Serial.write (188);
ከሆነ (ሰዓት_አ <10) {
Serial.print ("0");
}
Serial.print (hour_a);
Serial.print (":");
ከሆነ (ደቂቃ_አ <10) {
Serial.print ("0");
}
Serial.print (minute_a);
ከሆነ (am_pm_a) {
Serial.print ("PM");
}
ሌላ {
Serial.print ("AM");
}
}
// የጊዜ መለኪያዎች ባዶነት ይጨምሩ
KeepTime () {
etime = millis () - cur_time;
ከሆነ (etime> = 1000 && second <59) {
ሁለተኛ ++;
cur_time = ሚሊስ ();
printTimes ();
}
ሌላ ከሆነ (etime> = 1000 && second == 59 && minute <59) {second = 0;
ደቂቃ ++;
cur_time = ሚሊስ ();
printTimes ();
}
ሌላ ከሆነ (etime> = 1000 && second == 59 && minute == 59 && hour <12) {
ሁለተኛ = 0; ደቂቃ =
0; ሰዓት ++; cur_time =
ሚሊ (); printTimes ();
}
ሌላ ከሆነ (ጊዜ> = 1000 && ሰከንድ == 59 && ደቂቃ == 59 && ሰዓት == 12) {
ሁለተኛ = 0; ደቂቃ =
0; ሰዓት = 1; am_pm =
! am_pm;
cur_time = ሚሊስ ();
printTimes ();
}
ሌላ {}
}
ደረጃ 14
6. ያ ነው!
ያጠናቅሩ እና ይስቀሉ እና ሁሉም ጨርሰዋል!
የሚመከር:
ስማርት ማንቂያ ሰዓት - በ Raspberry Pi የተሰራ ዘመናዊ የማንቂያ ሰዓት 10 ደረጃዎች (ከስዕሎች ጋር)
ብልጥ የማንቂያ ሰዓት - በ Raspberry Pi የተሰራ ዘመናዊ የማንቂያ ሰዓት - ዘመናዊ ሰዓት ፈልገው ያውቃሉ? እንደዚያ ከሆነ ይህ ለእርስዎ መፍትሄ ነው! እኔ ዘመናዊ የማንቂያ ደወል ሰዓት ሠራሁ ፣ ይህ በድር ጣቢያው መሠረት የማንቂያ ጊዜውን መለወጥ የሚችሉበት ሰዓት ነው። ማንቂያው ሲጠፋ ድምፅ (ቡዝ) እና 2 መብራቶች ይኖራሉ
የአርዱዲኖ ፕሮጀክት - ሰዓት አቁም - 3 ደረጃዎች
የአርዱዲኖ ፕሮጀክት - ሰዓት አቁም - ይህ የሩጫ ሰዓት እርስዎ የሚፈልጉትን ማንኛውንም ነገር ለማገልገል ሊያገለግል ይችላል ፣ ለምሳሌ ፣ አንድን ሥራ ለመጨረስ የተወሰደ ጊዜ ወይም ሥራን ለመጨረስ በሚጠቀሙበት ጊዜ ላይ ለራስዎ ግፊት ይስጡ። ኤልዲዎቹ ተጠቃሚው የሚጀመርበትን እና የሚቆምበትን ጊዜ በግልፅ እንዲያውቅ ይረዳሉ። ይህ የፕሮጀክት ኦሪጅ
ESP8266 የአውታረ መረብ ሰዓት ያለ ምንም RTC - Nodemcu NTP ሰዓት የለም RTC - የበይነመረብ ሰዓት ሥራ ፕሮጀክት - 4 ደረጃዎች
ESP8266 የአውታረ መረብ ሰዓት ያለ ምንም RTC | Nodemcu NTP ሰዓት የለም RTC | የበይነመረብ ክሎክ ፕሮጀክት - በፕሮጀክቱ ውስጥ ያለ RTC የሰዓት ፕሮጀክት ይሠራል ፣ wifi ን በመጠቀም ከበይነመረቡ ጊዜ ይወስዳል እና በ st7735 ማሳያ ላይ ያሳየዋል።
የአርዱዲኖ የማንቂያ ሰዓት ማስተላለፊያ 6 ደረጃዎች (ከስዕሎች ጋር)
የአሩዲኖ የማንቂያ ሰዓት ቅብብሎሽ - በተለይ በማለዳ ከእንቅልፍ ለመነሳት ብዙ ችግር አለብኝ። በዋናነት ይህ ፕሮጀክት የቁልፍ ሰሌዳውን እና lcd ን በመጠቀም ባዘጋጁት ጊዜ ቅብብል እንዲከፍቱ ያስችልዎታል።
“ጥበበኛ ሰዓት 2” (በአርዱዲኖ ላይ የተመሠረተ የማንቂያ ሰዓት በብዙ ተጨማሪ ባህሪዎች) መሰብሰብ 6 ደረጃዎች
“ጥበበኛ ሰዓት 2” (በአርዱዲኖ ላይ የተመሠረተ የማንቂያ ሰዓት ከብዙ ተጨማሪ ባህሪዎች ጋር) መሰብሰብ-ይህ መማሪያ ለዊዝ ሰዓት 2 ፣ ክፍት ምንጭ (ሃርድዌር እና ሶፍትዌር) ፕሮጀክት ኪት እንዴት እንደሚሰበሰብ ያሳያል። የተሟላ የጥበብ ሰዓት 2 ኪት እዚህ ሊገዛ ይችላል። ለማጠቃለል ፣ ጠቢብ ሰዓት 2 ሊያደርገው የሚችለው (አሁን ባለው ክፍት ምንጭ softwa