Передатчик fs1000a: Обзор радиомодуля на FS1000A (RF-5V) – RobotChip

Содержание

Передатчик fs1000a

Тоже к двум. Эта пара отличается очень низкой стоимостью , при этом имеет весьма неплохой радиус передачи около ти метров в условиях города. Это распространённая частота для радиосвязи. Это будет антенной.


Поиск данных по Вашему запросу:

Схемы, справочники, даташиты:

Прайс-листы, цены:

Обсуждения, статьи, мануалы:

Дождитесь окончания поиска во всех базах.

По завершению появится ссылка для доступа к найденным материалам.

Содержание:

  • Беспроводной передатчик FS1000A и приемник MX-RM-5V
  • Радиомодуль беспроводной передатчик и приемник 433M 2 платы Модуль(FS1000A+080408)
  • Щось пішло не так 🙁
  • Подключение радиомодулей к микроконтроллеру
  • Беспроводной передатчик + приемник 433Mhz для Arduino
  • Arduino передатчик и приемник RD-RF5-433 RF 433МГц комплект.

ПОСМОТРИТЕ ВИДЕО ПО ТЕМЕ: ТЕСТ: Передатчика FS1000A vs WL118(Проверка какой из них, самый дальнобойный)

Беспроводной передатчик FS1000A и приемник MX-RM-5V


Передатчик подключается к любым выводам Arduino , а подключение приёмника зависит от типа используемой библиотеки:. Первый усилитель любого приёмника и последний усилитель любого передатчика, это антенна.

Самая простая антенна — штыревая отрезок провода определённой длины. Длина антенны как приёмника, так и передатчика , должна быть кратна четверти длины волны несущей частоты. Антенны припаиваются к контактным площадкам, как показано на схеме:. Артикул: Наличие: шт. Сообщить о поставке на e-mail:. Характеристики передатчика FSA Рабочая частота: Но данные библиотеки не используют аппаратные таймеры, а значит не ограничивают Вас в использовании ШИМ.

При использовании библиотеки VirtualWire , приёмник подключается к любому выводу Arduino.

Но библиотека использует первый аппаратный таймер, что накладывает ограничение на использование как данного таймера, так и его выводов ШИМ. Подробнее о модулях Передатчик использует цифровой вход для передачи сигнала с использованием амплитудной манипуляции ASK Amplitude Shift Keying.

Амплитудная манипуляция ASK отличается от амплитудной модуляции AM — amplitude modulation тем, что модулировать можно любой сигнал как цифровой, так и аналоговый , а манипулировать только цифровым.

Данные передаются по радиоканалу на расстоянии до м в пределах прямой видимости указано производителем Расстояние уверенного приёма можно увеличить, если подключить антенны к передатчику и приёмнику. Приёмник имеет два, электрически соединённых, цифровых выхода можно использовать любой. В приёмнике реализован блок автоматической регулировки усиления AGC — Automatic Gain Control благодаря которому увеличивается дальность приёма, но при отсутствии сигнала от передатчика, на выходе приёмника наблюдаются хаотичные чередования логических уровней.

Приемник критичен даже к незначительным пульсациям на шине питания. Если таковые имеются, то приемник принимает их за информационный сигнал, усиливает и выводит на выход в виде логических уровней. Пульсации на шине питания могут вызывать такие устройства как: сервоприводы, LED индикаторы, устройства с собственными генераторами или использующие ШИМ и т.

Влияние пульсаций на приёмник можно снизить несколькими способами, вот некоторые из них: Использовать, для питания Arduino, внешний источник, а не шину USB. Так как напряжение на выходе многих внешних источников питания контролируется или сглаживается. Установить на шине питания приёмника сглаживающий конденсатор. Использовать отдельное стабилизированное питание для приёмника. Использовать отдельное питание для устройств вносящих пульсации в шину питания.

Антенны Первый усилитель любого приёмника и последний усилитель любого передатчика, это антенна. Гарантии и возврат Используя сайт Вы соглашаетесь с условями.


Радиомодуль беспроводной передатчик и приемник 433M 2 платы Модуль(FS1000A+080408)

Новые книги Шпионские штучки: Новое и лучшее схем для радиолюбителей: Шпионские штучки и не только 2-е издание Arduino для изобретателей. Обучение электронике на 10 занимательных проектах Конструируем роботов. Руководство для начинающих Компьютер в лаборатории радиолюбителя Радиоконструктор 3 и 4 Шпионские штучки и защита от них. Сборник 19 книг Занимательная электроника и электротехника для начинающих и не только Arduino для начинающих: самый простой пошаговый самоучитель Радиоконструктор 1 Обновления Подавитель сотовой связи большой мощности. Перед тем как создавать тему на форуме, воспользуйтесь поиском! Пользователь создавший тему, которая уже была, будет немедленно забанен!

Радиомодуль беспроводной передатчик и приемник M 2 платы Модуль( FSA+). Фотография дает общее представление о товаре и не.

Щось пішло не так 🙁

В домашних условиях кирпич, бетон дальность конечно сильно снижается, но все же остается достаточной для уверенной связи между самыми удаленными уголками квартиры, даже при наличии по пути стен. Это позволяет пользовать данные радиомодули как радиоканал для передачи сигнала дистанционного управления бытовой аппаратурой в другую комнату. Конечно, проводной вариант удлинителя тоже актуален, но такая низкая цена радиомодулей, что просто тянет попробовать обойтись без прокладки лишних кабелей. Система состоит из блока передатчика и блока приемника. Задача блока передатчика в приеме инфракрасного сигнала пульта дистанционного управления и передаче его по радиочастоте. Блок передачи предельно прост, его схема показана на рисунке 1. Для приема сигнала команд от пульта используется готовый модуль-микросхема TSOP, по параметрам аналогичный тому, что в спутниковом приемнике. Впрочем, они все аналогичные, только различие в частоте модуляции от 27 кГц до 48 кГц.

Подключение радиомодулей к микроконтроллеру

Организовать беспроводную связь между платформами Arduino можно по нескольким технологиям. Для реализации простого и дешёвого беспроводного подключения, можно применить технологию в диапазоне LPD, работающую на частоте Ввиду того что частоту данного диапазона не нужно лицензировать, она нашла широкое применение в мире, среди маломощных устройств. В данном диапазоне работают авто сигнализации, пульты открывание гаражных дверей и включения люстр, а так же маломощные рации. В Украине и России разрешено свободное использование подобных устройств, если мощность передатчика не превышает 10 мВт.

На сегодняшний день все популярнее становятся примочки, работающие с микроконтроллером по радиочастотным схемам модулям.

Беспроводной передатчик + приемник 433Mhz для Arduino

Рисунок 4. Установка кодов группы и индивидуальных кодов для радиорозеток. Рисунок 8. База знаний. Вконтакте Instagram YouTube. Беспроводная связь.

Arduino передатчик и приемник RD-RF5-433 RF 433МГц комплект.

Частота передачи МГц, модуляция амплитудная. Хорошее решение для передачи данных на малых дистанциях. Передатчик собран на двух транзисторах, модуляция сигнала амплитудная, несущая частота равна Мгц, стабилизирована ПАВ резонатором. Плата передатчика имеет три вывода: Vcc, Gnd, data. Data является входом для модуляции данных, высокий логический уровень на этом выводе включает передатчик.

Внешний вид приёмника XY-MK-5V и передатчика FSA Передатчик имеет три вывода — два по питанию и один для данных.

Принципиальная схема модуля FSA, простейшие радиомикрофоны на основе этого простого радиопередатчика. Модули радиопередатчика типа FSA или аналогичные часто используются в различных устройствах автоматики, охранных системах для радиоуправления или передачи данных. Модуль представляет собой простой однокаскадный микромощный передатчик на транзисторе Q1 рис.

Я давно думал о подключении радиомодулей к микроконтроллеру для осуществления беспроводной передачи данных, и однажды просматривая сеть, наткнулся на дешевые радио-модули под платформу Arduino. Это простые радиомодули, передатчик модель FSA собран на двух транзисторах, модуляция сигнала амплитудная, несущая частота равна Мгц, стабилизирована ПАВ резонатором. Плата передатчика имеет три вывода: Vcc, Gnd для питания 3,В , вывод data является входом для модуляции данных, высокий логический уровень на этом выводе включает передатчик.

Приемник модель XY-MK-5V представляет собой сверхгенератор, на выходе которого стоит компаратор, приемники такого типа являются очень простыми из-за малого количества деталей, обладают высокой чувствительностью и автоматической регулировкой усиления, однако есть и недостатки, из-за высокой чувствительности и широкой полосы пропускания, он ловит много помех, на выходе всегда присутствует шум.

Это не опечатка. Метод enableReceive принимает не номер вывода, а номер прерывания.

Войдите , пожалуйста. Хабр Geektimes Тостер Мой круг Фрилансим. Войти Регистрация. Использование RF-модулей Электроника для начинающих Иногда, между устройствами требуется установить беспроводное соединение. В последнее время для этой цели все чаще стали применять Bluetooth и Wi-Fi модули.

Сайт Алексея Пахомова. Электроника Опубликовано в Дом Вокруг дома Досуг Природа Ракеты. Диалог Обратная связь.


Радионабор 433МГц. Джойстик с радиопередатчиком | BayRepo. ХобТех — электроника, программирование, эксперименты, исследования

Рассмотрим радионабор 433МГц состоящий из модуля передатчика FS1000A и приемника XY-MK-5V. Описание работы и устройства этих модулей можно найти по этой ссылке.

Задача

имеется:

  • FS1000A
  • XY-MK-5V
  • джойстик KY-023
  • микроконтроллеры attiny13a и attiny45
  • 2 сервопривода в держателе для камеры для Raspberry PI

нужно сделать пульт с джойстиком, который бы управлял сервоприводами(и камерой). Нажатие на джойстик включало бы и выключало бы камеру. Сигналы с джойстика конечо должны передаваться по радиоканалу.

Передатчик

Для передатчика используем FS1000A, джойстик KY-023, attiny13a. Запитаем его от кроны через стабилизатор LM317 с понижением до 5В(он выступает как фильтр питающей линии).

В качестве библиотеки передачи данных по воздуху использовались исходники. Я только упростил исходный код, убрал лишний для других контроллеров, оставил только для attyny13/45.

С передатчиком проблем не возникло, скорость передачи выбрал достаточно низкую — MAN_1200 — это примерно 100 бит в секунду.

Микроконтроллер опрашивает через АЦП Rx и Ry ножки джойстка, т.к джойстик — это два потенциометра и определяет позицию потенциометра. А так же детектирует нажатие кнопки джойстика. Считанные данные 2 раза в секунду помещаются в такой массив:

#define MAGIC_NUMBER 0xFFEE
#define SEND_SIZE 4
#define Rx_coord sendData[SEND_SIZE-3]
#define Ry_coord sendData[SEND_SIZE-2]
#define TransmitKey sendData[SEND_SIZE-1]
unsigned int sendData[SEND_SIZE] = { MAGIC_NUMBER, 0, 0, 0 };

Массив — это 4 слова:

  • 1 — число ключ для проверки приемником, что пришли правильные данные, а не мусор
  • 2 — координата X, считанная с джойстика
  • 3 — координата Y, считанная с джойстика
  • 4 — была ли нажата кнопка

Массив по манчестерскому протоколу передается на передатчик. Один кадр передачи — это преамбула и сами данные. Преамбула — это 15 бит: 14 нулей и единица. преамбула нужна, чтоб приемник настроился на прием кадра и искючился мусор и шум.

Низкая частота передачи и длинная преамбула гарантируют корректный прием данных.

Вся программа опроса датчиков и передачи уместилась в микросхеме attiny13a.

F_CPU=9600000

KiCad проект

Вот схема пульта:

Приемник

А вот с приемником дела обстояли хуже.

Применик должен быть запитан 5Вольтовым напряжением. Т.к. сервоприводы тоже требуют 5 вольт, то я их объединил на одну шину питания, после стабилизатора L7805.

Входной источник питания — батарея крона 9В или адаптер 10В. При работе сервоприводов на шину питания возникала нагрузка до 300 милли ампер, в эти моменты просаживалось напряжение до 4.5 Вольт на выходе L7805, в сети питания были постояные помехи, даже добавление фильтрующей емкости не помогало.

Микросхема XY-MK-5V выдавала нестабильные результаты:

  1. входной сигнал был инвертирован, по отношению передаваемого
  2. появились задержки на спадающий фронт сигнала в 450 микросекнуд, что сильно снижало скорость передачи

вот пример такого сигнала.Синим цветом отображается сигнал, который модулировался на передатчике, фиолетовым — сигнал принимаемый на приемнике.

Красным квадратом выделен один из участков с задержкой. На 60 мс сигнал на передатчике переходит от 1 к 0, на приемнике лишь на 61 мс происходит реакция — смена 0 в 1. Пришлось играться с исходным кодом ManchesterRF.c подбирая таймауты для определения 0 и 1, а так же подстроить под инвертированный сигнал.

Но потом пришла идея разделить питание микроконтроллера и сервоприводов и микросхемы XY-MK-5V. Сама микросхема XY-MK-5V была перенесена на питание от L7805CV, а микроконтроллер и серводвигатели перенесены на вывход LM317 и все заработало, пропала инферсия сигнала и задержки. Т.е приемник оказался очень чувствительным к помехам в сети питания.

Вот каким стал сигнал после разделения питания:

Пропала задержка и на 4-й и 5-й дорожке можно видеть ШИМ сигнал для сервоприводов.

Исходный код для программы микроконтроллера attiny45 можно найти здесь, F_CPU=8000000

В программе используется алгоритм поиска в буфере магического числа #define MAGIC_NUMBER 0xFFEE, даже если это число не в начале буфера, а например в конце, в этом случае прочитается еще один кадр и данные объединятся(можно было не усложнять и сделать просто проверку первых байт на MAGIC_NUMBER при возникновении события ManchesterRF_available())

Ниже приведена схема из файлов для KiCad

Работа модели:

Пример приема одного байта по Манчестерскому коду

В программе при изменении уровня сигнала формируется прерывание. LS — это значение уровня старое, до прерывания, RS — это значение уровня новое, после прерывания. L — длинный период(значит или 0 менялся на 1 или 1 на 0 в передаваемом бите), S — короткий период (значит идет последовательность повторяющихся бит)

Для примера передается последовательность бит: 00101100

Выглядеть это будет по Манчестерскому коду так:

черным выделены биты и сам сигнал, красным — моменты возникновения смены сигнала, зеленым — периоды

LS & RS период 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 слово
1 LS=1 RS=0 S 0 0
2 LS=0 RS=1 S 0 1 1
3 LS=1 RS=0 S 0 1 0 2
4 LS=0 RS=1 L 0 1 0 0 4
0 1 0 0 1 9
5 LS=1 RS=0 L 0 1 0 0 1 1 13
0 1 0 0 1 1 0 26
6 LS=0 RS=1 L 0 1 0 0 1 1 0 0 4C
0 1 0 0 1 1 0 0 1 99
7 LS=1 RS=0 S 0 1 0 0 1 1 0 0 1 0 132
8 LS=0 RS=1 S 0 1 0 0 1 1 0 0 1 0 1 265
9 LS=1 RS=0 L 0 1 0 0 1 1 0 0 1 0 1 1 4CB
0 1 0 0 1 1 0 0 1 0 1 1 0 996
10 LS=0 RS=1 S 0 1 0 0 1 1 0 0 1 0 1 1 0 1 132D
11 LS=1 RS=0 S 0 1 0 0 1 1 0 0 1 0 1 1 0 1 0 265A

итого имеем 0010011001011010. Разобьем по парам 00.10.01.10.01.01.10.10 и из каждой пары возьмем младьший бит — 00101100, т.е то число, которое закодировали в самом начале на картинке.

Что еще нужно сделать

На текущий момент в проекте нет шифрования и сопряжения устройств, т.е легко можно перехватить управление. Нет возможности сопрягать несколько пар устройств, т.к. манипулятор не имеет адреса. Но в качестве манипулятора для камеры для дома вполне подойдет.

Подключение радиомодулей к микроконтроллеру | RadioLaba.ru

              #include <P16F628A.INC>

              LIST        p=16F628A    

              __CONFIG    H’3F18′           ;внутренний тактовый генератор 4Мгц    

                                    

            

flag          equ         20h               ;дополнительный регистр флагов

vremya        equ         21h               ;регистр хранения фактического времени

kolbyte       equ         22h               ;регистр кол-ва принятых байт

reg           equ         23h               ;регистр приема данных от приемника

shets         equ         24h               ;регистр кол-ва принятых бит

FSR_osn       equ         25h               ;регистры для временного хранения значений

FSR_prer      equ         26h               ;во время прерываний

W_TEMP        equ         7Eh               ;

STATUS_TEMP   equ         7Fh               ;

 

data1         equ         60h               ;первый регистр хранения принятых команд

 

#DEFINE       dat     PORTB,4           ;присвоение названий линиям ввода-вывода

#DEFINE       led     PORTB,0

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 

              org         0000h             ;начать выполнение программы с адреса 0000h

              goto        Start             ;переход на метку Start

          

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Подпрограмма обработки прерываний

 

              org         0004h             ;начать выполнение подпрограммы с адреса 0004h

      

              movwf       W_TEMP            ;сохранение значений ключевых регистров

              swapf       STATUS,W          ;

              clrf        STATUS            ;

              movwf       STATUS_TEMP       ;

                

              movf        TMR0,W            ;сохранение значения счетчика TMR0

              movwf       vremya            ;в регистр vremya

              movlw       . 0                ;запись числа 0 в счетчик TMR0

              movwf       TMR0

 

              movf        FSR,W             ;запись содержимого регистра FSR в

              movwf       FSR_osn           ;регистр FSR_osn

              movf        FSR_prer,W        ;запись содержимого регистра FSR_prer в

              movwf       FSR               ;регистр FSR

 

              btfsc       INTCON,T0IF       ;опрос флага прерывания по переполнению TMR0

              goto        outshet           ;переполнение TMR0:переход в подпрограмму outshet

 

              btfss       dat               ;нет переполнения TMR0:сохранение состояния линии

              bcf         flag,0            ;dat в 0-й бит регистра flag1

              btfsc       dat

              bsf         flag,0

          

              movlw       .37               ;проверка длительности между

              subwf       vremya,W          ;прерываниями:больше-меньше 150мкс

              btfss       STATUS,C          ;

              goto        eror              ;длительность меньше 150мкс:переход на метку eror

              movlw       . 87               ;длительность больше 150мкс:проверка длительности:

              subwf       vremya,W          ;больше-меньше 350мкс

              btfsc       STATUS,C          ;

              goto        int1              ;длительность больше 350мкс:переход на метку int1

              bcf         flag,1            ;длительность меньше 350мкс:сброс 1-го бита регистра flag:

                                            ;приравниваем длительность к 250мкс

              goto        opred             ;переход на метку opred

int1          movlw       .100              ;проверка длительности: больше-меньше 400мкс

              subwf       vremya,W          ;

              btfss       STATUS,C          ;

              goto        eror              ;длительность меньше 400мкс:переход на метку eror

              movlw       .150              ;длительность больше 400мкс:проверка длительности:

              subwf       vremya,W          ;больше-меньше 600мкс

              btfsc       STATUS,C          ;

              goto        eror              ;длительность больше 600мкс:переход на метку eror

              bsf         flag,1            ;длительность меньше 600мкс:устанавливаем 1-й бит регистра

                                            ;flag:приравниваем длительность к 500мкс

opred         btfss       flag,0            ;опрос ранее сохраненного состояния линии dat

              goto        int2              ;низкий уровень линии dat:переход на метку int2

              btfsc       flag,1            ;высокий уровень линии dat(произведено измерение длительности-

                                            ;-сигнала низкого уровня):проверка длительности импульса

              bsf         flag,2            ;устанавливаем 2-й бит регистра flag:зафиксирован низкий

              btfss       flag,1            ;уровень сигнала длительностью 500мкс

              bcf         flag,2            ;сбрасываем 2-й бит регистра flag:зафиксирован низкий

                                            ;уровень сигнала длительностью 250мкс

              bsf         flag,7            ;устанавливаем 7-й бит регистра flag:зафиксирован

                                            ;низкий уровень сигнала с правильной длительностью-

                                            ;-разрешаем прием сигнала высокого уровня

              goto        vihod             ;переход на метку vihod

 

int2          btfss       flag,7            ;низкий уровень линии dat:(произведено измерение длительности-

                                            ;-сигнала высокого уровня):проверка разрешение приема сигнала

                                            ;высокого уровня

              goto        vihod             ;нет разрешение приема сигнала высокого уровня:переход на

                                            ;метку vihod

              btfsc       flag,2            ;есть разрешение приема сигнала высокого уровня:проверка-

                                            ;-длительности предыдущего сигнала низкого уровня

              goto        int3              ;низкий уровень сигнала равен 500мкс:переход на метку int3

              btfss       flag,1            ;низкий уровень сигнала равен 250мкс:проверка длительности

                                            ;сигнала высокого уровня

              goto        eror              ;высокий уровень равен 250мкс(предыдущий низкий равен 250мкс)-

                                            ;-неверная последовательность:переход на метку eror

              bsf         flag,3            ;высокий уровень равен 500мкс(предыдущий низкий 250мкс)-

                                            ;-принят бит единица (лог. 1)

              goto        intpriem          ;переход на метку intpriem

 

int3          btfsc       flag,1            ;низкий уровень сигнала равен 500мкс:проверка длительности

                                            ;сигнала высокого уровня

              goto        eror              ;высокий уровень равен 500мкс(предыдущий низкий равен 500мкс)-

                                            ;-неверная последовательность:переход на метку eror

              bcf         flag,3            ;высокий уровень равен 250мкс(предыдущий низкий 500мкс)-

                                            ;-принят бит ноль (лог.0)

 

intpriem      btfsc       flag,3            ;опрос значения принятого бита и запись в 0-й бит-

              bsf         reg,0             ;-регистра reg

              btfss       flag,3            ;

              bcf         reg,0             ;

              incf        shets,F           ;инкремент счетчика (shets) принятых битов

              movlw       . 8                ;проверка счетчика (shets) принятых битов на совпадение

              xorwf       shets,W           ;с числом 8

              btfsc       STATUS,Z          ;

              goto        srav              ;есть совпадение,приняты 8 бит(1 байт):переход на метку srav

              rlf         reg,F             ;нет совпадения:смещение регистра reg на один бит влево

                                            ;для приема следующего бита

              goto        vihod             ;переход на метку vihod

 

srav          movf        reg,W             ;сохранение значения принятого байта-

              movwf       INDF              ;-в регистры хранения

              incf        FSR,F             ;инкремент регистра FSR:подготовка следующего регистра

                                            ;хранения

              clrf        shets             ;очистка счетчика бит

              incf        kolbyte,F         ;инкремент счетчика кол-ва принятых байт

              movlw       . 2                ;проверка счетчика (shets) принятых битов на совпадение

              xorwf       kolbyte,W         ;с числом 2

              btfss       STATUS,Z          ;

              goto        vihod             ;нет совпадения:переход на метку vihod

              bsf         flag,4            ;есть совпадение,приняты 2 байта:установка флага получения-

                                            ;-команды!

              goto        eror              ;переход на метку eror

 

outshet       bcf         INTCON,T0IF       ;сброс флага прерывания по переплнению TMR0

eror          clrf        shets             ;очистка счетчика бит

              clrf        kolbyte           ;очистка счетчика байт

              bcf         flag,7            ;сброс флага разрешения приема высокой лог. уровня

              movlw       data1             ;запись адреса первого регистра хранения принятых

              movwf       FSR               ;команд в регистр FSR

vihod         movf        PORTB,W           ;чтение регистра PORTB для устранения несоответствия

              bcf         INTCON,RBIF       ;сброс флага прерывания по изменению уровня сигнала

                                            ;на выводах RB4-RB7

            

kon1          movf        FSR,W             ;запись содержимого регистра FSR в

              movwf       FSR_prer          ;регистр FSR_prer

              movf        FSR_osn,W         ;запись содержимого регистра FSR_osn в

              movwf       FSR               ;регистр FSR

 

              swapf       STATUS_TEMP,W     ;восстановление содержимого ключевых регистров

              movwf       STATUS            ;

              swapf       W_TEMP,F          ;

              swapf       W_TEMP,W          ;

                                            ;

              retfie                        ;выход из подпрограммы обработки прерывания

 

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;Основная программа

                                            

Start         clrf        PORTB             ;очистка выходных защелок портов A и B

              clrf        PORTA             ;

              

              movlw       b’00000111′       ;выключение компараторов

              movwf       CMCON

 

              bsf         STATUS,RP0        ;выбрать 1-й банк    

              movlw       b’00011110′       ;настройка линий ввода\вывода порта B      

              movwf       TRISB             ;RB0,RB5-RB7 на выход,остальные на вход

 

              movlw       b’10000001′       ;коэффициент предделителя TMR0 1:4, внутрен.

              movwf       OPTION_REG        ;тактовый сигнал

              bcf         STATUS,RP0

          

              bcf         flag,5            ;сброс флага состояния светодиода led

              bcf         flag,7            ;сброс флага разрешения приема высокой лог.уровня

              bcf         flag,4            ;сброс флага приема пакета данных

              clrf        shets             ;очистка счетчика бит

              clrf        kolbyte           ;очистка счетчика байт

              movlw       data1             ;запись адреса первого регистра хранения команд

              movwf       FSR_prer          ;в регистр FSR_prer

              

              bcf         INTCON,T0IF       ;сброс флага прерывания по переполнению TMR0

              movlw       .0                ;запись 0 в TMR0

              movwf       TMR0              ;

              bsf         INTCON,T0IE       ;разрешение прерываний по переполнению TMR0

 

              movf        PORTB,W           ;чтение регистра PORTB для устранения несоответствия

              bcf         INTCON,RBIF       ;сброс флага прерывания по изменению уровня сигнала RB4:RB7

              bsf         INTCON,RBIE       ;разрешение прерываний по изменению уровня сигнала RB4:RB7

              bsf         INTCON,GIE        ;глобальное разрешение прерываний

 

opros         btfss       flag,4            ;опрос флага получения команды

              goto        opros             ;команда не получена:переход на метку opros

              bcf         flag,4            ;команда получена:сброс флага полуения команды

 

              movlw       data1             ;проверка первого и второго байта команды на соответствие

              movwf       FSR               ;с командой, отправленной с передатчика

              movf        INDF,W

              xorlw       . 196

              btfss       STATUS,Z

              goto        opros             ;первый байт команды неверный:переход на метку opros

              incf        FSR,F

            

              movf        INDF,W

              xorlw       .46

              btfss       STATUS,Z

              goto        opros             ;второй байт команда неверный:переход на метку opros

 

int4          btfsc       flag,5            ;поочередное включение и выключение светодиода led-

              goto        pro21             ;-при получении правильной команды

              bsf         led

              bsf         flag,5

              goto        opros

 

pro21         bcf         led

              bcf         flag,5

              goto        opros

 

              end                         ;конец всей программы

FS1000A Модули приемника радиочастотного передатчика 433 МГц

Фарва Навази

4164 просмотра

Обзор FS1000A

FS1000A   433 МГц — это недорогой и простой в использовании беспроводной радиочастотный модуль. Модули предназначены для беспроводных систем и проектов. В этом модуле передатчик может только передавать данные, а приемник может только получать эту информацию. Это означает, что вы можете отправлять информацию только из пункта один в пункт два, а не из пункта два в один.

Модуль может передавать или получать данные на расстоянии более 3 метров, но с соответствующей антенной и блоком питания теоретически он может достигать 100 метров. Однако практически вряд ли можно пройти около 30-35 метров.

Купить на Amazon

Обзор оборудования

Передатчик

Основной частью модуля передатчика является резонатор на ПАВ, настроенный для работы на частоте 433,xx МГц. Кроме того, есть также переключающий транзистор и несколько других пассивных компонентов.

Приемник

Приемный модуль немного сложен, состоит из настроенной радиочастотной схемы и нескольких операционных усилителей для усиления принятой несущей волны, исходящей от передатчика. Затем он подавал поступающий усиленный сигнал на контур фазовой синхронизации (PLL), который позволяет декодеру блокировать поток цифровых битов, что обеспечивает лучшее декодирование вывода.

Принцип работы

Когда на вход DATA подается ВЫСОКИЙ логический уровень, генератор создает постоянную несущую на выходе РЧ с частотой 433,xx МГц. И, когда на входе DATA установлен логический НИЗКИЙ уровень, генератор останавливается. Этот метод известен как амплитудная манипуляция (ASK).

Характеристики и характеристики модулей FS1000A

Характеристики

  • Широкий входной источник питания (от 2,5 В до 12 В)
  • Простота интеграции (V+, GND и данные)
  • Устройство в режиме глубокого сна, когда вывод данных заземлен
  • Очень маленький размер

Характеристики модуля передатчика

  • Беспроводной (РЧ) симплексный передатчик и приемник
  • Рабочее напряжение передатчика: только +5 В
  • Рабочий ток передатчика: 9от мА до 40 мА
  • Рабочая частота: 433 МГц
  • Дальность передачи: от 3 м (без антенны) до 100 м (максимум)
  • Метод модуляции: ASK (амплитудная манипуляция)
  • Скорость передачи данных: 10 кбит/с
  • Тип цепи: Пильный резонатор
  • Недорогой и компактный корпус

Характеристики модуля приемника

  • Рабочее напряжение: 5 В пост. тока
  • Статический ток: 4 мА
  • Частота приемника: 433,92 МГц; 315 МГц
  • Sensitivity: 105DB
  • Dimension:30*14*7mm
  • External Antenna:32CM signal wire, spiral

Pinouts of FS1000A RF Module

Transmitter

Pin No: Pin Name Описание
1 Данные Принимают данные, которые будут переданы
2 VCC . Распродажа с 3,5V до 12V.
3 Заземление Заземление должно быть соединено с заземлением системы.
4 Antenna Antenna to improve the range

Receiver

Pin No: Pin Name Description
1 Vcc Блок питания требует 5 В
2 ДАННЫЕ Получение данных
3 Данные Получить данные
4 Земля Наземная земля для подключения к земле.
5 антенна Антенна для улучшения диапазона

Применение модулей FS1000A

Продукты безопасности

RF. В Security Sharge Alarder Alarder Alarder Alarder, Burglar Burglar, заброшенные будильники, бухгалтерий, затрой. Сигналы тревоги можно найти повсюду, от предприятий, офисов, зданий, банков до наших домашних систем безопасности.

Системы автоматизации

Мы можем разработать проект системы домашней автоматизации на основе радиочастот, используя этот модуль, чтобы заменить использование обычных выключателей в доме и других местах. В проекте задействован передатчик, который посылает сигналы на приемник, в то время как приемники подключены к нагрузкам.

Похожие сообщения:

FS1000A 433 МГц Передатчик Приемник РЧ Радиомодуль – TOMSON ELECTRONICS

 

Правила доставки:

Чтобы ваш заказ был доставлен вам в кратчайшие сроки и в хорошем состоянии, мы отправляем наши товары только через DELHIVERY, DTDC и SPEEDPOST.

В зависимости от веса и пункта назначения магазин автоматически рассчитает стоимость доставки заказа (дополнительную информацию см. в разделе Стоимость доставки). Обычно доставка в любую точку Индии занимает от 1 до 10 дней.

Наша команда стремится отправить все товары в вашем заказе вместе, но это может быть невозможно в любое время из-за свойства или доступности продуктов, в любом случае мы сообщим клиенту, прежде чем приступить к отправке.

Время доставки и доставки:

Заказы, размещенные до 16:00, будут упакованы и отправлены в тот же день.

Самовывоз посылок возможен до 18:00. Мы также предлагаем гипердоставку для заказов, размещенных до 15:00 в Кочи в радиусе 15 км от магазина.

Мы прилагаем все усилия, чтобы упаковать и отправить заказ в тот же день или в течение 24 часов с момента получения заказа. Заказы, сделанные в воскресенье, будут отправлены в понедельник, а заказы, сделанные в праздничные дни, будут отправлены на следующий рабочий день.

В связи с пандемией правительство наложило определенные ограничения на работу наших партнеров по доставке, поэтому можно ожидать небольшую задержку в передаче посылок соответствующим партнерам по доставке.

Логистические партнеры гарантируют доставку посылок в течение 1-10 дней в любую точку Индии. Дальнейшие задержки не зависят от нас. У каждого из наших партнеров по доставке есть свой способ доставки и промежуточные транзитные узлы в каждом месте.

В результате точное время доставки невозможно предсказать, поэтому  мы просим всех наших клиентов соответствующим образом планировать свои заказы, чтобы посылка дошла до вас за достаточное время.

Гарантия и повреждения при транспортировке:

Все товары поставляются со стандартной гарантией не менее 7 дней (если иное не указано на странице продукта), чтобы защитить клиентов от любых производственных дефектов.

Если у вас возникли проблемы с вашим заказом, пожалуйста, сообщите нам об этом в течение этого срока, с момента доставки товара. Мы заменим или отремонтируем поврежденные продукты бесплатно, а расходы по доставке несет Tomson Electronics. В случае, если у нас нет товара на складе, чтобы обеспечить замену, и клиент больше не в состоянии ждать, мы оформим 100% возврат средств.

Если вы обнаружите, что доставленная посылка была повреждена или повреждена, и считаете, что это могло привести к повреждению продукта внутри, вы должны щелкнуть изображение посылки, отказаться принять доставку и сообщить в нашу службу поддержки клиентов +91. 8606650999 вместе с номером вашего заказа. Мы приложим все усилия, чтобы обеспечить замену в кратчайшие сроки.

Для обмена поврежденного товара:


  1. Пожалуйста, пришлите нам фотографии товара.
  2. Мы оценим ущерб, а затем решим, как лучше всего обменять или вернуть товар.
  3. Если конкретный товар отсутствует на складе для замены, и клиент больше не в состоянии ждать, мы обеспечим полный возврат средств.

Кроме того, гарантия не действует, если изделие подвергалось неправильному использованию, статическому разряду, небрежному обращению, аварии, модификации, пайке или каким-либо образом изменено. Из-за характера продуктов и конкурентоспособных цен, которые мы предлагаем, мы не можем обеспечить возврат без нашей строгой действительной проверки.

Отслеживание заказа:

Вы можете отслеживать свой заказ по телефону https://www.tomsonelectronics.com/pages/track-your-order

: [email protected] или через SMS, отправленное на ваш зарегистрированный номер мобильного телефона, в момент оформления заказа, от службы доставки.

Внесение изменений в заказ:

Чтобы внести изменения в заказ, вы можете связаться с нами по электронной почте или позвонить нам через службу поддержки +91 8606650999 в течение 2 часов после оформления заказа. Вы можете внести изменения в следующие поля:


  1. Товар
  2. Количество
  3. Адрес
  4. Номер телефона
  5. Курьерская служба 

Примечание. Любые дополнительные расходы, связанные с внесением изменений, будут взиматься до отправки заказа.

Отмена заказа:

За отмену заказа может взиматься комиссия банка в размере 5% в зависимости от способа оплаты, используемого клиентом (большинство поставщиков платежных шлюзов взимают комиссию, даже если заказ был отменен и возвращен). Из-за характера продуктов и конкурентоспособных цен, которые мы предлагаем, мы не можем обеспечить отмену заказа и возврат без нашей строгой действительной проверки.

Возврат:

Мы делаем все возможное, чтобы предоставить точные описания и продукты самого высокого качества, как указано на веб-сайте. Мы не можем заверить клиента в точности описаний, поскольку они взяты из сторонних источников. По любым вопросам, касающимся продукта, рекомендуется обращаться в нашу службу поддержки клиентов.

В целях защиты наших клиентов от повреждений при транспортировке, несоответствия товара или отсутствия деталей мы предоставляем клиентам 7 дней с даты доставки, чтобы сообщить о проблеме нашему менеджеру по работе с клиентами через окно чата на нашем веб-сайте или связаться с нами. на + 91 86066 50999, наши инженеры службы поддержки проверят проблему и проведут вас через процесс возврата/возврата средств.

Все возвраты должны включать копию оригинального упаковочного листа, прилагаемого к вашей посылке.

При получении товара наши специалисты определят причину повреждения и приступят к возврату.

Запасные части будут немедленно отправлены покупателю, при этом расходы по доставке несет Tomson Electronics. В случае, если товар отсутствует на складе во время процесса, и клиент больше не в состоянии ждать, мы предоставим клиенту 100% возврат средств.

Все возмещения будут получены клиентом в течение 2-3 дней после утверждения вашего возмещения.

Кроме того, гарантия не действует, если изделие подвергалось неправильному использованию, статическому разряду, небрежному обращению, аварии, модификации, пайке или каким-либо образом изменено. Из-за характера продуктов и конкурентоспособных цен, которые мы предлагаем, мы не можем обеспечить отмену заказа и возврат без нашей строгой действительной проверки.

Пределы ответственности:

Мы не несем ответственности за неправильную установку продуктов. При подключении электрических компонентов необходимо соблюдать электрическую полярность.

Tomson Electronics оставляет за собой право принимать окончательное решение по всем запросам на отмену и возврат средств.

ВАЖНО

Как правило, наш интернет-магазин рассчитывает точную стоимость доставки, но в случае каких-либо проблем или ошибок мы можем пересчитать стоимость доставки и отправляем такие заказы только после их принятия от вас. Если вы не принимаете стоимость доставки, вы получите полный возврат средств.

Вышеупомянутое время доставки является наилучшим случаем. Ваша посылка может быть задержана из-за обработки, погодных условий или других причин. Мы не берем на себя ответственность за своевременную доставку посылок, так как это полностью зависит от поставщика услуг.

Микроконтроллер передает напряжение и частоту через недорогие модули

Загрузите эту статью в формате PDF.

Этот проект сочетает в себе набор 8-битных микроконтроллеров с 433-мегагерцовым процессором. передатчик/приемник промышленного, научного и медицинского (ISM) диапазона. Радиочастотный передатчик FS1000A имеет дальность действия до 200 м; XY-МК-5В РФ приемник работает от 5 В и потребляет всего 4 мА (рис. 1) . Эти модули легко доступны и используются в проектах с такими платформами, как Ардуино.

В проектах используются микроконтроллеры Microchip PIC, включая 16F1619 и 16F1614. В них используются радиомодули с использованием встроенного EUSART (Enhanced Universal синхронный/асинхронный приемник-передатчик). На стороне передатчика, мы используем аналоговый и цифровой интерфейсы PIC для считывать напряжение и частоту источника в диапазоне от 0 до 4,99 В постоянного тока и от 0 до 65,5 кГц соответственно.

Логическая схема преобразователя (рис. 2) включает ЖКИ дисплей для обеспечения обратной связи. Листинг 1 (см. в конце артикул) имеет код 16Ф1619.

Приемная сторона (фиг. 3) также включает в себя пару ЖК-дисплеев. Дисплеи не нужны в приложении, но они удобны для отладка. Листинг 2 (см. в конце статьи) имеет код для 16Ф1614.

Последовательная связь

Во-первых, мы коснемся поддержки последовательной связи, связанной с беспроводные модули. Для установления связи необходимо иметь начальный бит в течение периода времени, чтобы предупредить приемник о том, что пакет данных должен быть передан. Это заставляет часы приемника чтобы начать синхронизацию с 0 бита. Затем каждый бит отправляется индивидуально, начиная с младшего бита и заканчивая старшим битом (см. таблица ниже) . Каждый бит имеет одинаковый период. Как только все биты передано, он должен дождаться стоп-бита, указывающего на конец коробка передач. Это достигается с помощью Высокой логики, где общение заканчивается.

Для передачи буквенно-цифрового символа «A», код ASCII которого равен 0b01000001 (рис. 4) , биты организованы, как показано на стол. Каждый бит имеет период, определяемый скорость передачи (скорость передачи), которая может варьироваться от 115,2 кбит/с до 200 бит/с.

Время для каждого бита определяется как:

Чтобы передать напряжение, мы будем считывать его с помощью 10-битного аналого-цифровой преобразователь (АЦП), который по умолчанию имеет ссылку напряжение, подключенное к 5 В. Это определяет разрешение АЦП:

Для преобразования двоичного кода в десятичный используется следующий код:

 VINBCD = VIN*4887   ; умножение на RESlsb = 4,8887

VR = div32 1000     ; выполнить 16-битное деление

, где VIN — двоичное напряжение, считываемое АЦП, а VR — результат напряжения.

ТАЙМЕР 1 обеспечивает считывание частот и настроен на прочитать количество импульсов за одну секунду. После этого PIC передает и получает эти показания. Когда данные готовы, инструкция HSEROUT отправляет последовательные данные. Код всегда ждет, чтобы быть активирован пользователем. После активации он отправляет управляющую переменную в приемное устройство с инструкцией HSEROUT, которая отправляется в скорость 2400 бит/с. Эта переменная указывает, что передача данных старт:

 HSEROUT ["BZ0",10]; ОТПРАВИТЬ ИНСТРУКЦИЮ ПО АКТИВАЦИИ 

Для кода передатчика необходимо прочитать напряжение и частоты с АЦП микроконтроллера и TIMER1 соответственно. максимальная частота:

Затем код переходит к получению каждой десятичной цифры с команда DIG, и каждая цифра отправляется со скоростью 2400 бит/с с последовательными данными с инструкцией Hserout. Две цифры в коде ASCII вставляются в начало каждого пакета данных, чтобы получатель идентифицировал какие данные принимаются.

 HSEROUT ["BZ",DEC A,10];

HSEROUT ["AZ",VD[3],VD[2],VD[1],VD[0],10]; отправить последовательные данныеHSEROUT ["CZ",H[4],H[3],H[2],H[1],H[0],10];

Когда приемник получает данные «BZ», это представляет активность управление через последовательный порт. Пакет данных AZ представляет напряжение, в то время как пакет данных CZ представляет частоту.

Когда Micro получает команду остановки с помощью кнопки, он передает «1» в пакете управляющих данных, указывая на конец коробка передач.

Приемник ожидает управляющую переменную BZ с инструкции HSERIN и WAIT, которые специально ждут данные «БЖ». Поскольку эта радиочастотная передача данных имеет внешний шум, после получив данные BZ, следующие данные сохраняются в переменной для действуйте следующим образом:

 HSERIN 10,MAIN1,[WAIT("BZ"), STR A\1]; подождите одну секунду, чтобы получить команду 

Когда второй микроконтроллер получает управляющую переменную, он запускается ввод данных, где инструкции HSERIN ждут кодов ASCII в каждый передаваемый пакет. Если он не получает никаких данных, код переходит к следующей инструкции следующим образом:

 HSERIN 10,ПРЫЖОК1,[ОЖИДАНИЕ ("BZ"), СИЛ A\1]

ПРЫЖОК1: HSERIN 100,ПРЫЖОК2,[ПОЖИДАНИЕ ("AZ"), STR VD\4]ПРЫЖОК2: HSERIN 10,ЗДЕСЬ, [ПОДОЖДИТЕ ("CZ"), СИЛ H\5]

Когда данные получены, они передаются на два ЖК-дисплея. По с помощью CMOS-переключателя HCF4066, можно управлять функциями включения и чтения/записи на каждом ЖК-дисплее. Два биты в микроконтроллере выбирают, какой ЖК-дисплей будет работать, как показано в следующем коде:

 LCD1 = 1    ; ВКЛЮЧИТЬ LCD1

LCD2 = 1    ; ВКЛЮЧИТЬ LCD2

Микроконтроллер PIC приемника управляет двумя ЖК-дисплеями 16X2. управляется четырехъядерным КМОП-переключателем — HCF4066, сконфигурированным как мультиплексор для выберите, какой ЖК-дисплей будет получать данные. В этом случае на первом ЖК-дисплее отображается Напряжение, а второй показывает частоту.

Для приемника мы используем инструкцию HSERIN, которая получает два символа ASCII, а затем сохраняет соответствующие данные обоих персонажи.

Рикардо Хименес, имеет степень магистра электроники. Инжиниринг. Он является автором нескольких лабораторных тетрадей по Микроконтроллеры PIC применяются в приборостроении.

Габриэль Ли Альварес занимается электроникой степень в Instituto Tecnologico de Mexicali (ITM).

Листинг 1: Код для PIC16F1619, используемого в качестве передатчика

 ; БЕСПРОВОДНОЙ ВОЛЬТМЕТР/ЧАСТОТНЫЙ ПЕРЕДАТЧИК RS232 RF
; КОМПИЛЯТОР PBP3 от melabs.com
; Авторы: Рикардо Хименес и Габриэль Ли Альварес
; © 13 июля 2020 г.
; PIC16F1619
; ПЕРЕДАТЧИК PIC16F1619
  #КОНФИГ
    __config _CONFIG1, _FOSC_INTOSC & _PWRTE_ON & _MCLRE_OFF & _CP_OFF ​​& _BOREN_ON & _CLKOUTEN_OFF
    __config _CONFIG2, _WRT_OFF & _PPS1WAY_OFF & _ZCD_OFF & _PLLEN_OFF & _STVREN_ON & _BORV_LO & _LVP_OFF
    __config _CONFIG3, _WDTCPS_WDTCPS4 и _WDTE_ON и _WDTCWS_WDTCWS100 и _WDTCCS_LFINTOSC
  #КОНЕЦКОНФИГ
ОПРЕДЕЛИТЕ OSC 16;
ОСККОН = %01111010; внутренний Osc установлен на 16 МГц
ОСЦТУН = 0
OSCSTAT = %00011111;
ТРИСА = %00111110; RA0 КАК ВЫХОДЫ, RA1:RA2:RA3:RA4:RA5 КАК ВХОДЫ
АНСЕЛА = %000100; RA0:RA1:RA4:RA5 КАК ЦИФРОВОЙ, RA2:RA3 КАК АНАЛОГОВЫЙ,
TRISC = %100000;RC0:RC1:RC2:RC3:RC4 КАК ВЫХОДЫ, RC5 КАК ВХОДЫ
ТРИСК=0; Очистка PORTC
ТРИСБ = 0; Очистка PORTB
АНСЕЛЬБ = 0; PORTB установлен как цифровой
;PPSLOCK=0;
;Подтягивающие резисторы ANSEL отключены
ВПУА = 0; АС = 0;
WPUC = 0; ПОДТЯГИВАНИЯ ОТКЛЮЧЕНЫ
ОПЦИЯ_РЕГ. 7 = 0; ПОДТЯГИВАНИЯ ВКЛЮЧЕНЫ
WPUA.3 = 1; ПОДТЯГИВАНИЕ В RA3 ВКЛЮЧЕНО
T1CON = %10000101; TMR1 ВКЛЮЧЕН
ADCON0 = %00001111;AN3 ВКЛЮЧЕН
ADCON1 = %10000000; ФОСК/2, ВДД
;---------------------------------
ОПРЕДЕЛИТЬ HSER_RCSTA 90ч; МОДУЛЬ ПРИЕМА ВКЛЮЧЕН
DEFINE HSER_TXSTA 20 ч; МОДУЛЬ ПЕРЕДАЧИ ВКЛЮЧЕН
ОПРЕДЕЛИТЬ HSER_BAUD 2400; СКОРОСТЬ БОД 2400
rc1sta.7 = 1; ПОСЛЕДОВАТЕЛЬНАЯ СВЯЗЬ ВКЛЮЧЕНА
РБ7ППС = %10010;
;--КОНФИГУРАЦИЯ ЖКИ ----------------------
DEFINE LCD_DREG PORTC ' PORTC - это порт данных LCD
DEFINE LCD_DBIT 0 ' PORTC.0 — младший бит данных
DEFINE LCD_RSREG PORTA ' RS подключен к PORTA.0
ОПРЕДЕЛИТЬ LCD_RSBIT 0
DEFINE LCD_EREG PORTA 'E подключен к PORTA.1
ОПРЕДЕЛИТЬ LCD_EBIT 1
DEFINE LCD_BITS 4 ' 4 строка данных
DEFINE LCD_LINES 2 ' 2-строчный дисплей
DEFINE LCD_COMMANDUS 1500 ' Использовать задержку команды 1500 мкс
DEFINE LCD_DATAUS 44 ' Использовать задержку данных 44 мкс
;;------------------------------------------------ -----
LCDOUT $FE, $28; ФУНКЦИОНАЛЬНЫЙ НАБОР 28 ДОЛЛАРОВ США, 4 БИТЫ
LCDOUT $FE, $10; ДИСПЛЕЙ СМЕНЫ 10 ДОЛЛАРОВ США
LCDOUT $FE,$0C; $0C ОТОБРАЖЕНИЕ ВКЛЮЧЕНО
LCDOUT $FE, $06; $06 НАБОР РЕЖИМА ВХОДА
;-----------------------------------------------------------------------
;СОЗДАНИЕ алиаса
;ПЕР. ПЕР.ПОРТC.0;;
ПБ ВАР ПОРТ.3
;----
;---ПЕРЕМЕННЫЕ
X VAR байт[4];
Y VAR СЛОВО;
ВИН ВАР СЛОВО;
слово переменной VINBCD
H VAR БАЙТ[5];
TMR VAR СЛОВО;
VD вар байт[4];
ВАР БИТ
IN вар байт;
OUT VAR БАЙТ;
;--------
А = 1
для х = от 0 до 5
вд[х] = "0";
ч[х] = "0";
следующий х
;отправить сообщение на LCD
LCDOUT $FE,$80,"ЧАСТОТОМЕТР-";
LCDOUT $FE,$C0,"--ВОЛЬТМЕТР RF--";
ПАУЗА 2000;
ТМР = 0;
Т1КОН.0 =0; Вход T1CON Частота ВЫКЛЮЧЕНА
ГЛАВНЫЙ
LCDOUT $FE,$80,"ЧАСТОТОМЕТР-";
LCDOUT $FE,$C0,"--ВОЛЬТМЕТР RF--";
;---------
ЕСЛИ РВ = 0 ТО; подождите, пока кнопка не станет низкой
    ПАУЗА 150
    А = 0; ПЕРЕМЕННАЯ УПРАВЛЕНИЯ 0
    ДЛЯ Х= 0 ДО 3;
        HSEROUT["BZ0",10]; ОТПРАВИТЬ ИНСТРУКЦИЮ ПО АКТИВАЦИИ
   СЛЕДУЮЩИЙ X;
КОНЕЦ;
ЕСЛИ А = 0 ТО; НАЧАТЬ ВОПРОС ДЛЯ КОНТРОЛЬНОЙ переменной
   LCDOUT $FE,$80,"СТАРТ";
   LCDOUT $FE,$C0,"TX";
   ПАУЗА 1000;
   TMR1L = 0;СБРОС ТАЙМЕРА
   ТМР1Н = 0;
   Т1КОН.0 = 1; ВКЛЮЧАЕТ ТАЙМЕР
        
   ОСТАТЬСЯ:;
        Т1КОН.0=1;
        ПАУЗА 1000
        Т1КОН.0=0; ТАЙМЕР ОТКЛЮЧЕН
        АЦП ГОСУБ;
        GOSUB H_DEC; ПЕРЕЙТИ К h_DEC И ВОЗВРАТИТЬСЯ;
        GOSUB SHOW_LCD; ПЕРЕЙТИ К SHOW_LCD И ВЕРНУТЬСЯ
        ОТПРАВИТЬ;
       
        если pb = 0, то; подождите, пока кнопка не станет высокой
                А = 1; Переменная CONTROL равна 1, КОНЕЦ ПЕРЕДАЧИ
                ПАУЗА 200;
        КОНЕЦ;
    
    ЕСЛИ A = 0, ТО ОСТАТЬСЯ; ЕСЛИ КОНТРОЛЬ "0", ИДИТЕ, ЧТОБЫ ОСТАТЬСЯ
    А = 1;; УПРАВЛЯЮЩАЯ ПЕРЕМЕННАЯ "1"
    ДЛЯ Х = 0 ДО 2;
        ОТПРАВИТЬ
    СЛЕДУЮЩИЙ X
    LCDOUT $FE,$80,"КОНЕЦ";
    LCDOUT $FE,$C0,"TX";
    ПАУЗА 1000
КОНЕЦ
перейти на главную;
АЦП:;
АДКОН0. 1 = 1; ВКЛЮЧИТЬ МОДУЛЬ АЦП
ЗДЕСЬ1: ЕСЛИ ADCON0.1 = 1, ТО ЗДЕСЬ1; КОНВЕРСИЯ в процессе
VIN.BYTE0 = АДРЕС; СОХРАНИТЕ НИЖНИЙ РЕГИСТР АЦП В ПЕРЕМЕННОЙ VIN
VIN.BYTE1 = АДРЕС; СОХРАНИТЬ ВЫСШИЙ РЕГИСТР АЦП В ПЕРЕМЕННОЙ VIN
запрещать; ОТКЛЮЧИТЬ ПРЕРЫВАНИЯ
VINBCD = VIN*4887; УМНОЖЕНИЕ НА RESLSB = 4,8887
ВИН = div32 1000; ВЫПОЛНИТЬ 16-БИТНОЕ ДЕЛЕНИЕ
включить; ВКЛЮЧИТЬ ПРЕРЫВАНИЯ
ДЛЯ Х = 0 ДО 3; НАЧАТЬ ЦИКЛ
IN = ВИН ЦИФР X; ПОЛУЧИТЬ ЦИФРУ X
ПОИСК,["0123456789ABCDEFG"],OUT; РАСШИФРОВКА ЦИФР
VD[X] = ВЫХОД; СОХРАНЯЙТЕ ДЕКОДИРОВАННЫЕ ЦИФРЫ
СЛЕДУЮЩИЙ Х;
возвращаться;
ШОУ_ЖК:; отображать ЭТИКЕТКУ на ЖК-дисплее
    LCDOUT $FE,$80,"HZ= ",H[4],H[3],H[2],H[1],H[0]," ";
    LCDOUT $FE,$C0,"V= ",VD[3],".",VD[2],VD[1],VD[0]," ";
ВОЗВРАЩАТЬСЯ;
ОТПРАВИТЬ:; ЭТИКЕТКА ОТПРАВИТЬ;
    HSEROUT ["BZ",DEC A,10];
    HSEROUT ["AZ",VD[3],VD[2],VD[1],VD[0],10]; ОТПРАВИТЬ ПОСЛЕДОВАТЕЛЬНЫЕ данные
    HSEROUT ["CZ",H[4],H[3],H[2],H[1],H[0],10];
    
ВОЗВРАЩАТЬСЯ;
H_DEC:; ЭТИКЕТКА h_DEC;
TMR.BYTE0 = TMR1L ; ПОЛУЧИТЕ НИЖНИЙ РЕГИСТР ТАЙМЕРА 1
TMR. BYTE1 = TMR1H; ПОЛУЧИТЬ ВЫСШИЙ РЕГИСТР ТАЙМЕРА1
ДЛЯ Х = 0 ДО 4; НАЧАТЬ ЦИКЛЫ
        IN = TMR DIG X; ПОЛУЧИТЬ ЦИФРЫ
        ПОИСК,["0123456789"],OUT; РАСШИФРОВКА ЦИФР
        Н[Х] = ВЫХОД; СОХРАНИТЬ ЦИФРЫ
СЛЕДУЮЩИЙ X; СЛЕДУЮЩИЕ ЦИКЛЫ
ТМР1Л = 0; ОЧИСТИТЬ ТАЙМЕР
ТМР1Н = 0;
ВОЗВРАЩАТЬСЯ;
КОНЕЦ;
 

Листинг 2: Код для PIC16F1614, работающего в качестве радиочастотного приемника

 ; КОМПИЛЯТОР PBP3 от melabs.com
; Авторы: Рикардо Хименес и Габриэль Ли Альварес
; © 13 июля 2020 г.
; PIC16F1614 для модуля приемника
;Включить "modedefs.bas"; включить библиотеку
ОСККОН = %01111010; 16 МГц
ОСЦТУН = 0;
OSCSTAT = %00011111; PLL ВЫКЛЮЧЕНА, HFINTOSC И MFINTOSC ГОТОВЫ
ОПРЕДЕЛИТЕ OSC 16; ЧАСЫ УСТАНОВЛЕНЫ НА 16МГЦ
ТРИСА = %0000000; ВСЕ ПИНЫ ЯВЛЯЮТСЯ ВЫХОДАМИ
АНСЕЛА = %000000; ВСЕ ПИНЫ ЦИФРОВЫЕ
ВПУА = 0; ВНУТРЕННИЕ ПОДТЯГИВАНИЯ ОТКЛЮЧЕНЫ
ТРИСК = %100000; ВХОД RC5, ВЫХОДЫ RC0:RC4
АНСЕЛК = 0; ВСЕ ПИНЫ ЦИФРОВЫЕ
WPUC = 0; ВНУТРЕННИЕ ПОДТЯГИВАНИЯ ОТКЛЮЧЕНЫ
ОПЦИЯ_РЕГ.7 = 0; СЛАБЫЕ ПОДТЯГИВАНИЯ ВКЛЮЧЕНЫ ОТДЕЛЬНЫМ WPUX
;----КОНФИГУРАЦИЯ UART-HSERIN------
РХППС = %10101; EUSART CR/RX PORTC. 5
ОПРЕДЕЛИТЬ HSER_RCSTA 90ч; ПРИЕМНИК ВКЛЮЧЕН
DEFINE HSER_TXSTA 20 ч; ПЕРЕДАТЧИК ВКЛЮЧЕН
ОПРЕДЕЛИТЬ HSER_BAUD 2400; 2400 БОД СКОРОСТЬ
ОПРЕДЕЛИТЬ HSER_CLROERR 1; УДАЛИТЬ ОШИБКУ ПЕРЕРАБОТКИ
rc1sta.7 = 1; ПОСЛЕДОВАТЕЛЬНЫЙ ПОРТ ВКЛЮЧЕН
;--КОНФИГУРАЦИЯ ЖКИ ----------------------
DEFINE LCD_DREG PORTC; PORTC — ЭТО ПОРТ ДАННЫХ
ОПРЕДЕЛИТЬ LCD_DBIT 0 ; RC0 — младший бит, RC1, RC2, RC3 — старший бит.
DEFINE LCD_RSREG PORTC 'RS ЭТО В PORTC
ОПРЕДЕЛИТЬ LCD_RSBIT 4; РС В RC4
DEFINE LCD_EREG PORTA ; EN В ПОРТУ
ОПРЕДЕЛИТЬ LCD_EBIT 0; RA0 ЕСТЬ EN
ОПРЕДЕЛИТЬ LCD_BITS 4 '4 ; ИМЕС
DEFINE LCD_LINES 2 ' Это 2-строчный дисплей
ОПРЕДЕЛИТЬ LCD_COMMANDUS 1500 ; Используйте задержку команды 1500 мкс
DEFINE LCD_DATAUS 44 ' Использовать задержку данных 44 мкс
;;------------------------------------------------ -----
;----УСТАНОВИТЬ алиас--------
ПБ ВАР ПОРТ.3
LCD1 VAR PORTA.1;
LCD2 VAR PORTA.2;
;----СОЗДАТЬ ПЕРЕМЕННЫЕ-----
X VAR байт;
ВИН ВАР СЛОВО;
слово переменной VIN2
VD вар байт[4];
Y ВАР БАЙТ;
H VAR БАЙТ[5];
ВАР БАЙТ;
R ВАР БАЙТ[7]
IN вар байт;
OUT VAR БАЙТ;
;----
;-ОЧИСТИТЬ ПЕРЕМЕННЫЕ--
ДЛЯ Y = 0 ДО 5;
ВД[Г] = "0"
Н[Г] = "0"
СЛЕДУЮЩИЙ Г;
Х=0;
;---ИНИЦИАЛИЗИРОВАТЬ LCD--------------------
ЖК1 = 1; ВКЛЮЧИТЬ LCD1
ЖК2 = 0; ОТКЛЮЧИТЬ LCD2
ПАУЗА 10;
LCDOUT $FE, $28; ФУНКЦИОНАЛЬНЫЙ НАБОР 28 ДОЛЛАРОВ США, 4 БИТЫ
LCDOUT $FE, $10; ДИСПЛЕЙ СМЕНЫ 10 ДОЛЛАРОВ США
LCDOUT $FE,$0C; $0C ОТОБРАЖЕНИЕ ВКЛЮЧЕНО
LCDOUT $FE, $06; $06 НАБОР РЕЖИМА ВХОДА
;---
ЖК1 = 0; ОТКЛЮЧИТЬ LCD1
ЖК2 = 1; ВКЛЮЧИТЬ LCD2
ПАУЗА 10;
LCDOUT $FE, $28; ФУНКЦИОНАЛЬНЫЙ НАБОР 28 ДОЛЛАРОВ США, 4 БИТЫ
LCDOUT $FE, $10; ДИСПЛЕЙ СМЕНЫ 10 ДОЛЛАРОВ США
LCDOUT $FE,$0C; $0C ОТОБРАЖЕНИЕ ВКЛЮЧЕНО
LCDOUT $FE, $06; $06 НАБОР РЕЖИМА ВХОДА
;-----------------------------------------------------
ЖК1 = 1; ВКЛЮЧИТЬ LCD1
ЖК2 = 1; ВКЛЮЧИТЬ LCD2
ПАУЗА 1;
LCDOUT $FE,$80,"---ВОЛЬТМЕТР----";
LCDOUT $FE,$C0,"--RF RECEIVER---";
ПАУЗА 1000
ГЛАВНЫЙ:
ЖК1 = 1; ВКЛЮЧИТЬ LCD1
ЖК2 = 0; ОТКЛЮЧИТЬ LCD2
ПАУЗА 1;
LCDOUT $FE,$80,"----ОЖИДАНИЕ-----";
LCDOUT $FE,$C0,"----НАПРЯЖЕНИЕ-----";
ЖК1 = 0; ВКЛЮЧИТЬ LCD1
ЖК2 = 1; ОТКЛЮЧИТЬ LCD2
ПАУЗА 1;
LCDOUT $FE,$80,"----ОЖИДАНИЕ-----";
LCDOUT $FE,$C0,"---ЧАСТОТА----";
ЖК1 = 1; ВКЛЮЧИТЬ LCD1
ЖК2 = 1; ВКЛЮЧИТЬ LCD2
;ПРЕРЫВАНИЕ ПЕРЕЙТИ К READ_UART
ГЛАВНЫЙ1:
HSERIN 10,MAIN1,[WAIT("BZ"), STR A\1]; ПОДОЖДИТЕ 1 С, ЧТОБЫ ПОЛУЧИТЬ ИНСТРУКЦИЮ
если а = "0", то
    ЖК1 = 1; ВКЛЮЧИТЬ LCD1
    ЖК2 = 1; ВКЛЮЧИТЬ LCD2
    ПАУЗА 1;
    LCDOUT $FE,$80,"ЗАПУСК";
    LCDOUT $FE,$C0,"RX";
    ПАУЗА 1000;
    ЗДЕСЬ_START:
    HSERIN 10,ПРЫЖОК1,[ОЖИДАНИЕ ("BZ"), STR A\1]
    ПРЫЖОК 1: HSERIN 100, ПРЫЖОК 2, [ОЖИДАНИЕ ("AZ"), СИЛ VD\4]
    Прыжок 2: HSERIN 10, ЗДЕСЬ, [ПОЖИДАНИЕ ("CZ"), STR H\5]
    ЗДЕСЬ:;
    ЖК1 = 1; ВКЛЮЧИТЬ LCD1
    ЖК2 = 0; ОТКЛЮЧИТЬ LCD2
    ПАУЗА 2;
    LCDOUT $FE,$80,"ПОЛУЧЕННОЕ НАПРЯЖЕНИЕ";
    LCDOUT $FE,$C0,VD[0],".					

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *