Мазмұны:
- 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:24
Бұл жобада біз Arduino Uno көмегімен дабыл орнатылған уақыт пен уақытты көрсету үшін СКД экранын басқарамыз. Біз әр уақытты орнату үшін түймелерді қолданамыз.
Материалдар:
- Arduino Uno -
- Нан тақтасы -
- Jumper Wires (x13+) -
- 10 кох резисторы (x4) -
- СКД экраны -
- 7 түйме-https://vilros.com/collections/raspberry-pi-acces…
- Piezo динамигі -
1 -қадам: Қосылу нұсқаулары
1. Ардуинодағы 5В түйреуіштен өтпелі сымды нан тақтасындағы + рельстердің біріне жалғаңыз.
2 -қадам:
2. Ардуинодағы GND түйреуішінен өтпелі сымды нан тақтасында таңдаған + рельстің жанындағы рельстерге қосыңыз.
3 -қадам:
3. СКД экранын қуат көзіне, жерге және TX істігіне қосыңыз (түйреуіш 1).
4 -қадам:
4. Нан тақтасындағы 7 түймені аяқтары нан тақтасындағы саңылауға қойыңыз.
5 -қадам:
5. Түймешіктердің төменгі сол жақ түйреуіштеріне GND түйреуіші қосылған рельстен 10 кох резисторды қойыңыз.
6 -қадам:
6. Өткізгіш сымдарды батырмалардың төменгі оң жақ түйреуіші мен 5В рельсінің арасына тақтаның үстіне қойыңыз.
7 -қадам:
7. Өткізгіш сымдарды 6, одан кейін 8-13 түйреуіштер мен түйреуішке резистор қосылған түйіннің арасына салыңыз.
8 -қадам:
8. Әрі қарай, Piezo динамигін тақтаға қойып, 7 -істікті қуат істігіне, содан кейін жерге 100 Ом резисторды қосыңыз.
9 -қадам: бағдарламалау нұсқаулары
1. Шолу: Бұл жоба пайдаланушыдан дисплейде ағымдағы уақыт пен дабыл орнатылған уақытты орнатуды сұрайды. Жоғарыда қосылған түймелер әр уақытты орнату үшін пайдаланылады. Солдан оңға қарай олар ағымдағы сағатты, ағымдағы минутты, ағымдағы AM немесе PM орнатуды, оятқыш сағатты, дабыл минутын орнатуды, дабыл AM немесе PM орнатады. Соңғы түйме дабыл дыбысын өшіру үшін қолданылады.
10 -қадам:
2. Біріншіден, біз қолданатын айнымалы мәнді инициализациялау керек.
// Қолданылатын айнымалыларды инициализациялау сағат = 0; // Ағымдағы уақыт үшін сағат int минут = 0; //
Ағымдағы уақыт үшін минут int second = 0; // Ағымдағы уақыт үшін екінші
int hour_a = 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; // int минутты орнату үшін 12 түйреуішті пайдаланыңыз
set_am_pm = 11; // 11 -түйреуішті таңертең/кешке орнату үшін қолданыңыз
int set_hr_a = 10; // int set_min_a = 9 дабылының сағатын орнату үшін 10 түйреуішті пайдаланыңыз; // int set_am_pm_a = 8 дабылы үшін минутты орнату үшін түйреуішті 9 пайдаланыңыз; // Дабыл үшін таңғы/кешті орнату үшін 8 түйреуішті пайдаланыңыз
int динамигі = 7; // Динамикте тыныштық үшін қолданылатын түйреуіш = 6; // Динамикті тоқтату үшін бекітіңіз
bool дабыл = жалған; // Үрей туғызу үшін жалау
bool тынышталды = жалған; // Тыныштықты көрсететін жалауша басылмаған
int cur_time = 0; // Ағымдағы уақыт үшін айнымалы
int etime = 0; // Өткен уақыт үшін айнымалы
11 -қадам:
3. Әрі қарай, біз СКД экранын орнатып, пайдаланушыға ағымдағы уақытты орнатуды айтуымыз керек. Бұл тек бір рет жасалуы керек болғандықтан, біз оны орнату тәртібінде жасаймыз.
жарамсыз орнату () {
// СКД экранын орнату
Serial.begin (9600); // Серияны 9600 байда инициализациялау
Serial.write (17); // Артқы жарығын қосыңыз
Serial.write (24); // Дисплейді курсормен және жыпылықтамай қосыңыз
Serial.write (12); // Экранды тазалаңыз
Serial.write (128); // Курсорды жоғарғы сол жақ бұрышқа жылжытыңыз // PinModes pinMode (set_hr, INPUT); 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);
Serial.write (12);
printTimes ();
cur_time = миллис (); // Ағымдағы уақытты сақтау}
12 -қадам:
4. Содан кейін, цикл режимінде біз уақытты бақылап отырамыз және пайдаланушының уақыттың біреуін орнатқанын білу үшін түймелердің күйін оқимыз.
void loop () {
// Уақытты сақтаңыз
keepTime ();
// Дабыл беру уақыты келгенін тексеріңіз!
if ((сағат == hour_a && минут == минут_а &&! тыныш) || дабыл) {тон (динамик, 2000, 500); // Динамикке 500 мс үшін 2000 Гц дыбысты шығару
кешіктіру (500); // Кешіктіру 500 мс болса (! Дабыл) {// Егер дабыл өшірулі болса, оны қосыңыз
}
}
// Егер пайдаланушы дыбысты басу арқылы дабылды өшірсе, дабылды тоқтатыңыз, егер (дабыл &&! Тыныштандырылған && digitalRead (тыныш)) {
дабыл = жалған;
тыныштандырылған = ақиқат; }
// Дабылды қалпына келтіріңіз, егер (! Дабыл && тынышталды && минут! = Минут_а) {тыныштандырылған = жалған;
}
// Орнатылған түйреуіштердің жоғары көтерілгенін тексеріңіз, егер солай болса, сәйкес мәнді көбейтіңіз (digitalRead (set_hr) && hour <12) {
сағат ++;
printTimes ();
шығару ();
}
else if (digitalRead (set_hr) && hour == 12) {hour = 1;
printTimes ();
шығару ();
}
басқа {}
if (digitalRead (set_min) && минут <59) {
минут ++; printTimes ();
шығару ();
}
else if (digitalRead (set_min) && minutes == 59) {минут = 0;
printTimes ();
шығару ();
}
else {} if (digitalRead (set_am_pm) && am_pm) {
am_pm = жалған;
printTimes ();
шығару ();
}
else if (digitalRead (set_am_pm) &&! am_pm) {am_pm = true; printTimes ();
шығару ();
}
else {} if (digitalRead (set_hr_a) && hour_a <12) {
hour_a ++;
printTimes ();
шығару ();
}
else if (digitalRead (set_hr_a) && hour_a == 12) {hour_a = 1;
printTimes ();
шығару ();
}
else {} if (digitalRead (set_min_a) && minutes_a <59) {
минут_а ++;
printTimes ();
шығару ();
}
else if (digitalRead (set_min) && minutes_a == 59) {minutes_a = 0;
printTimes ();
шығару ();
}
else {} if (digitalRead (set_am_pm_a) && am_pm_a) {
am_pm_a = жалған;
printTimes ();
шығару ();
}
else if (digitalRead (set_am_pm_a) &&! am_pm_a) {am_pm_a = true;
printTimes ();
шығару ();
}
басқа {}
}
13 -қадам:
5. Мұнда сіз мен жасаған қосалқы бағдарламаларды байқайсыз - debounce () және printTimes (). Debounce () түймелерді тек бір рет оқығанымызды тексеру үшін қолданылады. Arduino секундына мың рет сканерлейтіндіктен, сіз оны тек бір рет оқуға арналған кезде түймені бірнеше рет басқан деп ойлауы мүмкін. Debounce () батырманы босатқанша бағдарламаны тоқтатады. printTimes () СКД экранын жаңартады, бірақ бұл бірнеше пәрмен болғандықтан, мен оларды бір рет тердім, содан кейін уақыт мәні өзгерген кезде ішкі бағдарламаны шақыруға болады.
// Кез келген түйме басылып жатқанда, осы функцияда қалып, 250 мс кешіктіріңіз.
жарамсыз дебунс () {
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);
}
// Егер өзгерістер болса, жаңартылған уақытты басып шығарады
жарамсыз printTimes () {
Serial.write (12);
Serial.print («Ағымдағы уақыт:»);
Serial.write (148);
егер (сағат <10) {
Serial.print («0»);
}
Сериялық баспа (сағат);
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 (минут_а);
егер (am_pm_a) {
Serial.print («PM»);
}
басқа {
Serial.print («AM»);
}
}
// Жарамсыз уақыт параметрлерін көбейтіңіз
keepTime () {
etime = millis () - cur_time;
if (etime> = 1000 && second <59) {
екінші ++;
cur_time = миллис ();
printTimes ();
}
else if (etime> = 1000 && second == 59 && minutes <59) {second = 0;
минут ++;
cur_time = миллис ();
printTimes ();
}
әйтпесе (etime> = 1000 && second == 59 && minutes == 59 && hour <12) {
секунд = 0; минут =
0; сағат ++; cur_time =
миллис (); printTimes ();
}
әйтпесе (etime> = 1000 && секунд == 59 && минут == 59 && сағат == 12) {
секунд = 0; минут =
0; сағат = 1; am_pm =
! am_pm;
cur_time = миллис ();
printTimes ();
}
басқа {}
}
14 -қадам:
6. Міне!
Құрастырыңыз және жүктеңіз, бәрі аяқталды!
Ұсынылған:
Digital Ludo Dice Arduino 7 сегментінің дисплей жобасы: 3 қадам
Digital Ludo Dice Arduino 7 сегментінің дисплей жобасы бар: Бұл жобада 7 сегментті дисплей басу түймесін басқан кезде кездейсоқ 1 -ден 6 -ға дейінгі санды көрсету үшін қолданылады. Бұл әркімге ұнайтын керемет жобалардың бірі. 7 сегментті дисплеймен жұмыс істеуді үйрену үшін мына жерді басыңыз: -7 сегмент
Arduino көмегімен лазерлік қауіпсіздік дабыл жобасы: 5 қадам
Arduino көмегімен лазерлік қауіпсіздік дабылы жобасы: Лазерлік қауіпсіздік дабылы өнеркәсіптер мен басқа да жарнамалық роликтерде кеңінен қолданылады. Мұның себебі - лазер экологиялық жағдайлардың әсеріне бейім, сондықтан оны сенімді және сенімді етеді. Осы Arduino жобасында мен лазерді қолдандым
Мәзірі бар Arduino DHT22 сенсоры мен топырақ ылғалдылығы жобасы: 4 қадам
Мәзірмен Arduino DHT22 сенсоры мен топырақ ылғалдылығы жобасы: Сәлеметсіздерме балалар мен бүгін мен сіздерге екінші жобамды ұсынамын. Бұл жоба мен ылғалдылық пен ылғалдылықты өлшеуге арналған топырақ ылғалдылығы мен DHT22 сенсорларын қолданған алғашқы жобамның қоспасын ұсынады. . Бұл жоба
LM386 көмегімен Arduino мәтінді сөйлеу түрлендіргіші - Talking Arduino жобасы - Talkie Arduino кітапханасы: 5 қадам
LM386 көмегімен Arduino мәтінді сөйлеу түрлендіргіші | Talking Arduino жобасы | Talkie Arduino кітапханасы: Сәлеметсіздер ме, балалар, біз жобаның көп бөлігінде arduino -дан сөйлесуді талап етеміз, мысалы, сағаттар немесе кейбір мәліметтерді айту, біз мәтінді Arduino көмегімен сөйлеуге айналдырамыз
Arduino көмегімен радар қалай жасауға болады - Arduino жобасы: 4 қадам
Arduino көмегімен радар қалай жасауға болады | Arduino жобасы: Бұл мақалада мен сізге arduino көмегімен қарапайым радар жасауды үйретемін. Толық бейне оқулықты мына жерден қараңыз: Мені басыңыз