Мазмуну:

Arduino Matrix Сааты: 6 кадам
Arduino Matrix Сааты: 6 кадам

Video: Arduino Matrix Сааты: 6 кадам

Video: Arduino Matrix Сааты: 6 кадам
Video: Extract GPS location in Arduino with NEO-6m or NEO-7M module 2024, Июль
Anonim
Arduino Matrix Сааты
Arduino Matrix Сааты

Description:

Саатыңызды Arduino, матрицалык дисплей жана Real Time Clock (RTC) модулу аркылуу түзүңүз. Бул кызыктуу жана жөнөкөй долбоор, мен башталгычтар үчүн эң сонун деп эсептейм. Саат так убакытты, ошондой эле күндү, айды жана жылды көзөмөлдөө үчүн RTC модулун колдонот. Мындан тышкары, модулда камтылган температура сенсору бар. Бул жерде DS3231 модулу жана ал үчүн колдонулган I2C байланыш автобусу жөнүндө көбүрөөк биле аласыз. Акырында, биз Dot Matrix дисплейин колдонобуз, албетте, убакытты, аптанын күнүн, айын жана башкаларды көрсөтүү. Сиз бул жердеги дисплей жана MAX7219 IC драйвери жөнүндө көбүрөөк маалымат ала аласыз.

Бул долбоордун pdf версиясын бул жерден жүктөп алсаңыз болот. Бул иш жүзүндө бул көрсөтмө менен бирдей.

[UPDATE: 2/22/19] pdf көрсөтмөсүн колдонбоңуз, мен бул нускаманы жаңырттым, бирок ал өзгөртүүлөр азырынча pdfте чагылдырылган жок.

1 -кадам: Компоненттерди чогултуу

Бул долбоор үчүн сизге керектүү компоненттер:

  • Max7219 Дот матрицасы дисплейи [Бул жерден сатып алуу] [Маалыматтар жадыбалы]
  • RTC DS3231 [Бул жерден сатып алыңыз] [Маалыматтар жадыбалы]
  • 3V CR3032 батареясы (DS3231 үчүн)

Мындан тышкары, сизге ар кандай Arduino (проекттин көлөмүн азайтуу үчүн нано керек), нан тактасы, секирүүчү зымдар, ошондой эле сиздин компьютериңизге орнотулган Arduino IDE керек болот.

2 -кадам: Китепканалар

Китепканалар
Китепканалар

Төмөнкү китепканаларды жүктөп алып,.zip файлын Arduino IDEге Sketch> Китепкананы кошуу>. Zip китепканасын кошуу менен орнотуңуз.

ЭСКЕРТҮҮ: ВЕРСИЯЛАР МААНИЛҮҮ !

* Жүктөө алдында туура версияларыңыз бар экенин текшериңиз. Мен коопсуз тарапта болуу үчүн Arduino IDEдеги ар бир китепкананы жүктөп алууну сунуштайм.

MD_Parola 3.0.1:

MD_MAX72XX 3.0.2:

DS3231 1.0.2:

Же болбосо, Arduino IDEде Sketch> Китепкананы кошуу> Китепканаларды башкаруу бөлүмүнө өтүңүз жана издөө тилкесине териңиз: "MAX72XX" жана сиз төмөнкүлөрдү көрүшүңүз керек (сүрөттү караңыз):

Бир гана MD_MAX72XX жана MD_Parola орнотуңуз. MD_MAXPanel кереги жок.

3 -кадам: Сиздин компоненттериңизди текшерүү

Китепканаларды орноткондон кийин, сиздин компоненттериңиздин талап кылынгандай иштеп жатканына ынануу үчүн аларды жекече текшериңиз. Сураныч, бардыгын бириктирүүдөн мурун бул кадамдарды аткарыңыз

DS3231 RTC модулун сыноо үчүн DS3231ди Arduino менен туташтырыңыз (төмөндөгү зымдарды караңыз). Андан кийин Arduino IDEде Файлдар> Мисалдар> DS3231> DS3231_Test бөлүмүнө өтүп, эскизди жүктөңүз. Сериялык Мониторду ачып, туура датаны, убакытты, күндү жана башкаларды алып жатканыңызды текшериңиз.

Матрицанын дисплейин текшерүү үчүн, адегенде аны Arduino менен туташтырыңыз (төмөндөгү зымдарды караңыз). Андан кийин, Arduino IDEде, Файлдар> Мисалдар> MD_Parola> Parola_HelloWorld бөлүмүнө өтүп, эскизди жүктөңүз. Сиз дисплейде HELLO басылганын көрүшүңүз керек жана ал артка басып чыгарылышы мүмкүн. Эгерде текст артка болсо, анда сиз төмөнкү сапты өзгөртүшүңүз керек:

#аныктоо HARDWARE_TYPE MD_MAX72XX:: PAROLA_HW

To

#аныктоо HARDWARE_TYPE MD_MAX72XX:: FC16_HW

Эскизди кайра жүктөңүз жана маселе чечилиши керек.

Эми биз компоненттерибизди сынап көргөндөн кийин, биз баарын зым менен бириктирүүгө даярбыз!

4 -кадам: Кабелдөө

Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү
Электр өткөргүчтөрү

Диаграммага же схемага же таблицага кайрылыңыз

5 -кадам: КОД

Кодду бул жерден алыңыз

Эскертүү: Мен башында Электрондук долбоорлордун кодун колдонгом, бирок учурдагы (аяктоо учурунда) китепканаларды колдоо үчүн өзгөрткөнмүн.

Сааттын өзгөчөлүктөрү:

Саат автоматтык түрдө 24 саат форматында убакытты айтууга коюлган, бирок аны оңой эле 12 саатка өзгөртүүгө болот. Саат ошондой эле температураны көрсөтөт (Цельсияда да, Фаренгейтте да). Мен дагы "Уйку режими" деп аталган функцияны коштум, ал "ӨЧҮК" абалына коюлган (чоо -жайын билүү үчүн төмөндөгү Уйку режимин караңыз).

12 саат форматы: Саатты 12 саат форматында айтуу үчүн, 88 -сапка комментарий жазышыңыз керек

саат = Clock.gethour (h12, PM); // 24 саат форматы

Ал эми 100дөн 93кө чейинки сызыктарга комментарий бербеңиз

if (Clock.getHour (h12, PM)> = 13 || Clock.getHour (h12, PM) == 0)

{ч = Clock.getHour (12, PM) - 12; } else {h = Clock.getHour (h12, PM); }

Уйку режими:

Бул, айрыкча, биз уктап жаткан убакта сааттын жарыгын азайтууга жардам берген өзгөчөлүк. Менимче, сиз түн ортосунда ойгонгуңуз келбейт жана бул сааттан сокур болуп. Эң төмөнкү параметрде болгондо да абдан жарык. Уйку режимин иштетүү үчүн, 177ден 184кө чейин сызыктарды ачпаңыз

if (h == 12 || h <8) // Убакыт интервалдары (бул учурда саат 12ден 8ге чейин) {P.setIntensity (0); // Дисплей жарыктыгын эң төмөнкү параметрге коюңуз} башка {P.setIntensity (6); // Дисплей жарыктыгын 6га коюңуз (15 эң жарык)}

Эскертүү: Мен саат 12 саат режимине коюлуп жатканда, уйку режимин колдонууда көйгөйгө туш болдум. Сиз күнүнө эки жолу иштей турганын байкайсыз, анткени 8 жана 8де экөө тең 8 деп чечмеленет. Ошентип, эгер сиз Уйку режимин кечки саат 9дан таңкы 7ге чейин активдүү кылып койсоңуз, анда ал эртең мененки саат 9дан кечки 7ге чейин активдүү болот. БИРОК, бул маселе 24 саат режимине коюлса пайда болбойт.

6 -кадам: Жыйынтык

Куттуктайм !!! Сизде жумушчу сааты бар. Меники ушундай болуп чыкты [Саат галереясы]. Мен сиз компоненттер жана коддоо жөнүндө бир аз көбүрөөк үйрөнүп гана тим болбостон, ал жакка саякаттан ырахат алдыңыз деп үмүттөнөм. Сураныч, мени менен бул колдонмо боюнча ойлоруңузду бөлүшүңүз [email protected]. Бул чындыгында менин биринчи проектим жана бул сизге жакшы кызмат кылды деп үмүттөнөм. Мен дагы көптөгөн гиддерди түзөм деп үмүттөнөм. Мындан тышкары, эгерде сизде долбоор боюнча кандайдыр бир суроолор, сунуштар жана/же жакшыртуулар болсо, мага жазуудан тартынба.

Сунушталууда: