- Модул РФ предајника и пријемника 433МХз:
- Потреба кодера и декодера:
- Компоненте потребне:
- Кружни дијаграм:
- Објашњење кода:
Поздрав свима, данас ћемо у овом пројекту повезати РФ пријемник и предајнички модул са ПИЦ микроконтролером и бежично комуницирати између два различита микроконтролера пиц.
У овом пројекту ћемо урадити следеће ствари: -
- Користићемо ПИЦ16Ф877А за предајник и ПИЦ18Ф4520 за одељак пријемника.
- Повезиваћемо тастатуру и ЛЦД са ПИЦ микроконтролером.
- На страни предајника повезиваћемо тастатуру са ПИЦ-ом и преносити податке. Са стране пријемника, примићемо податке бежично и показати који тастер је притиснут на ЛЦД-у.
- За пренос 4-битних података користићемо ИЦ кодер и декодер.
- Фреквенција пријема ће бити 433Мхз користећи јефтини РФ ТКС-РКС модул доступан на тржишту.
Пре него што кренемо у шеме и кодове, хајде да разумемо како функционише РФ модул са енкодер-декодерима. Такође прођите кроз два чланка да бисте сазнали како повезати ЛЦД и тастатуру са ПИЦ микроконтролером:
- ЛЦД повезивање са ПИЦ микроконтролером помоћу МПЛАБКС и КСЦ8
- 4к4 матрично повезивање тастатуре са ПИЦ микроконтролером
Модул РФ предајника и пријемника 433МХз:
То су одашиљачки и пријемнички модули које користимо у пројекту. То је најјефтинији модул доступан за 433 МХз. Ови модули прихватају серијске податке у једном каналу.
Ако видимо спецификације модула, предајник је оцењен за рад од 3,5 до 12 В као улазни напон, а растојање преноса је 20-200 метара. Преноси се у АМ (Аудио Модулатион) протоколу на фреквенцији 433 МХз. Податке можемо преносити брзином од 4КБ / С са снагом од 10мВ.
На горњој слици можемо видети пин-оут модула Трансмитер. С лева на десно су игле ВЦЦ, ДАТА и ГНД. Такође можемо додати антену и залемити је на месту означеном на горњој слици.
За спецификацију пријемника, пријемник има снагу од 5В једносмерне струје и 4МА струје мировања као улаз. Пријемна фреквенција је 433,92 МХз са осетљивошћу од -105ДБ.
На горњој слици можемо видети пин-оут модула пријемника. Четири пина су слијева удесно, ВЦЦ, ДАТА, ДАТА и ГНД. Та два средња пина су међусобно повезана. Можемо користити било који или обоје. Али добра је пракса користити оба за снижавање спреге буке.
Такође, једна ствар није наведена у техничком листу, променљива индуктивност или ПОТ на средини модула користе се за калибрацију фреквенције. Ако нисмо могли да примимо пренесене податке, постоје могућности да се фреквенције преноса и пријема не подударају. Ово је РФ коло и морамо да подесимо предајник на савршену тачку фреквенције која се преноси. Такође, исто као и предајник, овај модул такође има антенски порт; жицу можемо залемити у намотаном облику за дужи пријем.
Опсег преноса зависи од напона који се испоручује на предајник и дужине антена на обе стране. За овај специфични пројекат нисмо користили спољну антену и користили смо 5В на страни предајника. Проверили смо са удаљености од 5 метара и то је савршено функционисало.
РФ модули су веома корисни за бежичну комуникацију на велике даљине. Овде је приказан основни круг РФ предајника и пријемника. Направили смо много пројеката користећи РФ модул:
- РФ контролисани кућни апарати
- Аутомобил под контролом Блуетоотх-а који користи Ардуино
- РФ даљинско управљане ЛЕД диоде помоћу Распберри Пи
Потреба кодера и декодера:
Овај РФ сензор има неколико недостатака: -
- Једносмерна комуникација.
- Само један канал
- Веома сметње буке.
Због овог недостатка користили смо ИЦ кодер и декодер, ХТ12Д и ХТ12Е. Д означава декодер који ће се користити на страни пријемника, а Е значи енкодер који ће се користити на страни предајника. Ови ИЦ пружају 4 канала. Такође због кодирања и декодирања ниво буке је врло низак.
На горњој слици леви је ХТ12Д декодер, а десни ХТ12Е, онај енкодер. Обе ИЦ су идентичне. А0 до А7 се користи за посебно кодирање. Можемо да користимо пинове микроконтролера за контролу тих пинова и подешавање конфигурација. Исте конфигурације треба да се подударају на другој страни. Ако су обе конфигурације тачне и одговарају, можемо добити податке. Ових 8 пинова могу се повезати на Гнд или ВЦЦ или оставити отворене. Какве год конфигурације да радимо у кодеру, морамо да ускладимо везу на декодеру. У овом пројекту оставићемо отворених тих 8 пинова и за енкодер и за декодер. 9 и 18 пински су ВСС односно ВДД. Можемо користити ВТ пин уХТ12Д као сврха обавештавања. За овај пројекат га нисмо користили. ТЕ пин за пренос омогућили или онемогућили игла.
Важан део је ОСЦ пин где морамо да повежемо отпорнике како бисмо обезбедили осцилацију кодера и декодера. Декодеру су потребне веће осцилације од декодера. Вредност отпорника кодера обично је 1Мег, а вредност декодера је 33к. Те отпорнике ћемо користити за наш пројекат.
ДОУТ пин је пин података РФ РФ предајника на ХТ12Е, а ДИН пин у ХТ12Д се користи за повезивање пин података РФ модула.
У ХТ12Е, АД8 до АД11 је четвороканални улаз који се конвертује и серијски преноси кроз РФ модул, а тачно обрнуто се дешава у ХТ12Д, серијски подаци се примају и декодирају, а ми добијамо 4-битни паралелни излаз преко 4 пина Д8 до Д11.
Компоненте потребне:
- 2 - Даска за хлеб
- 1 - ЛЦД 16к2
- 1 - тастатура
- Пар ХТ12Д и ХТ12Е
- РКС-ТКС РФ модул
- 1- 10К унапред подешено
- Отпорник 2 - 4,7 к
- 1- 1М отпорник
- 1- 33к отпорник
- 2- 33пФ керамички кондензатори
- Кристал од 1 - 20 МХз
- Бергстицкс
- Неколико једноструких жица.
- ПИЦ16Ф877А МЦУ
- ПИЦ18Ф4520 МЦУ
- Одвијач за контролу фреквенцијског лонца треба да буде изолован од људског тела.
Кружни дијаграм:
Шема круга на страни предајника (ПИЦ16Ф877А):
У сврху преноса користили смо ПИЦ16Ф877А. Хекс тастатура повезана преко ПОРТБ и 4 канала повезаних преко последње 4 бита ПОРТД. Овде сазнајте више о повезивању 4к4 Матрик тастатуре.
Испредите на следећи начин-
1. АД11 = РД7
2. АД10 = РД6
3. АД9 = РД5
4. АД8 = РД4
Кружни дијаграм на страни пријемника (ПИЦ18Ф4520):
На горњој слици приказано је коло пријемника. ЖК је повезан преко ПОРТБ. Користили смо интерни осцилатор на ПИЦ18Ф4520 за овај пројекат. На 4 канала су повезани на исти начин као што смо раније у кругу предајника. Овде сазнајте више о повезивању ЛЦД-а 16к2 са ПИЦ микроконтролером.
Ово је страна предајника -
И страна пријемника у одвојеној плочи за плочу -
Објашњење кода:
Постоје два дела кода, један је за предајник, а други за пријемник. Комплетни код можете преузети овде.
ПИЦ16Ф877А код за РФ предајник:
Као и увек прво, морамо да поставимо конфигурационе битове у микроконтролеру пиц, да дефинишемо неке макронаредбе, укључујући библиотеке и фреквенцију кристала. АД8-АД11 порт Енцодер иц се дефинише као РФ_ТКС на ПОРТД. Можете проверити код свих оних у комплетном коду датом на крају.
Користили смо две функције, воид систем_инит (воид) и воид енцоде_рф_сендер (цхар подаци).
Систем_инит се користи за пин иницијализације и тастатуре инитиализатионс. Иницијализација тастатуре се позива из библиотеке тастатуре.
Порт тастатуре је такође дефинисан у тастатури.х. Ми смо направили ПОРТД као излаз користећи ТРИСД = 0к00, и направио РФ_ТКС порт као 0к00 као подразумевано стање.
воид систем_инит (воид) { ТРИСД = 0к00; РФ_ТКС = 0к00; кеибоард_инициализатион (); }
У енцоде_рф_сендер смо променили 4-полно стање у зависности од притиснутог дугмета. Створили смо 16 различитих хексадецималних вредности или стања ПОРТД у зависности од ( 4к4) 16 различитих притиснутих тастера.воид енцоде_рф_сендер (цхар дата) { иф (дата == '1') РФ_ТКС = 0к10; ако (подаци == '2') РФ_ТКС = 0к20; ако (подаци == '3') …………... …. …
У главној функцији прво примамо притиснуте тастере на тастатури помоћу функције свитцх_пресс_сцан () и податке складиштимо у променљивој тастера. Након тога смо кодиране податке користећи енцоде_рф_сендер () функцију и мења ПОРТД статус.
ПИЦ18Ф4520 код за РФ пријемник:
Као и увек, прво смо поставили конфигурационе битове у ПИЦ18ф4520. Његова мало другачија од ПИЦ16Ф877А, код можете проверити у приложеној зип датотеци.
Укључили смо датотеку заглавља ЛЦД-а. Дефинисана је веза Д8-Д11 порта Децодер ИЦ преко ПОРТД-а помоћу #дефине РФ_РКС ПОРТД линије, веза је иста као и у одељку Енцодер. Изјава о ЛЦД порту се такође врши у датотеци лцд.ц.
#инцлуде
Као што је речено пре него што смо користили унутрашњи осцилатор за 18Ф4520, користили смо функцију систем _ инит где смо конфигурисали ОСЦОН регистар 18Ф4520 да подесимо унутрашњи осцилатор на 8 МХз. Такође смо поставили ТРИС бит за оба пина ЛЦД-а и пинове декодера. Како ХТ - 12Д пружа излаз на Д8-Д11 портовима, морамо да конфигуришемо ПОРТД као улаз за пријем излаза.
воид систем_инит (воид) { ОСЦЦОН = 0б01111110; // 8 МХз,, интосц // ОСЦТУНЕ = 0б01001111; // ПЛЛ омогућавање, Мак пресцалер 8к4 = 32Мхз ТРИСБ = 0к00 ; ТРИСД = 0кФФ; // Последња 4 бита као улазни бит. }
Конфигурисали смо ОСЦОН регистар на 8 МХз, такође направили порт Б као излаз и порт Д као улаз.
Испод се врши функција користећи тачно обрнуту логику која је коришћена у претходном одељку предајника. Овде добијамо исту хексадецималну вредност из порта Д и по тој хексадецималној вредности идентификујемо који је прекидач притиснут у одељку предајника. Можемо идентификовати сваки притисак тастера и предати одговарајући знак ЛЦД-у.
воид рф_аналисис (унсигнед цхар рецивед_бите) { иф (рецивед_бите == 0к10 ) лцд_дата ('1'); иф (рецивед_бите == 0к20) лцд_дата ('2'); ако (примљени_бајт == 0к30) ……. ….. …… ………..
Подаци лцд_дата позивају се из датотеке лцд.ц.
У главној функцији прво иницијализујемо систем и ЛЦД. Узели смо променљиву бајт, а чува се хек вредности примљених од луке Д. Тада помоћу функције рф_аналисис можемо штампати знак на ЛЦД екрану.
воид маин (воид) { непотписани цхар бите = 0; систем_инит (); лцд_инит (); вхиле (1) { лцд_цом (0к80); лцд_путс ("ЦирцуитДигест"); лцд_цом (0кЦ0); бајт = РФ_РКС; рф_аналисис (бајт); лцд_цом (0кЦ0); } ретурн; }
Пре покретања, подесили смо коло. Прво смо притиснули дугме „ Д “ на тастатури. Дакле, 0кФ0 се непрекидно преноси од РФ предајника. Затим смо подешавали круг пријемника све док на ЛЦД-у не буде приказан знак „ Д “. Понекад је модул правилно подешен од произвођача, понекад није. Ако је све правилно повезано и на ЛЦД-у се не постиже вредност притиснутог дугмета, постоје могућности да РФ пријемник није подешен. Користили смо изоловани одвијач за смањење погрешних могућности подешавања због наше индуктивности тела.
На овај начин можете повезати РФ модул са ПИЦ микроконтролером и бежично комуницирати између два ПИЦ микроконтролера помоћу РФ сензора.
Комплетни код за предајник и пријемник можете преузети одавде, такође погледајте демонстрацијски видео испод.