Мазмуну:

Arduino 3-in-1 Убакыт жана аба ырайы дисплейи: 11 кадам
Arduino 3-in-1 Убакыт жана аба ырайы дисплейи: 11 кадам

Video: Arduino 3-in-1 Убакыт жана аба ырайы дисплейи: 11 кадам

Video: Arduino 3-in-1 Убакыт жана аба ырайы дисплейи: 11 кадам
Video: This newest airline in Korea has ONE unexpected drawback | Air Premia ICN - NRT 2024, Ноябрь
Anonim

By Boomer48Follow More by the author:

ATtiny85ти колдонуу
ATtiny85ти колдонуу
ATtiny85ти колдонуу
ATtiny85ти колдонуу
Pi Powered Pie бөлүү жана Полигон кесүү куралы
Pi Powered Pie бөлүү жана Полигон кесүү куралы
Pi Powered Pie бөлүү жана Полигон кесүү куралы
Pi Powered Pie бөлүү жана Полигон кесүү куралы
Кол менен аудио күчөткүч үчүн санариптик башкаруу
Кол менен аудио күчөткүч үчүн санариптик башкаруу
Кол менен аудио күчөткүч үчүн санариптик башкаруу
Кол менен аудио күчөткүч үчүн санариптик башкаруу

Мага PIC микроконтроллерлери жагат жана ассамблея тилинде программалоо жагат. Чындыгында, акыркы эки жылдын ичинде мен веб -сайтыма ушул айкалыштын негизинде 40ка жакын долбоорду жайгаштырдым. Жакында мен АКШнын эң жакшы көргөн сатуучуларынын бир бөлүгүнө заказ берип жатып, ATMEGA328 процессорунун чипинен болгону 1,20 долларга кымбаттаган Arduino Nano программалык кабели бар экенин байкадым. Ошентип, мен алардын бирин сатып алдым. Андан кийин мен Arduino IDEди жүктөп алып, 'C ++' программалоо боюнча эсимди чаңдан тазаладым.

Бул долбоор убактысы үчүн GPSти колдонгон сааттын жалпы жыйнагы жана жалпы AcuRite сенсорунан аба ырайы билдирүүлөрүн чечүүчү RF кабылдагычы. Натыйжада кичинекей убакыт жана температура дисплейи пайда болот. GPS сааты жана аба ырайынын тартиби өзүнчө файлдарды камтыйт, андыктан негизги режимге кирүү жана аны жөн гана саат функциясын же жөн гана аба ырайы функциясын аткаруу үчүн конфигурациялоо оңой. Функциялардын бирин гана кааласаңыз, негизги күн тартибинин жогору жагындагы тиешелүү "#define" белгисин калтырыңыз.

Эгерде эки функция тең колдонулса, анда ЖКнын жогорку сызыгы жергиликтүү убакытты, ал эми ЖКнын астынкы сызыгы нымдуулукту жана температураны Цельсий жана Фаренгейт боюнча көрсөтөт. Эгерде жөн гана саат функциясы колдонулса, анда жогорку сапта жергиликтүү убакыт, ал эми төмөнкү сапта UTC көрсөтүлөт. Эгерде жөн гана аба ырайы функциясы колдонулса, анда жогорку сызык биринчи кабыл алынган сенсорду көрсөтөт, ал эми төмөнкү сызык башка кабыл алынган сенсорду көрсөтөт. Мен бул мүмкүнчүлүктү коштум, анткени менде эки аба ырайы сенсору бар.

1 -кадам: Аба ырайы сенсору

Аба ырайы сенсору
Аба ырайы сенсору
Аба ырайы сенсору
Аба ырайы сенсору
Аба ырайы сенсору
Аба ырайы сенсору

Бул жерде колдонулган AcuRite аба ырайы сенсору температура жана нымдуулук тууралуу маалыматты ар 16 секунд сайын жөнөтөт. Арткы жагында 000592TXR моделинин номери көрсөтүлгөн, бирок ал адатта 06002M модели катары жарнамаланат. Бул сенсор ар кандай аба ырайы станциясынын көптөгөн моделдеринде колдонулат, ошондуктан аны табуу оңой жана мен аларды eBayден 20 долларга чейин ала алдым. AcuRite кээ бир аба ырайы станциялары үчүн окшош сенсорлорду сатат, бирок алар ошол эле байланыш протоколун карманышы мүмкүн. Интернетте 00606 гана температура сенсору ошол эле билдирүү форматын колдонгону, бирок нымдуулуктун байты жараксыз экендиги жөнүндө кээ бир көрсөткүчтөр бар.

Жогоруда көрсөтүлгөн биринчи толкун түрүндө көрүнүп тургандай, аба ырайы билдирүүлөрү үзгүлтүксүз билдирүүлөрдүн ортосунда 2 мс боштук менен жөнөтүлөт. Жогоруда көрсөтүлгөн экинчи толкун формасы биттердин узактыгын жана үлгүлөрүн көрүү үчүн бир билдирүүнүн бир бөлүгүн кеңейтет. Бийиктиги 600us жөнүндө, андан кийин 600us төмөн болгон төрт синхрондуу бит бар. Маалыматтардын биттери 400us жогорку, андан кийин 200us төмөн (1) же 200us бийик, андан кийин 400us төмөн (0) менен көрсөтүлөт.

Билдирүүнүн форматы 7 байт маалыматтан турат. Биринчи эки байт сенсордун идентификатору болуп саналат жана алар өзгөрбөйт (б.а. ал жылуучу кодду колдонбойт). Акыркы байт - бул алгачкы алты байттын жөнөкөй кошумча суммасы. Үчүнчү байт - бул батарейканын деңгээлинин көрсөткүчү жана батарейкасы жакшы болсо, ар дайым 44 алтылык болушу керек. Төртүнчү байт-бул нымдуулук жана ал 0дөн 99га чейинки масштабсыз мааниге ээ. 4, 5 жана 6-байттардын эң маанилүү биттери паритеттик бит экенин жана өлчөөнүн бир бөлүгү эмес экенин эстен чыгарбоо керек. баалуулуктар. 5 жана 6-байттар-масштабдуу температура (Цельсий), 5-байттын төмөнкү 4 биттери 6-байттардын 7-биттери менен бириктирилип, 11-бит маанини түзөт. Температура дайыма оң сан катары көрсөтүлөт жана масштабдоо колдонулганда гана терс болуп калат. Масштаб (C / 10) - 100. 10го бөлүү талап кылынат, анткени температуранын чечилиши градустун ондон биринде. Чыгаруу талап кылынат, анткени өткөрүлгөн маанини оң кармоо үчүн сенсор тарабынан 100 кошулат.

2 -кадам: RF кабылдагыч

RF Receiver
RF Receiver
RF Receiver
RF Receiver

Мен бул долбоор үчүн колдонгон RF модулу RXB6. Бул супер гетеродин алуучу, анча деле кааланбаган супер регенеративдүү кабылдагычтардан айырмаланат. Эгер арзан RF модулдарын карасаңыз, анда өткөргүч жана кабыл алуучу такталар көп учурда биригет. Бул топтолгон ресиверлердин көпчүлүгү супер регенеративдүү типтер болуп саналат, ошондуктан алар супер гетеродин алгычтарга караганда иштөө мүнөздөмөлөрүнө (диапазонун кошкондо) ээ болушат. Биз бул долбоор үчүн кабыл алуучу модулга гана муктажбыз, анткени биз аба ырайы сенсорунун өткөргүчүнөн сигналдарды алабыз.

3 -кадам: RF антенналары

RF антенналары
RF антенналары

RXB6 антенна менен келбейт. Сиз спиралдык антенналарды абдан арзан сатып алсаңыз болот, бирок өзүңүздүн антеннаңызды жасоо оңой. Чынында, эгерде сиз өтө кооз болгуңуз келбесе, панелдин секирүүчү кабели модулдун антенна пинине түшүшү мүмкүн. Идеалында, түз зымдуу антенна 1/4 толкун узундугу болот, ал болжол менен 6,8 дюймга чейин иштейт. Мен адегенде секирүүчү зымды кылдым жана менин электроника устаканам жер төлөмдө болсо да, сырткы сенсорумду алууда эч кандай кыйынчылык болгон жок.

Дагы бир мүмкүнчүлүк - спиралдык антеннаны өзүңүз жасаңыз. Интернетте бул үчүн ар кандай пландар бар, бирок жогорудагы сүрөттө көрсөтүлгөн мен жасаган нерсе. Мен Ethernet кабелинин сыныктарынан катуу өзөктүү зымды колдонуп, аны 5/32 дюймдук бургулоочу учунун жылмакай учуна ороп алдым. Изоляцияны RF тактасына кошулган учту кошпогондо калтырыңыз. Сизге 20 бурулуш керек болот. Сиз ошондой эле 7/32 дюймдук бургуңузду колдонуп, анын ордуна 17 бурулушту ороп алсаңыз болот. Булардын кайсынысы болбосун сенсорлоруңуз үчүн болушу мүмкүн болгон диапазондордо жакшы иштейт. Чыныгы ачкыч - бул жакшы RF кабылдагычы менен баштоо. AcuRite сенсорлорунда дагы абдан күчтүү өткөргүчтөр бар.

4 -кадам: RF байланыш протоколу

Маалыматты берүүнүн бир нече ар кандай модуляция ыкмалары бар, бирок бул сенсорлор эң жөнөкөйүн колдонушат: OOK (өчүрүү-ачуу) же ASK (амплитуда-смена-клавиш). Бул мисалда 0/1 маалымат биттери менен иштеп жаткандыктан, амплитудасы толук же өчүрүлгөн. Ошентип, биздин максаттарыбыз үчүн, OOK менен ASK бирдей, анткени OOK RF алып жүрүүчүсү толук же толук экенин билдирет. Билдирүүнүн форматы көбүнчө берүүчү түзүлүштүн өндүрүүчүсү тарабынан аныкталат жана алар ар кандай өткөрүү ылдамдыгын, бит форматтоо стилин жана билдирүүнүн узундугун колдоно алышат. 433-МГц диапазону акылдуу эсептегичтер сыяктуу нерселерге толгон.

5 -кадам: Убакыт маалыматтар

Убакыт маалыматтар
Убакыт маалыматтар

Электр жарыгы өчкөндөн кийин автоматтык түрдө кайра баштала турган так маалыматтарды алуу үчүн арзан GPS бирдигин колдоном. Менде стандарттуу NMEA сүйлөмдөрүн чыгаруучу бир нече GPS бирдиги бар (дисплейсиз), бирок мендеги бирдиктердин эң кичинеси жана эң арзаны NEO-6M. NEO-6M модулу Arduino менен интерфейске оңой, анткени ал TTL деңгээлиндеги сериялык портту колдонот. Бир гана чыныгы айырма, NMEA стандарты 4800 сериялык берилүү ылдамдыгын көрсөтөт, бирок NEO-6M демейки боюнча 9600 бады түзөт. Байдын ылдамдыгын өзгөртүү үчүн бекер "u-center" программасын иштете аласыз, бирок мен аны заводдун демейки абалында калтырдым. Ошондой эле GPSInfo (Globalsat тарабынан чыгарылган) деп аталган бекер пайдалуу программа бар, ал компьютердеги GPS маалыматын көрүү үчүн абдан ыңгайлуу. Сиз аны текшерүү үчүн же компьютерди орнотуу үчүн GPS бирдигин стандарттуу USBден TTLге туташтырсаңыз болот. Эсиңизде болсун, модулдагы GPS чипи 3.3 вольтто иштейт (борттогу чыңалуу жөндөгүчү аркылуу), андыктан анын RXD портуна туташкыңыз келсе, 5 вольттон ылдый жылышыңыз керек. TXD порту Arduino же PCке түз туташа алат.

6 -кадам: Убакыт алкактары

GPS убактысын көрсөтүү - жөн гана UTC (Universal Time Coordinated) көрсөтүүнү каалаган убакта жасоо оңой нерсе. NMEA сүйлөмдөрү ASCII белгилеринен турат, алар ЖКга түз чыгарылышы мүмкүн. Убакыт бөлүгү HHMMSS. FF форматында (саат, мүнөт, секунд жана бөлчөк секунд). Биздин саат үчүн бөлчөк бөлүгү пайдалуу эмес, андыктан биз алты тамга менен күрөшүшүбүз керек. Көйгөй, эгер сиз кааласаңыз, жергиликтүү убакытка жана 12 сааттык AM/PM форматына которууңуз керек. Бирок кээде көйгөйлөр жашоону кызыктырат, ошондуктан программалык камсыздоонун бул бөлүгү чынында ушундай.

Убакыт алкактарына келсек, алардын 24ү UTC жайгашкан жерден чыгышта (+ зоналар) жана UTC жайгашкан жерден батышта (- зоналар) 12 болот деп ойлошуңуз мүмкүн. Чынында, бир нече кызыктай адамдар бар, алар бөлчөк сааттар жана жубайлар 12 сааттык "чектен" ашат. Эгерде сиз ошол аймактардын биринде жашасаңыз, мен кечирим сурайм, анткени менин программам 24 сааттын бардык зоналарына гана тиешелүү. Бизде кээ бирөөлөр жазгы убакытты жылдын бир бөлүгүн колдонушат, бирок бул автоматтык түрдө программада эсепке алынбайт. Бул келечектеги даталардын таблицасын, программалык камсыздоонун кошумча татаалдыгын жана эгерде жылдын апталары алмашса, программаны жаңыртуунун зарылдыгын талап кылат. Анын ордуна, аппараттык убакыт тилкесин оңой орнотууга мүмкүнчүлүк берүү үчүн убактылуу байланыш которгучун колдонот (UTC жылышы).

7 -кадам: схемалык

Схемалык
Схемалык

Схема жогоруда көрсөтүлгөн жана 4 бит 1602 ЖК интерфейси үчүн туташууларды камтыйт. RF кабылдагычтын сериялык маалыматтары санариптик логикалык деңгээлде, ошондуктан ал Arduino маалымат киргизүү казыктарынын бирине түз туташат. Пин программалык камсыздоодо импульстун туурасын өлчөө үчүн үзгүлтүккө учуроо функциясын аткаруу үчүн конфигурацияланган. GPS TXD чыгаруу Arduino RX кирүүсүнө түз туташкан.

Колдонулган эки которгуч бар. Жогоруда айтылгандай, убактылуу байланыш которгучу UTC ордун орнотууга мүмкүндүк берет. Белгиленген режимге өтүү үчүн которгучту каалаган убакта басса болот. Башында дисплейде UTC жараксыздыгы "+77" көрсөтүлөт. UTC офсеттик жөндөө көрсөтмөлөрү үчүн "Саат программасы" бөлүмүн караңыз.

Экинчи которгуч - жөнөкөй өчүрүү/өчүрүү. "Өчүрүү" абалында убакыт 12 сааттык форматта (AM/PM) жана "on" абалында убакыт 24 сааттык форматта көрсөтүлөт. Форматтар арасында которуштуруу үчүн бул которууну каалаган убакта өзгөртсө болот.

Эгерде жөн гана саат функциясы керек болсо, анда RF кабыл алуучу модулун туташтыруунун кажети жок. Эгерде жөн гана аба ырайы функциясы керек болсо, анда GPS менен эки өчүргүчтү туташтыруунун кажети жок.

8 -кадам: ЖК программалык камсыздоо

Мен LCD интерфейстеринин эки түрүнүн бирин колдонууга жакынмын. Бири стандарттуу 4 биттик интерфейс, экинчиси 3 зымдуу интерфейс, ал нөөмөт реестрин колдонот. Мен чектелген сандагы I/O төөнөгүчтөрү бар кичинекей PIC микроконтроллерлери менен иштеп жүргөндө мен бул интерфейсти иштеп чыккам. Мен бул долбоор үчүн 4 биттик интерфейсти колдондум, бирок жалпы Arduino LCD китепканасын колдонуунун ордуна менин жеке ЖК камтыган файлым бар. Бул эс тутумду жана коддун татаалдыгын азайтат, ошондой эле мага ушул сыяктуу конкреттүү долбоорлордун кодун өзгөртүүгө мүмкүнчүлүк берет.

9 -кадам: Саат программасы

GPS бирдиги ар кандай маалыматты камтыган ASCII саптары болгон NMEA-0183 стандарттуу сүйлөмдөрдү чыгарат. Бул колдонмо үчүн мен убакыт маалыматын алуу үчүн GGA сүйлөмүн тандадым, анткени бул мурунку GPS долбоору үчүн колдонулган сүйлөм. NMEA сүйлөмдөрүндөгү маалымат талаалары үтүр менен ажыратылат, андыктан GGA сүйлөмүнүн аталышы аныкталгандан кийин, программалык камсыздоо адатта үтүрдү санап, GPS маалыматынын ар бир керектүү талаасы үчүн тиешелүү күн тартибин чакырат. Бул жерде убакыттын маалыматы гана керек жана бул биринчи үтүрдөн кийин талаада, андыктан саноонун кереги жок.

Алты убакыт цифрасы (HHMMSS) буферленген жана андан кийин алардын баары кабыл алынгандан кийин иштетилет. GPS кээ бир толук эмес билдирүүлөрдү эрте чыгарышы мүмкүн, андыктан буферлөө тартиби ар бир символ ASCII сандык мааниси бар экендигин текшерет. Эгерде жаман мүнөз алынса, билдирүү жарактан чыгарылат. Бул ошондой эле сейрек учурларда, кадимки иштөө учурунда, айрыкча, сериялык порт байланышы бир аз төмөндөп кетиши мүмкүн. Мен муну бир гана жолу көрдүм жана болгон нерсенин баары - убакыт бир секундага токтолуп, анан бир секунданын ордуна эки секунд секирип кеткени.

Эгерде программалык камсыздоо конфигурацияланган гана убакытты көрсөтө турган болсо, анда ЖКнын биринчи сабында жергиликтүү убакыт, экинчи сапта UTC көрсөтүлөт. UTC үчүн программалык камсыздоо жөн эле ASCII символдорун дисплей тартибине жөнөтөт, эки чекит (:) тиешелүү түрдө киргизилген.

UTCти жергиликтүү убакытка которуу үчүн UTC офсетин (убакыт алкагын) колдонуу керек. GPSтен UTC убактысы ASCII форматында болгондуктан, программа ASCII саатынын символдорун ондукка айландырат жана UTC жылышын кошот. UTC офсети BCD позитивдүү мааниси катары сакталат, андыктан ал адегенде бүтүн санга айландырылат, андан кийин белги бити коюлса жокко чыгарылат. Жергиликтүү убакыт саатынын мааниси эсептелгенден кийин, аны BCDге айландыруу үчүн таблица колдонулат, андан кийин BCD көрсөтүү үчүн ASCIIге кайра айландырылат. Издөө таблицасы 24 сааттык UTC форматын, ошондой эле +/- 12 убакыт алкагын иштетиши керек. Бул үчүн, 0000дөн 2300гө чейинки UTC убактысы столдун 24 жазуусун ээлейт, 12 жазуусу мурун жана 12 жазуусу убакыт алкактарын эсепке алуу үчүн. Бир стол 12 сааттык форматта, ошондуктан мен дисплейдин AM/PM бөлүгүнө издөө столун коштум. Башка стол 24 сааттык форматта. Жогоруда айтылгандай, күйгүзүү/өчүрүү 12 же 24 сааттык форматты тандоого мүмкүндүк берет.

Убакыт алкагы инициализация учурунда EEPROMден алынат жана кыскача көрсөтүлөт. Эгерде ал жок дегенде бир жолу орнотулбаса, анда орнотуу тартиби чакырылат. Орнотуу тартибин каалаган убакта чакан контакт өчүргүчүн басуу менен чакырса болот. Орнотуу тартиби дисплейди "UTC OFFSET +77" деп баштайт. Коммутатордун кыска басуусу маанини "-00" ге өзгөртөт. Эгерде оң убакыт алкагы талап кылынса, анда башка кыска басуу "+00" маанисин өзгөртөт. Узак басуу (> 1 секунд) жөндөө режимин кийинки кадамга жылдырат. Бул учурда, ар бир кыска басуу убакыттын маанисин 12 максимумга чейин көбөйтөт. Каалаган убакыт алкагына жеткенден кийин, которгучту 1 секунддан ашык басып туруңуз жана андан кийин коё бериңиз. Программа андан кийин UTC маанисин EEPROMде сактап, "OFFSET SAVED" кыскача көрсөтөт. Кирүү учурунда ката кетирсеңиз, жөн эле чыгып, аны кайра коюу үчүн которгучту кайра басыңыз.

NEO-6M убакытты чыгаруу үчүн жакшы позицияны оңдоону талап кылбайт, андыктан бир спутникти алаар замат билдирүүлөрдү чыгарышы керек. Ага чейин дисплейде "МААЛЫМАТТАР ЖОК" деп жазылып турат.

10 -кадам: Аба ырайы программасы

PIC микроконтроллери тышкы импульс аркылуу таймерди күйгүзүү/өчүрүү мүмкүнчүлүгүнө ээ. Ошол эле кирүү импульсу импульстун узактыгын окуу үчүн тышкы үзгүлтүк катары да колдонулушу мүмкүн. Arduino так жөндөмүнө ээ эмес, ошондуктан мен үзгүлтүккө учуроо функциясын колдондум. RF кабар импульсунун бир четинде учурдагы микросекунд убактысы үзгүлтүккө учуроочу тарабынан сакталат. Карама -каршы четинде импульстун туурасын аныктоо үчүн өткөн убакыт эсептелет.

Программада "DEBUG" аныктамасы бар, ал алынган билдирүүлөрдүн чийки маалымат форматын көрсөтүүгө мүмкүндүк берет. RF кабылдагычынан сериялык агым үчүн Arduino киргизүү пинин аныктоо үчүн да аныктама бар. Программалык камсыздоо ушул аныктаманын негизинде реестрдин тиешелүү үзгүлтүктөрүн эсептөө үчүн орнотулган. Эсептөө Arduino санарип казыктары үчүн гана иштейт. Анын ордуна аналогдук пин колдонулушу мүмкүн, бирок бул регистрдин маанилерин катуу коддоону талап кылат.

Үзгүлтүктү кармоочу кармалып турган сандын башталыш импульсу үчүн жетиштүү экендигин аныктайт. Жогоруда айтылгандай, бир нече билдирүүнүн ортосундагы ажырым 2 мс, ошондуктан программалык камсыздоо издеп жатат. Бардык 433-МГц трафиктен улам, программалык камсыздоонун баштапкы скрининги өлчөнгөн убакыттын жок дегенде 1,8 мс, бирок 2,4 мсден ашпашын камсыз кылат. Старт аныкталгандан кийин, программа синхрондоштуруу биттерин издейт (600us) жана алардын төртөө кабыл алынганына ынануу үчүн эсептейт. Бул тесттер өткөндөн кийин, программалык камсыздоо 200us жана 400usтун туура убакыттарын издейт.

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

RF билдирүүсүндөгү Centigrade маалыматтарынын эки байты чогуу эзилип, 11 биттик маанини түзөт. Төмөнкү бөлүк паритет битти жок кылуу жана аны жогорку бөлүктөгү биттер менен тегиздөө үчүн бир аз солго жылдырылган. Эки байт 16 биттик сөздүн өзгөрмөсүнө айландырылган, андан кийин бүт бит бир калыпка келүү үчүн баары туура бир азга жылдырылган. Сөз өзгөрмөсү математикалык эсептөөлөр үчүн өзгөрмөлүү чекит өзгөрмөсүнө айландырылат.

P+ боюнча Arduino менен Ассамблея тилине каршы C ++ колдонуунун бир чоң артыкчылыгы математикалык эсептөөлөрдү жөнөкөйлөштүрүүдө. Жогоруда айтылгандай, Centigrade конверсиясы (C / 10) -100. Натыйжа сапка айландырылат жана дисплей үчүн ЖКга жөнөтүлөт. Фаренгейтти эсептөө (C * 1.8) + 32. Жыйынтык кайра сапка айландырылат жана дисплей үчүн ЖКга жөнөтүлөт. Эки учурда тең, String конверсиясы терс белгини (эгер болсо) жана ондук чекитти камтыйт. Ондук чекит үчүн чек ондуктан кийинки бир гана белгинин дисплейге жөнөтүлүшүн камсыз кылат. Бул текшерүү керек, анткени саптын узундугу 3төн 5ке чейин болушу мүмкүн.

Менде эки AcuRite сенсору бар, ошондуктан мен программалык камсыздоону аба ырайы функциясына гана орнотулган болсо, экинчисинин маалыматы экинчисинин маалыматынын үстүнөн жазылбашы үчүн программалык камсыздоого чек коштум. Күйгүзүлгөндөн кийин алынган биринчи сенсор 1 -сапта, экинчиси 2 -сапта көрсөтүлөт. Мүчүлүштүктөрдү оңдоо режимин колдонуу менен, мен ар бир сенсор үчүн ID эмне экенин көрө алам, эгерде мен кодду жөнөкөй текшере алсам. алардын биринен маалыматтарды иштетүүнү каалаган.

Программалык камсыздоо батарейканын абалын (байт3) көзөмөлдөйт жана батареянын аздыгын көрсөтсө, билдирүү көрсөтөт. Бул билдирүү ошол сенсор үчүн башка бардык маалыматтарды жазат.

11 -кадам: көрсөтөт

Дисплейлер
Дисплейлер
Дисплейлер
Дисплейлер
Дисплейлер
Дисплейлер

Бул жерде ар кандай функциялар үчүн кээ бир мисалдар бар. Менде башка бир нече көрсөтмөлөр бар, бирок менин PIC микроконтроллер долбоорлорумдун көбүн менин веб -сайтымдан тапса болот: www.boomerrules.wordpress.com

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