- Transmitter arduino 433 mhz – купить недорого | aliexpress
- Беспроводная радиосвязь с arduino. блог амперкот.ру
- Библиотека virtualwire
- Видео, демонстрирующее работу проекта
- Двигатели и пропеллеры для лодки
- Для “пример 2” кода передатчика
- Исходный код программы (скетча)
- Объяснение программы для arduino
- Передающий радио модуль на 433 мгц
- Подключение библиотеки:
- Подключение передатчика mx-f01 к arduino
- Подключение приемника mx-rm-5v к arduino
- Приемный радио модуль на 433 мгц
- Пример 2
- Принципиальная схема приемной части проекта
- Принципы работы дистанционно управляемой лодки на arduino
- Сборка конструкции передающей части проекта
- Сборка конструкции приемной части проекта
- Сборка корпуса передающей части проекта
- Сборка корпуса приемной части проекта
- Технические характеристики приемника mx-rm-5v
- Функции для работы с передатчиком:
- Функции для работы с приёмником:
- Характеристики fs1000a/xd-fst
- Характеристики xd-rf-5v
- Назначение выводов приемника mx-rm-5v
- Назначение выводов передатчика mx-f01
Transmitter arduino 433 mhz – купить недорого | aliexpress
Видите что-то, что вам очень нравится? На AliExpress вы можете найти отличные предложения на него! Выбирайте из большого списка Arduino 433 мгц передатчики и фильтруйте по “наиболее подходящие” или по цене, чтобы найти устройство, которое вы хотите. Помимо фильтрации по бесплатной и быстрой доставке, вы также можете отфильтровать по бесплатному возврату. Затем вы можете сузить результаты поиска для Arduino 433 Mgz передатчика.
Нужен Arduino передатчик, передающий на частоте 433 мгц? Сортируйте результаты по “порядку” и вы найдете arduino 433 mhz передатчик на AliExpress. То, что вы ищете, легко найти и это не займет много времени. Читайте реальные отзывы пользователей перед покупкой – это может сильно повлиять на ваше решение. На сайте AliExpress есть множество отзывов о arduino 433 mhz передатчик в разных ценовых категориях, поэтому найти его в пределах вашего бюджета не составит труда.
Вы можете приобрести передатчик Arduino 433 МГц с максимальными скидками, если будете следить за нашими большими распродажами: Всемирный день шопинга 11.11, Юбилейная распродажа или Летняя распродажа.
Есть совет для новых пользователей AliExpress: проверьте наличие купонов перед оформлением заказа – они еще больше снизят цену на передатчик Arduino 433 МГц. AliExpress предлагает не только скидки для новичков и купоны для магазинов. Просматривайте сайт или играйте в игры, чтобы найти способы получить выгодные предложения!
Беспроводная радиосвязь с arduino. блог амперкот.ру
Дистанционная связь и беспроводные технологии имеют ряд очевидных преимуществ. Даже человек без большого опыта в этой области может быстро определить самое очевидное из них – отсутствие проводов.
Если говорить о практичности беспроводной связи в проектах Arduino, то это дистанционное управление любым электронным устройством, будь то автомобиль, робот или другие различные механизмы; мониторинг и контроль климата в доме, создание и проектирование “умного дома” и многое другое.
В этой статье мы намерены обсудить радиосвязь, а точнее радиомодули, их связь с Arduino и их успешное применение в широком спектре проектов.
Радиомодули можно внедрить, соединив две платы Arduino вместе с помощью приемопередатчика.
Как правило, в радиоприемниках с поддержкой Arduino используются передатчики на частоте 433 МГц. Обычно он состоит из двух частей: приемника и передатчика. Он подключается к плате с помощью 4 контактов (один из которых можно не использовать). Два из этих контактов предназначены для питания (соответственно, на них подается 5В и Gnd (земля – “земля”), а другой – для цифрового выхода на плате.
Передатчик также имеет три штырька для подключения к плате. Он подключается только к другой плате, с которой сообщается приемник. Как и при подключении приемника, контакты соединяются таким же образом.
На фотографии ниже хорошо видны соединенные модули:
Приступим к написанию программного кода. Запустите программу Arduino IDE в среде разработки. Для работы с модулями необходима специализированная библиотека RCSwitch.h, скачать ее можно здесь
Давайте рассмотрим код, передающий информацию с одной платы на другую, а в последующих уроках углубимся в эту тему.
Начиная с передатчика. Другая плата будет получать информацию от этого модуля, обрабатывать ее, выполнять необходимые действия со всеми подключенными к ней периферийными устройствами и отправлять обратно.
#include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); void setup() { mySwitch.enableTransmit(2); } void loop() { mySwitch.send(B0100, 4); delay(1000); mySwitch.send(B1000, 4); delay(1000); }
Сначала мы инициализируем библиотеку модуля с помощью директивы include
В следующей строке дается имя нашему модулю для дальнейшего использования. В функции void setup записывается контакт на плате, к которому подключен передатчик. Внутри цикла мы можем заметить еще одну новую функцию – mySwitch.send . Эти сообщения предназначены для прямой передачи. В начале указывается сообщение для отправки, а затем размер файла для отправки. Вы также можете указать сообщение для отправки в виде двоичных чисел или строк.
Для программирования приемника вам понадобится следующий программный код:
#include <RCSwitch.h> RCSwitch mySwitch = RCSwitch(); void setup() { pinMode( 3, OUTPUT ); mySwitch.enableReceive(0); } void loop() { if (mySwitch.available()) { int value = mySwitch.getReceivedValue(); if (value == B1000) digitalWrite(3, HIGH); else if (value == B0100) digitalWrite(3, LOW); mySwitch.resetAvailable(); } }
В цикле программного кода можно легко заметить, что при отправке определенного сообщения на выходе устанавливается высокий уровень, в противном случае – низкий уровень
Поэтому данный пример-код взаимодействия между элементами радиомодуля вы можете легко применить в собственных проектах: например, ИК-управление с помощью пульта дистанционного управления, управление автомобилем на той же основе и многое другое.
Благодарим вас за прочтение этой статьи. Мы надеемся, что вы нашли ее полезной. Спасибо всем за внимание! И следите за нашим блогом:)
Вы можете приобрести использованные в статье компоненты на нашем сайте: ampercot.ru
Статья, о которой идет речь, принадлежит сайту radiocopter.ru. При перепечатке данного материала активная ссылка на первоисточник, не заблокированная от индексации поисковыми системами, обязательна.
Библиотека virtualwire
Чтобы упростить написание кода для работы с радиомодулями, была разработана библиотека: VirtualWire.
VirtualWire.rar (17,3 KiB, 5 548 hits)
Вам нужно распаковать содержимое архива в папку /libraries/, расположенную в каталоге среды разработки Arduino.
Видео, демонстрирующее работу проекта
Источник статей
702 просмотра страницы.
Двигатели и пропеллеры для лодки
Мы выбрали двигатели постоянного тока типа n20, которые работают при напряжении 5 В и имеют небольшие размеры и вес, поэтому необходимо учитывать и их массу. Параллельно входным контактам двигателя необходимо подключить антипомеховый конденсатор на 0,1 ф для предотвращения радиопомех.
Мы сделали гребные винты из пластиковых листов, но вы можете купить их в магазинах. Мы просто отрезали соответствующие полоски пластика, согнули их с помощью тепла свечи и проделали в них небольшое отверстие, чтобы прикрепить их к валу двигателя.
Для “пример 2” кода передатчика
Не забудьте припаять антенны, иначе дальность передачи данных составит всего несколько сантиметров.
На сегодня это все.
Исходный код программы (скетча)
intf_button=9; intb_button=8; intl_button=7; intr_button=6; intm1=2; intm2=3; intm3=4; intm4=5; voidsetup(){ pinMode(f_button,INPUT_PULLUP); pinMode(b_button,INPUT_PULLUP); pinMode(l_button,INPUT_PULLUP); pinMode(r_button,INPUT_PULLUP); pinMode(m1,OUTPUT); pinMode(m2,OUTPUT); pinMode(m3,OUTPUT); pinMode(m4,OUTPUT); } voidloop(){ if(digitalRead(f_button)==LOW) { Цифровая запись(m1,LOW) ; Численное написание (м3,LOW) ; Цифровая запись(m2,HIGH) ; Цифровая запись (m4,HIGH) ; } if(digitalRead(b_button)==LOW) { digitalWrite(m2,LOW); digitalWrite(m4,LOW); Цифровая запись(m1,HIGH) ; digitalWrite(m3,HIGH); } if(digitalRead(l_button)==LOW) { digitalWrite(m1,LOW); digitalWrite(m2,HIGH); Цифровая запись(m3,HIGH) ; digitalWrite(m4,HIGH); } if(digitalRead(r_button)==LOW) { digitalWrite(m1,HIGH); Цифровая запись (m2,LOW) ; digitalWrite(m3,HIGH); digitalWrite(m4,HIGH); } } |
Объяснение программы для arduino
В этой статье мы кратко рассмотрим основные части программы. Полный код программы будет приведен в конце. Поскольку программа состоит только из переключения логических уровней на контактах платы, она довольно проста.
В первой части программы объявите переменные целочисленного типа для работы с кнопками энкодера и контактами ввода.
Во время настройки мы установим рабочие режимы для используемых контактов, к которым будут подключены кнопки – режим ввода данных с внутренними подтягивающими резисторами – и к которым будут подключены контакты энкодера – режим выхода данных.
Затем в функции цикла мы считываем состояние кнопок с помощью функции digitalRead. Если кнопка нажата, переключатель, к которому она подключена, будет иметь низкое состояние (LOW).
При нажатии кнопки “вперед” мы должны выполнить следующие действия:
Активация этой последовательности команд приводит к вращению обоих лодочных двигателей по часовой стрелке. По этой причине необходимо выполнить следующие команды:
Вождение по левой стороне:
Чтобы прокрутить вправо :
После сборки аппаратной части проекта вы можете загрузить программу в плату Arduino и приступить к ее тестированию.
Прежде чем приступить к испытаниям лодки, убедитесь, что она ровно стоит на воде, ее вес не чрезмерен, оба мотора правильно поляризованы и она правильно изогнута.
Передающий радио модуль на 433 мгц
Модули, подобные этому, очень малы и имеют всего 3 вывода: VCC (напряжение питания), земля (общая земля) и данные. На некоторых разновидностях этих модулей имеется антенный контакт. Передающие радиомодули работают от 3В-12В.
Подключение библиотеки:
Для отправителя :
Для бенефициара
Ресивер можно подключить к следующим выходам:
Плата Arduino | Выводы использующие внешнее прерывание |
---|---|
Uno, ProMini, Nano, Ethernet | 2, 3 |
Leonadro, Micro | 2, 3, 0, 1, 7 |
Mega 2560 | 2, 3, 18, 19, 20, 21 |
Due | Любые выводы |
Подключение передатчика mx-f01 к arduino
Моим контроллером будет Arduino Mega 2560.
Продолжим соединение:
- Подключите ATAD на MX-F01 к 12 дискретным контактам на Arduino Mega 2560
- VCC на MX-F01 подключается к 5V Arduino Mega 2560
- GND на MX-F01 подключается к GND Arduino Mega 2560
- ANT на MX-F01 к антенне в виде куска провода длиной 17,5, 35 или 70 см (я не припаивал антенну до сих пор).
Подключение приемника mx-rm-5v к arduino
Управление приемником будет осуществляться с помощью Arduino Nano ATmega328.
- DATA на MX-RM-5V подключается к 12 дискретным контактам Arduino Nano ATmega328
- VCC на MX-RM-5V подключается к 5 В Arduino Nano ATmega328
- GND на MX-RM-5V подключается к GND Arduino Nano ATmega328 5, 35 или 70 см длиной (я еще не припаял антенну).
Приемный радио модуль на 433 мгц
Приемный радиомодуль на 433 МГц также довольно мал и имеет четыре вывода: VCC, земля и два средних вывода для вывода данных. Рабочее напряжение модуля составляет 5 В. Помимо низкого энергопотребления, приемный модуль может иметь антенный контакт (в используемом нами модуле он отсутствует).
Структурная схема приемной части проекта
В приведенной ниже блок-схеме модуль радиоприемника используется для первого приема передаваемого сигнала. На выходе модуля радиоприемника мы имеем последовательные данные – но поскольку мы не можем управлять двигателями с помощью этих данных, выход модуля радиоприемника подключен к декодеру, который преобразует входящие последовательные данные в их исходную параллельную форму.
Пример 2
Каждую секунду этот скетч будет отправлять сообщение, содержащее количество миллисекунд, прошедших с момента запуска программы. Светодиод будет активироваться в начале передачи и выключаться в конце.
#include
const int led_pin = 13; // Пин светодиода
const int transmit_pin = 12; // Пин подключения передатчика
void setup()
{
vw_set_tx_pin(transmit_pin);
vw_setup(2000); // Скорость передачи (Бит в секунду)
pinMode(led_pin, OUTPUT);
}
void loop()
{
digitalWrite(led_pin, HIGH); // Зажигаем светодиод в начале передачи
String millisresult = String(millis()); // Присваиваем переменной значение, равное количеству миллисекунд с момента начала выполнения текущей программы
char msg[14];
millisresult.toCharArray(msg, 14);
vw_send((uint8_t *)msg, strlen(msg)); // Отправка сообщения
vw_wait_tx(); // Ожидаем окончания отправки сообщения
digitalWrite(led_pin, LOW); // Гасим светодиод в конце передачи
delay(1000); // Пауза 1 секунда
}
Принципиальная схема приемной части проекта
На рисунке ниже приведена схема приемной части пульта дистанционного управления лодкой.
Эта микросхема преобразует последовательные данные в параллельные с помощью 12-битного декодера. К последовательному выходу модуля радиоприемника подключены входные контакты HT12D. Восемь из этих битов (A0-A7) являются битами адреса, и микросхема HT12D будет декодировать данные только при совпадении адреса.
Адресные выводы микросхемы H T12D были соединены с заземляющим проводом схемы (земля), чтобы соответствовать отправляющей части проекта. D8-D11 являются выходными выводами микросхемы HT12D – с них мы будем получать данные параллельно. Контакт осциллятора микросхемы HT12D будет колебаться на нужной частоте, если к нему подключить резистор 33-56 кОм.
Светодиод, подключенный к контакту 17 микросхемы HT12D, будет показывать, правильно ли были приняты данные, он загорится только тогда, когда сигнал был принят. Приемная часть проекта также может принимать напряжение в диапазоне 6-12 В.
Для уменьшения веса конструкции мы использовали микросхему драйвера двигателя L293D. С помощью этой микросхемы можно одновременно управлять двумя двигателями в двух направлениях. На следующем рисунке показаны выводы микросхемы L293D.
Эти два контакта являются контактами разрешения, и мы подаем на них напряжение 5 В. Контакты 1A, 2A, 3A и 4A являются управляющими. Двигатель будет вращаться вправо, если контакт 1A низкий, а 2A высокий. Пока контакт 1A находится на высоком уровне, а 2A – на низком, двигатель будет вращаться влево.
Мы подключили эти контакты к выходам микросхемы декодера таким образом. Двигатели подключены к контактам 1Y, 2Y, 3Y и 4Y. Напряжение подается на вывод Vcc2 через питающий кабель. Напряжение на этом выводе должно быть соответствующим, если вы используете высоковольтные двигатели.
Принципы работы дистанционно управляемой лодки на arduino
У лодок два двигателя – правый и левый. С пропеллером, имеющим форму, как у двигателя, который вращается по часовой стрелке, двигатель втягивает воздух спереди и выталкивает его сзади. Это создает силу, направленную вперед.
При движении вперед лодка приводится в движение обоими двигателями, которые вращаются по часовой стрелке.
Обратное движение: Если оба двигателя вращаются против часовой стрелки, лодка движется назад.
Левостороннее движение: если вращается только правый двигатель, привод производится только на правую сторону, поэтому лодка поворачивает налево.
При правостороннем движении, если вращается только мотор левой руки, лодка поворачивает направо.
Подключите четыре выходных бита декодера (D8-D11) к входным контактам драйвера двигателя. Это достигается путем замыкания контактов AD8-AD11 в передающей части проекта на землю. Замыкание AD8 на землю, например, приводит к срабатыванию D8.
С помощью этих четырех выходов мы можем вращать два двигателя в одном направлении. В связи с тем, что мы не можем напрямую управлять двумя моторами (которые необходимы для движения вперед и назад) с помощью одной кнопки, мы использовали в проекте плату Arduino для управления входными контактами энкодера.
Сборка конструкции передающей части проекта
В передающей части проекта мы припаяли все компоненты к одной печатной плате. При использовании радиомодулей следует помнить, что между различными компонентами схемы могут возникать нежелательные помехи, поэтому старайтесь располагать компоненты схемы как можно ближе друг к другу.
Плата Arduino и модуль радиопередатчика были соединены с помощью гнездовых разъемов. Для соединения всех компонентов схемы лучше использовать дорожки печатных плат, а не провода с перемычками. Также подключите небольшой отрезок провода к передающему радиомодулю – он будет действовать как антенна и увеличит дальность связи. Перед подключением платы Arduino и передающего радиомодуля необходимо проверить напряжение на выходе регулятора LM7805.
Это – нижняя часть печатной платы для передающей части нашего проекта.
Сборка конструкции приемной части проекта
Прежде чем строить приемную часть проекта, нам нужно понять следующее – поскольку она будет размещена на лодке, ее вес и размеры очень важны. Поэтому увеличение ее веса приведет к уменьшению плавучести и скорости лодки.
Так же, как и в случае с трансмиссионной частью, постарайтесь припаять все компоненты схемы на маленькой печатной плате и, по возможности, не используйте провода-перемычки. В нашем проекте подключен вывод 8 драйвера двигателя L293D, так как мы используем двигатели, рабочее напряжение которых составляет 5 вольт.
Сборка корпуса передающей части проекта
Чтобы управлять лодкой дистанционно (с помощью пульта дистанционного управления), необходимо построить подходящий корпус – он может быть любым. В качестве материала для корпуса можно использовать фанеру, пенокартон или картон, или даже 4-миллиметровые листы МДФ.
Эти листы были разрезаны на две части длиной 10 см и шириной 5 см, на которых мы отметили расположение кнопок. На левой стороне листа мы разместили кнопки “право-лево”, а на правой – “вперед-назад”. С другой стороны листа мы соединили кнопки с основной схемой.
После этого мы поместили основную плату нашего пульта дистанционного управления между двумя кусками МДФ и закрепили их длинными болтами.
Сборка корпуса приемной части проекта
Лучшим материалом для корпуса лодки оказался лист термокола (его можно приобрести, но по какой-то причине я не смог найти точный перевод). Тонкий лист этого материала был использован для покрытия печатной платы для нашей приемной части проекта.
Затем мы наметили контуры углубления, в котором будет находиться электронная часть, и вырезали его из листа термокола. Конечно, вы можете сделать корпус лодки по своему вкусу или использовать для этой цели игрушечную лодку.
Технические характеристики приемника mx-rm-5v
- Напряжение питания: 5 В
- Потребляемая мощность: 4 мА
- Рабочая частота: 433.920 МГц (доступно на 315 МГц)
- Размеры: 30x14x7 мм
Функции для работы с передатчиком:
- Назначение: инициализация передатчика
- Синтаксис: begin( [SPEED] );
- Параметры:
- SPEED – необязательный параметр, целое число, указывающее скорость передачи данных (бит/сек).
- Если ставка задана и не должна изменяться, нет необходимости вызывать функцию setDataRate().
- Возвращаемые значения: нет.
- Примечание: Функция вызывается один раз в коде конфигурации. Скорость передачи данных должна быть одинаковой для отправителя и получателя.
- Функция вызывается один раз в коде конфигурации.
- Скорость передачи данных должна быть одинаковой для передатчика и приемника.
- Назначение: Установка или изменение скорости передачи данных.
- Синтаксис: setDataRate( SPEED );
- Параметры:
- SPEED – целое число, определяющее скорость передачи данных (бит/с).
- Возвращаемые значения: нет
- Примечание:
- Если скорость передачи данных установлена при вызове функции begin() и не подлежит изменению, эта функция не может быть вызвана.
- Скорость передачи данных должна быть одинаковой для передатчика и приемника.
- Скорость передачи данных может быть задана как целое число или константа: i433_5KBPSi433_4KBPSi433_3KBPSi433_2KBPSi433_1KBPSi433_500BPSi433_100BPS
- I433_5KBPS
- I433_4KBPS
- I433_4KBPS
- I433_3KBPS
- I433_2KBPS
- I433_1KBPS
- I433_500BPS
- I433_100BPS
- i433_5KBPS
- i433_4KBPS
- i433_3KBPS
- i433_2KBPS
- i433_1KBPS
- i433_500BPS
- i433_100BPS
- Назначение: открыть трубу данных
- Синтаксис: openWritingPipe( PIPE NUMBER );
- Параметры:
- PIPE NUMBER – целое число от 0 до 7.
- Возвращаемые значения: нет.
- Примечание: Номер трубы – это адрес отправителя, по которому получатель “решает”, принимать или нет отправленные данные. Передатчик может передавать данные только по одному из каналов (от 0 до 7). Номер трубы может быть изменен во время работы передатчика.
- Номер трубы – это адрес передатчика, по которому приемник “решает”, принимать или нет передаваемые данные.
- Излучатель может передавать данные только с одной из труб (от 0 до 7)
- Номер трубы может быть изменен во время работы излучателя.
Функции для работы с приёмником:
- Цель: передача данных.
- Синтаксис: write( REFERENCE_ON_MAASSIVE , NUMBER_BAIT );
- Параметры:
- REFERENCE_ON_MAASSIVE – ссылка на массив любого типа (включая строку), данные которого должны быть переданы.
- NUMBER_BAIT – число, определяющее количество передаваемых байтов.
- Возвращаемые значения: нет.
- Примечание: При использовании нескольких отправителей используйте интервалы между передачей данных.
- Назначение: Указание или изменение скорости приёма данных.
- Синтаксис: setDataRate( СКОРОСТЬ );
- Параметры:
- СКОРОСТЬ – целое число, указывающее скорость приёма данных (бит/сек).
- Возвращаемые значения: Нет.
- Примечание:
- Если скорость указана при вызове функции begin() и её не требуется менять, то данную функцию можно не вызывать.
- Скорость приёма данных должна совпадать, как для передатчика так и для приёмника.
- Скорость можно указать как целым числом, так и константами:
- Назначение: инициализация приемника
- Синтаксис: begin( [SPEED] );
- Параметры:
- SPEED – необязательный параметр, целое число, задающее скорость приема данных (бит/сек).
- Если скорость задана и не должна изменяться, нет необходимости вызывать функцию setDataRate().
- Возвращаемые значения: нет.
- Примечание: Функция вызывается один раз в коде конфигурации. Скорость передачи данных должна быть одинаковой для отправителя и получателя.
- Функция вызывается один раз в коде конфигурации.
- Скорость приема должна быть одинаковой как для передатчика, так и для приемника.
- Скорость можно менять во время работы приёмника, но если во время изменения скорости принимался пакет данных, он будет пропущен.
- Назначение: Открывает трубу для получения
- Данных Синтаксис: openReadingPipe( [PIPE NUMBER] );
- Параметры:
- PIPE NUMBER – необязательный параметр, целое число от 0 до 7.
- Возвращаемые значения: Нет. Примечание: Номер трубы – это адрес отправителя (от 0 до 7), открывая адрес трубы, мы соглашаемся получать данные от указанного отправителя. Функция может быть вызвана несколько раз, поэтому для получения данных открываются несколько каналов. Если функция вызывается без параметра, то открываются все трубы от 0 до 7.
- Номер трубы – это адрес передатчика (от 0 до 7), открывая трубу, мы принимаем данные от указанного передатчика.
- Эта функция может вызываться несколько раз, поэтому для приема данных открываются несколько трубок.
- Если функция вызывается без параметра, открываются все трубки от 0 до 7.
- Назначение: closeReadingPipe( [PIPE NUMBER] );
- Параметры:
- PIPE NUMBER – необязательный параметр, целое число от 0 до 7.
- Возвращаемые значения: нет. Примечание: Обратная функция функции openReadingPipe(). Функция может вызываться несколько раз и закрывает несколько труб перед получением данных. Если функция вызывается без параметра, закрываются все трубы от 0 до 7.
- Обратная функция функции openReadingPipe().
- Функция может вызываться несколько раз и закрывать несколько труб до получения данных.
- Если функция вызывается без параметра, закрываются все трубы от 0 до 7.
- Назначение: включить прослушивание открытых труб
- Синтаксис: startListening();
- Параметры: Нет.
- Возвращаемые значения: Нет.
- Примечание: Вы можете открывать и закрывать трубы даже после начала их прослушивания.
- Назначение: прекратить прослушивание открытых труб
- Синтаксис: stopListening();
- Параметры: нет.
- Возвращаемые значения: нет.
- Примечание: Эта функция отключает обработку внешних прерываний, что может ускорить выполнение скетчей.
- Назначение: Проверка читаемости данных с помощью функции read()
- Синтаксис: available( [REFERENCE_VARIABLE] );
- Параметры:
- REFERENCE_VARIABLE – необязательный параметр, ссылка на переменную типа uint8_t, куда должен быть записан номер трубопровода, если данные читаемы и приняты.
- Возвращаемые значения: true / false – можно ли считать данные или нет.
- Примечание: Номер трубы может быть использован для определения того, какие данные отправителя были получены.
- Назначение: Передача данных.
- Синтаксис: read( REFERENCE_NA_MAISSIVE , NUMBER_BAIT );
- Параметры:
- REFERENCE_NA_MAISSIVE – ссылка на массив любого типа (включая строку), из которого необходимо считать данные.
- NUMBER_BAITS – число, указывающее на количество байтов для чтения.
- Возвращаемые значения: нет.
- Примечание: Если указанное количество байт больше размера массива, на который ссылается программа, данные будут записаны за пределы массива, что может привести к ошибкам в сценарии. Если указанное количество байт больше количества фактически полученных, в массив будут записаны только фактически полученные байты, остальные байты массива останутся без изменений.
- Если указанное количество байт больше размера массива, на который ссылается скрипт, данные будут записаны за пределами массива, что может привести к сбою в работе скрипта.
- Если указанное количество байтов больше, чем количество фактически полученных байтов, в массив записываются только фактически полученные байты; остальные байты в массиве не изменяются.
Характеристики fs1000a/xd-fst
Рабочее напряжение: DC 5VОперационный ток: 4mРежим модуляции: OOK (AM)Рабочая температура: -10 ° C ~ 70 ° CЧувствительность: -110dBOрабочая частота: 433MHzРазмер: 30 x 14 x 7mm
Приемник состоит из колебательного контура и усилителя. Вывод 1 – VCC, выводы 2 и 3 – DATA, а вывод 5 – GND. В радиомодуле выходной уровень логический, но сигнал принимается как аналоговый. Следовательно, за декодирование сообщения отвечает устройство (обычно Arduino), принимающее сигнал.
Вот схема, показывающая радиомодули 433 МГц, подключенные к Arduino. Используя Arduino, модулированные сигналы можно обрабатывать, подключая выходы приемника и передатчика к цифровым портам.
К трансиверам можно прикрепить антенну, чтобы значительно улучшить дальность приема. Одним из самых простых решений является кусок провода с импедансом 50 Ом длиной 17 см. Поскольку он представляет собой 1/4 волны, он будет резонировать на частоте 433 МГц.
Используя библиотеку VirtualWire, сигналы Arduino можно кодировать и раскодировать.
Отправитель:
#include"VirtualWire.h"constint led_pin =13;// Пин светодиодаconstint transmit_pin =12;// Пин подключения передатчикаvoid setup(){vw_set_tx_pin(transmit_pin);vw_setup(2000);// Скорость передачи (Бит в секунду)pinMode(led_pin, OUTPUT);}void loop(){constchar*msg ="Hello, Arduinomania";// Передаваемое сообщениеdigitalWrite(led_pin, HIGH);// Зажигаем светодиод в начале передачиvw_send((uint8_t*)msg, strlen(msg));// Отправка сообщенияvw_wait_tx();// Ожидаем окончания отправки сообщенияdigitalWrite(led_pin, LOW);// Гасим светодиод в конце передачиdelay(1000);// Пауза 1 секунда}
Получатели:
#include"VirtualWire.h"byte message[VW_MAX_MESSAGE_LEN];// Буфер для хранения принимаемых данныхbyte messageLength = VW_MAX_MESSAGE_LEN;// Размер сообщенияconstint led_pin =13;// Пин светодиодаconstint receiver_pin =11;// Пин подключения приемникаvoid setup(){Serial.begin(9600);// Скорость передачиданныхSerial.println("Read 433mHz begin");vw_set_rx_pin(receiver_pin);// Пин подключения приемникаvw_setup(2000);// Скорость передачи данных (бит в секунду)vw_rx_start();// Активация применика}void loop(){if(vw_get_message(message,&messageLength))// Если есть данные..{digitalWrite(led_pin, HIGH);// Зажигаем светодиод в начале приема пакетаfor(int i =0; i < messageLength; i ){Serial.write(message[i]);// выводим их в одной строке}Serial.println();digitalWrite(led_pin, LOW);// Гасим светодиод в конце}}
Характеристики xd-rf-5v
Рабочее напряжение: 3V ~ 12VРабочий ток: 20mA ~ 28mARБегущий ток: 0mAOперационная частота: 433MHzДальность действия передатчика: >500м (чувствительность может быть выше-103дБм, если в широком поле)Выходная мощность: 16дБм (40мВт)Скорость передатчика: Режим модуляции: OOC (AM)Рабочая температура: -10 ° C ~ 70 ° Cs Размер: 19 x 19 x 8 мм
Контакты 1 DATA, 2 VCC и 3 GND предназначены для подключения. Контакт обеспечивает подключение антенны, но она не является встроенной. Когда необходимо увеличить дальность передачи, создаются проволочные антенны. Передатчик используется в устройствах “умного дома” и автоматизированных системах сбора данных.
Основные преимущества – неприхотливость, стабильность работы, низкое энергопотребление. Из недостатков полезно отметить его “аналог”. Код для кодирования потока данных сложен, но у него есть и преимущество – он не ограничивает протокол связи.
Назначение выводов приемника mx-rm-5v
- GND – питание “-“
- DATA – данные
- VCC – питание “
- ANT – антенна
После того как вы освоите основы, я предлагаю вам приступить к работе.
Назначение выводов передатчика mx-f01
- ATAD – данные
- VCC – питание ” “
- GND – питание ” -“
- ANT – антенна