Мазмуну:

Саат, ЖК дисплей, Инфракызыл: 6 кадам
Саат, ЖК дисплей, Инфракызыл: 6 кадам

Video: Саат, ЖК дисплей, Инфракызыл: 6 кадам

Video: Саат, ЖК дисплей, Инфракызыл: 6 кадам
Video: Электрика в квартире своими руками. Финал. Переделка хрущевки от А до Я. #11 2024, Июль
Anonim
Саат, ЖК дисплей, Орнотуу үчүн инфракызыл
Саат, ЖК дисплей, Орнотуу үчүн инфракызыл
Саат, ЖК дисплей, Орнотуу үчүн инфракызыл
Саат, ЖК дисплей, Орнотуу үчүн инфракызыл

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

Бул долбоорго зымдардын минималдуу өлчөмү жана эч кандай ширетүү талап кылынбайт. Убакыт кармоочу - бул DS3231 реалдуу убакыт сааты. Убакыт арзан 1602 ЖКда көрсөтүлөт. Эки модуль тең I2C байланышын колдонушат. I2C бир модулга 2 зым гана Arduino менен туташканда колдонулат. Мен Arduino Nano колдонуп жатам, анткени ал нан тактайына жакшы жабышкан. Төмөнкү көрсөтмөлөр Arduino Uno менен иштейт, анткени бул долбоор үчүн Nano менен бирдей пин номерлери бар. Башка компонент - инфракызыл алуучу. Бул биздин акылдуу телекөрсөтүүбүздөгүдөй убакытты орнотуу үчүн жалпы алыстан башкаруу пультун колдонууга мүмкүндүк берет. Инфракызыл кабыл алгычка аны Arduino менен туташтыруу үчүн бир гана зым керек.

Биринчи кадам - Arduino тестирлөө жана аны нан тактасына туташтыруу. Кийинки кадамдар өз алдынча иштөө үчүн иштелип чыккан. Ар бир кадамда зым көрсөтмөлөрү жана тестирлөө көрсөтмөлөрү бар. Мен долбоорлорду курганда, мен иштеп жаткандыгын ырастоо үчүн ар бир компонентти зым менен текшерип көрөм. Бул компоненттердин санын интеграциялоого жардам берет, анткени ар бир иш мен интеграция талаптарына көңүл бура алаарымды билем.

Бул нускамада Arduino IDE орнотулган болушу керек. Сиз ошондой эле бул долбоордогу шилтемелерден Arduino эскиз программасын жүктөп алуу үчүн негизги көндүмдөргө ээ болушуңуз керек, программанын каталогун түзүңүз (каталогу программанын атына окшош). Кийинки кадамдар - IDEдеги программаны жүктөө, көрүү жана түзөтүү. Андан кийин, программаны USB кабели аркылуу Arduino тактаңызга жүктөңүз.

Жабдуулар

  • Nano V3 ATmega328P CH340G Arduino үчүн микро көзөмөлдөөчү такта. Альтернатива катары Uno колдоно аласыз.
  • DS3231 реалдуу убакыт сааты жана CR2032 батареясы.
  • I2C модулу бар 1602 ЖК
  • Infrared алуучу жана алыстан башкаруу. Мен инфрақызыл алуучу жана инфракызыл алыстан башкаруу менен келген IR зымсыз алыстан башкаруу модулунун топтомун колдондум.
  • Breadboard
  • Зым кабелдер
  • 5 вольттуу дубал адаптери

Мен тетиктерди eBayден, көбүнчө Гонконгдон же Кытайдан сатып алгам. АКШнын дистрибьюторлору кээде акылга сыярлык баада жана тез жеткирүү үчүн бирдей же окшош бөлүктөргө ээ. Кытайдын тетиктери 3-6 жумага чейин жеткирилет. Мен колдонгон дистрибьюторлордун баары ишенимдүү.

Болжолдуу чыгымдар: Нано $ 3, DS3231 $ 1, ЖК $ 3, Инфракызыл комплект $ 1, нан плитасы $ 2, 40 зым кабелдин пакети $ 1, 5 вольттуу дубал адаптери үчүн $ 1. Жалпысынан, болжол менен $ 11. Көңүл бургула, мен нано жана ЖК сатып алдым, анткени менин ширетүү жөндөмүм начар. Саат батарейкасы үчүн мен 5 пакет литий CR2032 батареяларын болжол менен $ 1.25 сатып алдым. Мен дагы 5 пакет DS3231 сатып алдым, анткени мага убакыт бөлүктөрү жагат. Бул долбоор 1 нан тактасын колдонот. Мен 3 нан пакетин болжол менен 7 долларга сатып алдым; жеке тактаны сатып алганга караганда жакшы келишим.

1 -кадам: Arduino Nanoну Breadboardго кошуңуз

Breadboardго Arduino Nano кошуңуз
Breadboardго Arduino Nano кошуңуз

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

Ардуинодон күчтү жана жерге туташтыргычтын электр тилкесин туташтырыңыз. Arduino 5+ төөнөгүчүн панелдин оң тилкесине туташтырыңыз. Arduino GRN (жер) төөнөгүчүн панелдин терс (жерге) тилкесине туташтырыңыз. Бул башка компоненттер тарабынан колдонулат.

Негизги Arduino тест программасын жүктөп алыңыз жана иштетиңиз: arduinoTest.ino. Программаны иштеткенде, борттогу LED жарыгы 1 секундга күйөт, андан кийин 1 секундга өчөт. Ошондой эле, билдирүүлөрдү Arduino IDE Tools/Serial Monitorдо көрүүгө болот.

+++ Орнотуу.

+ Чыгуу үчүн борттогу LED санарип пин орнотулду. LED өчүк. ++ Циклге өтүү. + Loop counter = 1 + Loop counter = 2 + Loop counter = 3…

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

Жогорудагы сүрөттө сиз 3 доллардан 5 долларга чейин ала турган 140 даана ширетилбеген нандын секирүүчү зым комплектинин кутусун көрөсүз. Алар такталарды тыкан кылып, кыска туташуу үчүн узун кабелдерди колдонушат.

2 -кадам: DS3231 Саат модулун кошуп, Arduino менен туташтырыңыз

DS3231 саат модулун кошуп, аны Arduino менен туташтырыңыз
DS3231 саат модулун кошуп, аны Arduino менен туташтырыңыз

Саат модулун нан тактасына сайыңыз. Саат модулунун GND пинин, панелдин жер тилкесине туташтырыңыз. Саат модулунун VCC пинин, панелдин оң тилкесине туташтырыңыз. SDA (маалымат) саатынын модулун Arduino A4 пинине туташтырыңыз (I2C маалымат төөнөгүч). SCL (сааттык) сааттык модулду Arduino'дун A5 пинине туташтырыңыз (I2C саат пини).

Arduino IDEде DS3231 саат китепканасын орнотуңуз. Тандоо Куралдар/Китепканаларды башкаруу. Издөөңүздү "rtclib" деп терип чыпкалаңыз. Adafruit тарабынан RTClib тандаңыз (маалымдама үчүн, китепкананын шилтемеси).

Негизги тест программасын жүктөп алыңыз жана иштетиңиз: clockTest.ino. Программаны иштетип жатканда, Arduino IDE Tools/Serial Monitorдо көрүүгө мүмкүн болгон сааттык билдирүүлөр жайгаштырылат.

+++ Орнотуу.

+ Саат коюлган. ++ Циклге өтүү. ---------------------------------------- + Учурдагы датасы жана убактысы: 2020/3/ 22 (жекшемби) 11: 42: 3 + Учурдагы Дата жана Убакыт: 2020/3/22 (Жекшемби) 11: 42: 4 + Учурдагы Дата жана Убакыт: 2020/3/22 (Жекшемби) 11: 42: 5…

Көнүгүү катары, rtc.adjust () менен сааттын убактысын жана күнүн коюңуз, өзгөртүлгөн программаны жүктөңүз жана өзгөртүүнү ырастаңыз.

rtc.adjust (DateTime (2020, 3, 19, 10, 59, 50)); // Жаздын биринчи күнү, 2020.

3 -кадам: 1602 ЖК дисплей модулун кошуп, аны Arduino менен туташтырыңыз

1602 ЖК дисплей модулун кошуп, Arduino менен туташтырыңыз
1602 ЖК дисплей модулун кошуп, Arduino менен туташтырыңыз

LCD модулун нан тактасына сайыңыз. Саат модулунун GND пинин, панелдин жер тилкесине туташтырыңыз. Саат модулунун VCC пинин, панелдин оң тилкесине туташтырыңыз. SDA (маалымат) саатынын модулун Arduino A4 пинине туташтырыңыз (I2C маалымат төөнөгүч). SCL (сааттык) сааттык модулду Arduino'дун A5 пинине туташтырыңыз (I2C саат пини).

Arduino IDEде 1602 LCD китепканасын орнотуңуз. Тандоо Куралдар/Китепканаларды башкаруу. Издөөңүздү 'LiquidCrystal' деп терүү менен чыпкалаңыз. Тандоо LiquidCrystal I2C тарабынан Франк де Барбандер (маалымдама үчүн, китепкананын шилтемеси).

Негизги тест программасын жүктөп алыңыз жана иштетиңиз: lcd1602Test.ino. Программаны иштетип жатканда, Arduino IDE Tools/Serial Monitorдо көрүүгө мүмкүн болгон сааттык билдирүүлөр жайгаштырылат.

+++ Орнотуу.

+ LCD колдонууга даяр. +++ Циклге өтүү. + TheCounter = 1 + TheCounter = 2 + TheCounter = 3…

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

4 -кадам: Инфракызыл алуучуну кошуп, Arduino менен туташтырыңыз

Инфракызыл алуучуну кошуп, Arduino менен туташтырыңыз
Инфракызыл алуучуну кошуп, Arduino менен туташтырыңыз

Аялды эркек кабелдик зымдарга инфракызыл алгычка сайыңыз (аялдын учтары). Саат модулунун жерге туташтыргычын панелдин жер тилкесине туташтырыңыз. Саат модулунун кубаткычын панелдин оң тилкесине туташтырыңыз. Инфракызыл алуучунун чыгуу пинин Arduino A1 пинине туташтырыңыз.

Инфракызыл алуучуну туташтырыңыз, төөнөгүчтөрдү солдон оңго карай:

Көпчүлүк сол жакта (Xтин жанында) - Нано пин A1 борбору - 5V Оңдо - жер

A1 + - - Нано пин байланыштары

| | | -Инфракызыл алуучу түйрөөчтөр --------- | S | | | | --- | | | | | | --- | | | ---------

Arduino IDEде инфракызыл китепкананы орнотуңуз. Тандоо Куралдар/Китепканаларды башкаруу. Издөөңүздү "IRremote" деп терип чыпкалаңыз. IRremote by Shirriff танда (маалымдама үчүн, китепкана шилтемеси).

Негизги тест программасын жүктөп алып, иштетиңиз: infraredReceiverTest.ino. Программаны иштетип жатканда, алыстан башкарууну ресиверге каратып, 0дөн 9га чейинки сан сыяктуу ар кандай баскычтарды басыңыз. Сериялык билдирүүлөр Arduino IDE Tools/Serial Monitorдо көрүүгө болот.

+++ Орнотуу.

+ Инфракызыл кабыл алгычты ишке киргизди. ++ Циклге өтүү. + Баскыч OK - Өткөрүү + Баскыч> - кийинки + Баскыч < - мурунку + Баскыч + Төмөн түшүрүү + Баскыч 1: + Баскыч 2: + Баскыч 3: + Баскыч 4: + Баскыч 6: + Баскыч 7: + Баскыч 8: + Key 9: + Key 0: + Key * (Return) + Key # (Exit)

Көнүгүү катары, басылган баалуулуктарды көрүү үчүн сыналгынын пультун колдонуңуз. Сиз андан кийин infraredSwitch () функциясынын которуу билдирүүсүндөгү баалуулуктарды колдонуу үчүн программаны өзгөртө аласыз. Мисалы, "0" баскычын басып, пультуңуздун маанисин алыңыз, мисалы, "0xE0E08877". Андан кийин, switch кодуна төмөнкү код үзүндүсүндөй болгон ишти кошуңуз.

учурда 0xFF9867:

case 0xE0E08877: Serial.print ("+ Key 0:"); Serial.println (""); тыныгуу;

5 -кадам: Clock Project Arduino Sketch программасын жүктөп, аны сынап көрүңүз

Clock Project Arduino Sketch программасын жүктөп, аны сынап көрүңүз
Clock Project Arduino Sketch программасын жүктөп, аны сынап көрүңүз
Clock Project Arduino Sketch программасын жүктөп, аны сынап көрүңүз
Clock Project Arduino Sketch программасын жүктөп, аны сынап көрүңүз
Clock Project Arduino Sketch программасын жүктөп, аны сынап көрүңүз
Clock Project Arduino Sketch программасын жүктөп, аны сынап көрүңүз

Эми бардык компоненттер нанга кошулуп, зым менен байланышып, сыноодон өттү; негизги саат программасын жүктөө жана аны иштетүү убактысы келди. Саат программасы саат модулунан убакытты алат, ЖКда убакытты көрсөтөт жана инфракызыл алыстан башкарууну колдонуу менен убакытты коюуга мүмкүндүк берет.

Долбоордун саат программасын жүктөп алыңыз жана иштетиңиз: clockLcdSet.ino.

Программа баштаганда, ал DS3231дин убактысын 1602 ЖК экранда көрсөтөт. Билдирүүлөрдү Arduino IDE Tools/Serial Monitorдо көрүүгө болот.

+++ Орнотуу.

+ ЖК топтому. + syncCountWithClock, theCounterHours = 13 theCounterMinutes = 12 theCounterSeconds = 13 + Саат коюлган жана программанын өзгөрмөлөрү менен шайкештирилген. + Инфракызыл алуучу иштетилген. ++ Циклге өтүү. + clockPulseMinute (), TheCounterMinutes = 15 + clockPulseMinute (), TheCounterMinutes = 16 + clockPulseMinute (), TheCounterMinutes = 17…

Алыстан башкарууну ресиверге каратып, оң жебе баскычын басыңыз. Жөндөө үчүн жыл көрсөтүлөт. Жылдын, айдын, күндүн, сааттын, мүнөттүн жана секунддун орнотулаарын көрүү үчүн оң жебе баскычын бир нече жолу басыңыз. Убакыт маанисин коюу үчүн, мааниге өтүңүз. Көрсөтүү маанисин коюу үчүн өйдө жана ылдый жебелерди колдонуңуз. Андан кийин "OK" баскычын колдонуп сааттын маанисин коюңуз. Бир маалда бир маани белгиленет.

6 -кадам: Тышкы электр менен камсыздоо

Тышкы электр менен камсыздоо
Тышкы электр менен камсыздоо

Эми саатыңыз сыналып, иштеп жаткандыктан, аны компьютериңизден сууруп, көз карандысыз электр булагын колдонсоңуз болот. Жөнөкөйлүк үчүн мен 5 вольттуу дубал адаптерин колдоном, аны бир долларга жана USB кабелин, дагы бир долларга сатып алса болот. Кабель Arduino +5V дубал адаптерине туташат. Arduino кубаттуулугу жана жер казыктары нанга туташтырылгандыктан, башка компоненттерди иштетет.

Жөнөкөйлүгү жана арзандыгынан улам, мен башка долбоорлорду иштетүү үчүн ушул эле айкалышты колдоном.

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

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