Помогите пожалуйста найти ошибку в RCSwitch

Тема в разделе "Arduino & Shields", создана пользователем ToxaRU, 1 окт 2015.

  1. ToxaRU

    ToxaRU Гик

    собираю приемник и передатчик на основе этой библиотеки двух переменных по принципу отсюда http://homes-smart.ru/index.php/obo...tmov-peredachi-dannykh-v-vide-tsifrovogo-koda
    передатчик работает и передает коды вот скетчь
    Код (C++):
    #include <Wire.h>
    #include <LiquidCrystal_I2C.h>
    LiquidCrystal_I2C lcd(0x27,16,2);
    #include <RCSwitch.h>

    RCSwitch mySwitch = RCSwitch();

    int q;
    int z;
    int q1; //переменная для конвертации
    int z1; //переменная для конвертации

    #define key1  300000
    #define key2  303000

    void setup() {
    lcd.init();
    lcd.backlight();
    Serial.begin(9600);
    lcd.setCursor(0, 0);                   // Устанавливаем курсор в начало 2 строки
      String s = "START ARDUINO";
    for (int i = 0; i < s.length(); i++) { lcd.print(s[i]); delay(100); }

      mySwitch.enableTransmit(8); // пин,на который подключен передатчик
     
    randomSeed(analogRead(0));
    }

    void loop() {
     
      delay(20); // Защита от скачков напряжения тока.
      int q = analogRead(A0); // Чтоб не засорять радио эфир, отправим данные только, если обнаружим изменения на PIN (A0).
      int z = analogRead(A1); // Чтоб не засорять радио эфир, отправим данные только, если обнаружим изменения на PIN (A1).
     
    q = map(q, 0, 1023, 0, 120); // Конвертируем значения
    z = map(z, 0, 1023, 0, 120); // Конвертируем значения
    q1 = map(q, 0, 120, 0, 360); // Конвертируем значения для вывода в монитор и на экран
    z1 = map(z, 0, 120, 0, 180); // Конвертируем значения для вывода в монитор и на экран

    sendRC(q+key1);

    sendRC(z+key2);

    lcd.clear();
    lcd.print("Horizont -- ");
      lcd.print(q1);            // Выводим текст
      lcd.setCursor(0, 1);   // Устанавливаем курсор в начало 2 строки
      lcd.print("Vertical -- ");
      lcd.print(z1);              // Выводим текст
       Serial.print(q1);
       Serial.print(z1);
     
    digitalWrite(13, LOW);

    }

    // подпрограмма отправки данных
    void sendRC(unsigned long code) {
     
    mySwitch.send(code, 20);

    }


    А вот с приемником что то невыходит молчит намертво


    вот код

    Код (C++):
    #include <RCSwitch.h>

    RCSwitch mySwitch = RCSwitch();

    int q=0,z=0;

    #define key1  300000 // датчик температуры
    #define key2  303000 // датчик температуры


    void setup() {
     
    mySwitch.enableReceive(0);  // Receiver on inerrupt 0 => that is pin #2 // иницилизация.Используется вывод м/к с прерыванием под номером 0.
    }
    void loop() {
     
      if (mySwitch.available()) {
       
    unsigned long receivedCode=  mySwitch.getReceivedValue();
        if (receivedCode == 0) {
          // обработка:не верный формат данных
        } else {

    if (key1<=receivedCode && key1+999>receivedCode) q=(int)(receivedCode-key1);    
    else if (key2<=receivedCode && key2+999>receivedCode) z=(int)(receivedCode-key2);    
         
        }

        mySwitch.resetAvailable(); // сброс данных.
      } // end available
      // тут могут выводится данные tempout и tempin на лсд экран или отправлятся через езернет.
    Serial.print(q);
    Serial.print(z);
    }
     
     
  2. ToxaRU

    ToxaRU Гик


    нашел))))) Serial.begin(9600); не прописал......