Elektroda.pl
Elektroda.pl
X
Proszę, dodaj wyjątek dla www.elektroda.pl do Adblock.
Dzięki temu, że oglądasz reklamy, wspierasz portal i użytkowników.

URM07 - konflikt z nadajnikiem RF

hefajstos1 26 Mar 2018 01:33 300 0
  • #1
    hefajstos1
    Poziom 6  
    Witam, mam problem z połączeniem nadajnika RF - 433MHz z czujnikiem URM07. Sam czujnik działa prawidłowo, nadajnik sam też. W jednym kodzie już tak nie jest - po ustawieniu vw_setup() na jakąkolwiek wartość różną od 0 czujnik wyrzuca odległość 0 - po ustawieniu komentarza w tej linijce czujnik działa poprawnie. Oto kod:

    Code:
    #include <SoftwareSerial.h>
    
    #include <VirtualWire.h>

    #define header_H    0x55 //Header
    #define header_L    0xAA //Header
    #define device_Addr 0x11 //Address
    #define data_Length 0x00 //Data length
    #define get_Dis_CMD 0x02 //Command: Read Distance
    #define checksum    (header_H+header_L+device_Addr+data_Length+get_Dis_CMD) //Checksum

    SoftwareSerial NewSerial(10, 11);

    int setDistance = 150;
    const char *message = "X";

    unsigned char i = 0;
    unsigned int  distance1 = 5000;
    unsigned int distance2 = 5000;
    unsigned char Rx_DATA[8];
    unsigned char CMD[6] = {
      header_H, header_L, device_Addr, data_Length, get_Dis_CMD, checksum
    }; //Distance command package

    void setup()
    {
      NewSerial.begin(19200);  //Serial1: Ultrasonic Sensor Communication Serial Port, Buadrate: 19200
      Serial.begin(19200);   //Serial: USB Serial Data output, baudrate: 19200
      vw_set_ptt_inverted(true); // On a communication line means that each
      // party is either transmitting or receiving ( like a walkie talkie)
      vw_set_tx_pin(12); // set transmitter pin
      vw_setup(4000);
    }

    void loop() {
      for (i = 0; i < 6; i++) {
        NewSerial.write(CMD[i]);
      }
      delay(100);  //Wait for the result
      i = 0;
      while (NewSerial.available()) { //Read the return data (Note: this demo is only for the reference, no data verification)
        Rx_DATA[i++] = (NewSerial.read());
      }
      distance1 = ((Rx_DATA[5] << 8) | Rx_DATA[6]); //Read the distance value
      Serial.println(distance1);

    Proszę o pomoc