Skocz do zawartości

Konfilkt URM07 z nadajnikiem RF


Arius

Pomocna odpowiedź

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:

#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.

Link do komentarza
Share on other sites

Ok, rozwiązałem problem więc może się komuś jeszcze przyda. Biblioteka VirtualWire koliduje w pewien sposób z pinami 10 i 11 - nie działa na nich PWM, nie działa na nich RX/TX przez bibliotekę SoftwareSerial, a jedynie HIGH/LOW.

  • Lubię! 1
Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.