UA RU
Мобільна версія Гарантійні умови Співпраця
Зворотний зв'язок Мапа сайту
0 0
Графік роботи магазину:
Пн-Пт: 8.00 - 19.00
Сб: 10.00 - 19.00
Нд: вихідний
Каталог
Напиши статтю і отримай знижку!

Arduino и радио модули частотой 433Мгц

2016-05-06

Всі статті →

Maksim Ursan

На данном этапе жизни человечества беспроводное управление какими-то предметами есть неотъемлемой частью жизни, будь то телевизор, авто на радиоуправлении, или даже ворота. Имея пару Arduino и радио модули мы запросто можем создать беспроводное управление чего-либо. В моем исполнении были использованы самодельные Arduino на Atmega 8. Обмен информацией происходит с помощью радио модулей частота которых 433Мгц. Весь обмен между Arduino происходит через последовательный порт на скорости 2000 бит / с.

Детали:

  • Две Arduino;
  • Две кнопки;
  • Два резистора номиналом 10кОм и два 150Ом;
  • Два светодиода;
  • Радио модули 433Мгц.

Рисунок 1 – Принципиальная схема устройства

За неимением модели радио модулей в Proteus, было принято решение соединить между собой передатчик и приемник проводником. Это показано на Рисунке 1, сверху находится передатчик, под ним приемник.

Рисунок 2 - Радио модули

Для использования радио модулей следует загрузить библиотеку "VirtualWire.h".

Скетч передатчика:

#include <VirtualWire.h>

int switchPin = 4;

int switchPin1 = 2;

boolean lastButton = LOW;

boolean currentButton = LOW;

boolean lastButton1 = LOW;

boolean currentButton1 = LOW;

int check = 0;

int check1 = 0;

// Объявление переменных

void setup() // Основные настройки работы мк

{

pinMode(switchPin, INPUT);

pinMode(switchPin1, INPUT);

vw_setup(2000); // инициализация работы модуля передатчика установления скорости передачи

}

boolean debounce(boolean last) // Функции для отслеживания нажатия кнопок управления

{

boolean current = digitalRead(switchPin);

if (last != current)

{

delay(5);

current = digitalRead(switchPin);

}

return current;

}

boolean debounce1(boolean last) // Функции для отслеживания нажатия кнопок управления

{

boolean current = digitalRead(switchPin1);

if (last != current)

{

delay(5);

current = digitalRead(switchPin1);

}

return current;

}

void loop()

{

currentButton = debounce(lastButton);

currentButton1 = debounce1(lastButton1);

if (lastButton == LOW && currentButton == HIGH && check == 0)

{

send("0");

delay(500);

check = 1;

}

// Если кнопка 1 нажата круг для первого нагрузки разрывается else if (lastButton == LOW && currentButton == HIGH && check == 1)

{

send("1");

delay(500);

check = 0;

}

// Если кнопка 1 нажата круг для первого нагрузки замыкается

else if (lastButton1 == LOW && currentButton1 == HIGH && check1 == 0)

{

send("2");

delay(500);

check1 = 1;

}

// Если кнопка 2 нажата круг для второй нагрузки замыкается

else if (lastButton1 == LOW && currentButton1 == HIGH && check1 == 1)

{

send("3");

delay(500);

check1 = 0;

}

// Если кнопка 2 нажата круг для второй нагрузки замыкается}

void send (char *message)

{

vw_send((uint8_t *)message, strlen(message// Кодирования сообщения для передачи

vw_wait_tx(); // Ждем пока все сообщения отправить

}

// Функция реализации передачи информации

Скетч для приемника:

#include <VirtualWire.h>

byte message[VW_MAX_MESSAGE_LEN]; // Буфер для хранения полученных сообщений

byte messageLength = VW_MAX_MESSAGE_LEN; // Размер сообщения

int relayPin = 4;

int relayPin1 = 3;

void setup()

{

pinMode(relayPin, OUTPUT);

pinMode(relayPin1, OUTPUT);

digitalWrite(relayPin, HIGH);

digitalWrite(relayPin1, HIGH);

vw_setup(2000); //

vw_rx_start(); //

}

void loop()

{

if (vw_get_message(message, &messageLength))

{

for (int i = 0; i < messageLength; i++)

{

char c = message[i];

char o = '1';

char f = '0';

char on = '2';

char of = '3';

if(c == o)

{

digitalWrite(relayPin, HIGH);

}

if(c == f)

{

digitalWrite(relayPin, LOW);

}

if(c == on)

{

digitalWrite(relayPin1, HIGH);

}

if(c == of)

{

digitalWrite(relayPin1, LOW);

}

}

}

}

Ваша оцінка статті:

Відмінно
Добре
Задовільно
Погано
Дуже погано

Загальна оцінка:

Оцінка "Arduino и радио модули частотой 433Мгц"
5 з 5
зроблена на основі 1 оцінки 1 клієнтських відгуку.

Дякуємо Вам за звернення! Ваш відгук з'явиться після модерації адміністратором.
Руслан
25.10.2020 01:04:27
Клас!
оплата картами Visa і MasterCard