top of page

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

#include <iarduino_RF433_Transmitter.h>   // Подключаем библиотеку 
iarduino_RF433_Transmitter radio(12);        // Создаём объект radio для работы с                                                                                 библиотекой iarduino_RF433 + номер пина
int    data[4];                                                  // Создаём массив для передачи данных
void setup(){
 
Serial.begin(9600);
    radio.
begin();                                           // Инициируем работу передатчика FS1000A
    radio.
setDataRate     (i433_3KBPS);       // Указываем скорость передачи данных 
    radio.
openWritingPipe (5);                       // Открываем 5 трубу для передачи данных 
   
pinMode(2,INPUT);                                  // конфигурация пинов
   
pinMode(3,INPUT);
   
pinMode(7,INPUT);
   
pinMode(A0,INPUT);
}                                                        

void loop(){
    data[0] =
analogRead(A0);                   // считываем показания скользящего                                      потенциометра с вывода A0 и записываем их в 0 элемент массива data
    data[1] =
digitalRead(2);                      // считываем показания кнопки с вывода D2 и                                                            записываем их в 1 элемент массива data (реверс 1)
    data[2] =
digitalRead(3);                      // считываем показания кнопки с вывода D3 и                                                             записываем их в 2 элемент массива data (реверс 2)
    data[3] =
digitalRead(7);                     // считываем показания кнопки с вывода D7 и                                                                 записываем их в 3 элемент массива data (сигнал)
   
Serial.print(data[0]);                           //связь платформы Arduino с компьютером,                                                                          посредством пользовательского интерфейса.
   
Serial.print("   ");
   
Serial.print(data[1]);
   
Serial.print("   ");
   
Serial.print(data[2]);
   
Serial.print("   ");
   
Serial.print(data[3]);
   
Serial.println();
    radio.
write(&data, sizeof(data));      // отправляем данные из массива data указывая сколько байт массива мы хотим отправить
   
delay(10);                                       // пауза между пакетами
}

 

Скетч приёмника

#include <iarduino_RF433_Receiver.h>      // Подключаем библиотеку для работы с                                                                                приёмником 
iarduino_RF433_Receiver radio(2);   // Создаём объект radio для работы с  

                                  библиотекой iarduino_RF433, указывая номер вывода к которому
                                  подключён приёмник (можно подключать только    к выводам                                        использующим внешние прерывания)

int  data[4];                                        // Создаём массив для приёма данных
void setup(){
    radio.
begin();                                // Инициируем работу приёмника MX-RM-5V (в                                                                      качестве параметра можно указать скорость 
                                                        ЧИСЛО бит/сек, тогда можно не вызывать функцию                                                          setDataRate)
   
Serial.begin(9600);                                      
    radio.
setDataRate     (i433_3KBPS);    // Указываем скорость приёма данных                                                                                 (i433_5KBPS, i433_4KBPS, i433_3KBPS,
                                                                  i433_2KBPS, i433_1KBPS, i433_500BPS,                                                                                i433_100BPS
), i433_1KBPS - 1кбит/сек
    radio.
openReadingPipe (5);                 // Открываем 5 трубу для приема данных                                                                             (если вызвать функцию без параметра,то                                                                           будут открыты все трубы сразу, от 0 до 7)
    radio.
startListening  ();                        // Включаем приемник,начинаем прослушивать                                                                     открытую трубу
   
pinMode(2,INPUT);
   
pinMode(9,OUTPUT);
   
pinMode(3,OUTPUT);
   
pinMode(4,OUTPUT);
   
pinMode(5,OUTPUT);
   
pinMode(6,OUTPUT);
   
pinMode(10,OUTPUT);
   
pinMode(11,OUTPUT);
   
pinMode(12,OUTPUT);  
}

void loop(){
   
if(radio.available()){                            // Если в буфере имеются принятые данные
        radio.
read(&data, sizeof(data));     // Читаем данные в массив data и указываем                                                                          сколько байт читать
    }  
   
Serial.print(data[0]);   
   
Serial.print("   ");
   
Serial.print(data[1]);
   
Serial.print("   ");
   
Serial.print(data[2]);
   
Serial.print("   ");
   
Serial.print(data[3]);
   
Serial.println();
 
   
if (data[1] == HIGH)
    {
   
analogWrite(3,data[0]);                        // ШИМ-сигнал 
   
digitalWrite(4,HIGH);                           // прожектор 1
   
digitalWrite(10,HIGH);                         // настройка направления оборотов
   
digitalWrite(11,LOW); 
   
digitalWrite(9,LOW);
   
digitalWrite(5,HIGH);
    }
else
   
digitalWrite(4,LOW);                           // прожектор 1
   
digitalWrite(10,LOW);                         // настройка направления оборотов
   
digitalWrite(11,LOW); 
   
digitalWrite(9, LOW);
   
digitalWrite(5,LOW); }
      
   
if (data[2]==HIGH)
    {
   
analogWrite(3,data[0]);                       // ШИМ-сигнал 
   
digitalWrite(6,HIGH);                          // прожектор 2
   
digitalWrite(10,LOW);                         // настройка направления оборотов
   
digitalWrite(11,HIGH); 
   
digitalWrite(9,HIGH);
   
digitalWrite(5,LOW);
    }
else{
   
digitalWrite(6,LOW);                           // прожектор 2
   
digitalWrite(10,LOW);                         // настройка направления оборотов
   
digitalWrite(11,LOW); 
   
digitalWrite(9,LOW);
   
digitalWrite(5,LOW);
    }
   
if ((data[1]==LOW)and(data[2]==LOW))
    {
   
analogWrite(3,data[0]);                     // ШИМ-сигнал 
   
digitalWrite(6,LOW);                         // прожектор 2
   
digitalWrite(4,LOW);                         // прожектор 1
   
digitalWrite(10,LOW);                       // настройка направления оборотов
   
digitalWrite(11,LOW); 
   
digitalWrite(9,LOW);
   
digitalWrite(5,LOW);
    } 
   
if ((data[1]==HIGH)and(data[2]==HIGH))
    {
   
analogWrite(3,data[0]);                       // ШИМ-сигнал 
   
digitalWrite(6,LOW);                           // прожектор 2
   
digitalWrite(4,LOW);                           // прожектор 1
   
digitalWrite(10,LOW);                         // настройка направления оборотов
   
digitalWrite(11,LOW); 
   
digitalWrite(9,LOW);
   
digitalWrite(5,LOW);
    } 

    if (data[3]==1)
    {
     
tone(12,755);                        // включение пьезодинамика и задание частоты 755 Гц
    } 
   
else  noTone(12);  }
}                                              

bottom of page