Advertisement
Guest User

Arduino

a guest
Jul 19th, 2024
137
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 3.25 KB | None | 0 0
  1. // Підключення бібліотеки RCSwitch для роботи з радіопередавачем та радіоприймачем
  2. #include <RCSwitch.h>
  3.  
  4. // Створення об'єкта для роботи з бібліотекою
  5. RCSwitch mySwitch = RCSwitch();
  6.  
  7. // Максимальна кількість збережених кодів
  8. const int maxCodes = 10;
  9.  
  10. // Масив для збереження кодів
  11. unsigned long receivedCodes[maxCodes];
  12.  
  13. // Лічильник збережених кодів
  14. int codeCount = 0;
  15.  
  16. void setup() {
  17.   // Ініціалізація серійного з'єднання для виведення даних в консоль
  18.   Serial.begin(9600);
  19.  
  20.   // Включення приймача на піні D2
  21.   mySwitch.enableReceive(0);
  22.  
  23.   // Включення передавача на піні D3
  24.   mySwitch.enableTransmit(3);
  25.  
  26.   // Виведення повідомлення про готовність до прийому сигналів
  27.   Serial.println("Готово до прийому сигналів на частоті 433 МГц");
  28. }
  29.  
  30. void loop() {
  31.   // Перевірка, чи є доступні для прийому сигнали
  32.   if (mySwitch.available()) {
  33.     // Отримання значення прийнятого сигналу
  34.     unsigned long receivedValue = mySwitch.getReceivedValue();
  35.    
  36.     // Перевірка, чи значення сигналу не дорівнює нулю
  37.     if (receivedValue != 0) {
  38.       Serial.print("Отримано сигнал: ");
  39.       Serial.println(receivedValue);
  40.      
  41.       // Якщо кількість збережених кодів менша за максимальну кількість
  42.       if (codeCount < maxCodes) {
  43.         // Збереження коду в масив
  44.         receivedCodes[codeCount] = receivedValue;
  45.         codeCount++;
  46.        
  47.         Serial.print("Код збережено. Його номер - ");
  48.         Serial.println(codeCount);
  49.       } else {
  50.         // Якщо масив переповнений
  51.         Serial.println("Массив переповнений.");
  52.       }
  53.     } else {
  54.       // Якщо кодування сигналу невідоме
  55.       Serial.println("Невідоме кодування");
  56.     }
  57.    
  58.     // Скидання стану прийому
  59.     mySwitch.resetAvailable();
  60.   }
  61.  
  62.   // Перевірка, чи є доступні дані в серійному з'єднанні
  63.   if (Serial.available() > 0) {
  64.     // Зчитування значення введеного коду
  65.     int selectedCode = Serial.parseInt();
  66.    
  67.     // Перевірка, чи введений код знаходиться в допустимому діапазоні
  68.     if (selectedCode >= 0 && selectedCode < codeCount) {
  69.       Serial.print("Передача коду: ");
  70.       Serial.println(receivedCodes[selectedCode]);
  71.      
  72.       // Передача коду за допомогою передавача
  73.       mySwitch.send(receivedCodes[selectedCode], 24);
  74.     } else {
  75.       // Якщо введений номер коду невірний
  76.       Serial.println("Невірний номер коду.");
  77.     }
  78.   }
  79. }
  80.  
Tags: Arduino
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement