Съдържание:
- Стъпка 1: Модификации на предавателя
- Стъпка 2: Модификации на приемника: Добавяне на PIC16F887 и HD44780 LCD
- Стъпка 3: Няколко справки …
- Стъпка 4: Заключения и бъдеща работа
Видео: Безжична комуникация, използваща евтини 433MHz RF модули и микроконтролери Pic. Част 2: 4 стъпки (със снимки)
2024 Автор: John Day | [email protected]. Последно модифициран: 2024-01-30 07:53
В първата част на тази инструкция демонстрирах как да програмирате PIC12F1822, използвайки MPLAB IDE и XC8 компилатор, за да изпращате обикновен низ безжично, използвайки евтини TX/RX 433MHz модули.
Приемният модул е свързан чрез USB към UART TTL кабелен адаптер към компютър и получените данни се показват на RealTerm. Комуникацията се осъществяваше на 1200 бода и максималният постигнат обхват беше около 20 метра през стени. Моите тестове показаха, че за приложения, където няма нужда от висока скорост на предаване на данни и дълъг обхват, както и за непрекъснато предаване, тези модули се представиха изключително добре.
Втората част на този проект демонстрира как да добавите микроконтролер PIC16F887 и LCD модул 16 × 2 символа към приемника. Освен това на предавателя се следва прост протокол с добавяне на няколко байта преди предусилвателя. Тези байтове са необходими, за да може RX модулът да коригира печалбата си, преди да получи действителния полезен товар. От страна на приемника PIC отговаря за получаването и валидирането на данните, които се показват на LCD екрана.
Стъпка 1: Модификации на предавателя
В първата част предавателят изпращаше прост низ на всеки няколко ms, използвайки осем бита данни, начален и стоп бит при 1200 бита в секунда. Тъй като предаването беше почти непрекъснато, приемникът нямаше проблеми да настрои печалбата си към получените данни. Във втората част фърмуерът се променя така, че предаването се извършва на всеки 2,3 секунди. Това се постига чрез прекъсване на таймера за наблюдение (зададено на 2.3s), за да се събуди микроконтролерът, който се поставя в режим на заспиване между всяко предаване.
За да може приемникът да има време за фина настройка на печалбата си, няколко байта от преамбюла с кратки LO времена "(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa)" се изпращат преди действителните данни. След това полезният товар се обозначава с начален байт '&' и стоп '*'.
Следователно простият протокол е описан, както следва:
(0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xf8) (0Xfa) & Hello InstWorld!*
Освен това, 10uF разединяващ танталов кондензатор е добавен между V+ и GND на RF модула, за да се отървете от вълните, причинени от модула за увеличаване на dc-dc.
Скоростта на предаване остава същата, но моите тестове показаха, че и при 2400 бода предаването беше ефективно.
Стъпка 2: Модификации на приемника: Добавяне на PIC16F887 и HD44780 LCD
Дизайнът на приемника се основава на PIC16F887, но можете да използвате различен PIC с малки модификации. В моя проект използвах този 40 пинов μC, тъй като ще се нуждая от допълнителни щифтове за бъдещи проекти, базирани на този дизайн. Изходът на RF модула е свързан към UART rx извод, докато 16x2 символен LCD (HD44780) е свързан чрез PORTB пинове b2-b7 за показване на получените данни.
Както при част 1, получените данни също се показват на RealTerm. Това се постига с помощта на UART tx щифт, който е свързан чрез USB към UART TTL кабелен адаптер към компютър.
Вглеждайки се във фърмуера, когато се случи UART прекъсване, програмата проверява дали полученият байт е стартов байт ('&'). Ако отговорът е да, той започва да записва следващите байтове, докато не бъде уловен стоп байт ('*'). Веднага след като се получи цялото изречение и ако то отговаря на простия протокол, описан по -горе, то се изпраща на lcd екрана, както и на UART tx порта.
Преди да получи началния байт, приемникът вече е коригирал печалбата си, използвайки предходните байтове на преамбюла. Те са от решаващо значение за безпроблемната работа на приемника. Извършва се проста проверка на грешки при превишаване и кадриране, но това е само основна реализация на UART за обработка на грешки.
Що се отнася до хардуера, за приемника са необходими няколко части:
1 x PIC16F887
1 x HD44780
1 x RF Rx модул 433Mhz
1 x 10 μF танталов кондензатор (отделяне)
1 x 10 K тример (яркост на LCD шрифта)
1 x 220 Ω 1/4 W резистор (LCD подсветка)
1 x 1 KΩ 1/4 W
1 x Антена 433Mhz, 3dbi
На практика получените работиха изключително добре в диапазони до 20 метра през стени.
Стъпка 3: Няколко справки …
Има много блогове в мрежата, които дават съвети за PIC програмиране и отстраняване на проблеми, освен официалния уебсайт на Microschip. Намерих следното за много полезно:
www.romanblack.com/
0xee.net/
www.ibrahimlabs.com/
picforum.ric323.com/
Стъпка 4: Заключения и бъдеща работа
Надявам се, че тази инструкция ви е помогнала да разберете как да използвате RF модули и микроконтролери Pic. Можете да настроите вашия фърмуер според вашите собствени нужди и да включите CRC и криптиране. Ако искате да направите своя дизайн още по-сложен, можете да използвате технологията Keeloq на Microschip. В случай, че приложението ви се нуждае от двупосочни данни, ще трябва да имате чифт TX/RX и на двата микроконтролера, или можете да използвате по-сложен трансивър модули. Използвайки обаче този вид евтини 433MHz модули, може да се осъществи само половин дуплекс комуникация. Освен това, за да направите комуникацията по -надеждна, ще трябва да имате някаква форма на ръкостискане между TX и RX.
На следващата инструкция ще ви покажа практическо приложение, при което сензор за околната среда с температура, барометрично налягане и влажност се добавя към предавателя. Тук предаваните данни ще включват crc и ще имат основно криптиране.
Сензорът ще използва порта i2c на PIC12F1822, докато реализацията както на предавателя, така и на приемника ще бъде разкрита чрез схеми и pcb файлове. Благодаря, че ме прочетохте!
Препоръчано:
Безжична алармена система Arduino, използваща съществуващи сензори: 9 стъпки (със снимки)
Безжична алармена система Arduino, използваща съществуващи сензори: Този проект може да бъде изграден за около половин час на цена от около $ 20,00, ако имате съществуващи 433Mhz или 315Mhz безжични алармени сензори. Това може да бъде и изцяло нов проект с безжични алармени сензори, като инфрачервени детектори за движение и тръстикови
Дълъг обхват, 1,8 км, безжична комуникация между Arduino и Arduino с HC-12 .: 6 стъпки (със снимки)
Дълъг обхват, 1,8 км, безжична комуникация между Arduino и Arduino с HC-12 .: В тази инструкция ще научите как да комуникирате между Arduinos на дълги разстояния до 1,8 км на открито. HC-12 е безжичен сериен порт комуникационен модул, който е много полезен, изключително мощен и лесен за използване. Първо ще напуснеш
Безжична комуникация с помощта на трансивър модул NRF24L01 за проекти, базирани на Arduino: 5 стъпки (със снимки)
Безжична комуникация, използваща трансивер модул NRF24L01 за проекти, базирани на Arduino: Това е вторият ми инструкционен урок за роботите и микроконтролерите. Наистина е невероятно да видите вашия робот жив и работещ според очакванията и повярвайте ми, че ще бъде по -забавно, ако управлявате вашия робот или други неща безжично с бързо и
МОДУЛИ НА ТРУБА НА NIXIE - Част I: 8 стъпки (със снимки)
МОДУЛИ НА НИКСИ ТРЪБНИ ЧАСТИ - Част I: Това, което търсех, беше начин лесно да се справя с множество цифри на никси тръби в различни проекти, върху които работех. Наистина исках лесен начин да свържа много цифри заедно с минимално разстояние между цифрите и да контролирам цифрите b
МОДУЛИ НА ТРУБНИ НИКСИ NIXIE Част III - HV ЗАХРАНВАНЕ: 14 стъпки (със снимки)
МОДУЛИ НА ТРУБНИ НИКСИ NIXIE Част III - HV ЗАХРАНВАНЕ: Преди да разгледаме подготовката на микроконтролера Arduino/Freeduino за свързване към модулите за задвижване на тръбите nixie, описани в Част I и Част II, можете да изградите това захранване, за да осигурите необходимото напрежение на изпичане от тръбите nixie. Това е