Skocz do zawartości

Problem z komunikacją między dwoma modułami HC-05


Bemol

Pomocna odpowiedź

Cześć.
Napotkałem problem z którym nie mogę sobie poradzić i licze na Waszą pomoc.

Chce zbudować jeżdżący pojazd którym będę mógł sterować przez komunikacje bluetooth. Jeden hc-05 będzie w pilocie na kształt pada, drugi będzie w pojeździe.

Ale zanim tak sie stanie chce przeprowadzić kilka testów i tu napotykam już na ściane.

Zależy mi na absolutnym minimum kodu potrzebnym do działania na ten moment dwóch przycisków sterujących dwiema diodami.

Co zrobiłem do tej pory?

1. Skonfigurowałem i sparowałem oba modułu bluetooth w trybie konfiguracji. Jeden jako master, drugi jako Slave. Obu nadałem prędkość 9600. Oba łączą się ze sobą pomyślnie.

2. Podłączyłem oba moduły do dwóch różnych Arduino Uno według ilustracji pierwszej, poniżej uwzględniając Rx i Tx na pinach 8 , 9.   Uwzględniłem także rezystory odpowiedniej mocy tak, jak w ilustracji.
3.  Napisałem poniższe programiki i za którymś razem udało się je wgrać do płytki. 

 

 

Pytania:

1. Czego nie uwzględniłem lub zrobiłem źle, że układ nie działa poprawnie?

2. Często tez jest tak, że IDE nie chce mi przesłać treści do arduino. Wiecie może dlaczego? Uszkodziłem gdzieś płytke?
3. Czy aby na pewno podłączenie RX od hc-05 do GND jest dobrym rozwiązniem?    Spotkałem też gdzieś w necie rysunek, jak w ilustracji nr 2 który mnie zastawia. Co sądzicie?

Master//
  
#include <SoftwareSerial.h>
SoftwareSerial Bluetooth(8, 9);  // rx  tx 
void setup() {
  Serial.begin(9600);
  pinMode(2, INPUT_PULLUP);
  pinMode(3, INPUT_PULLUP);
}

void loop() {

if(digitalRead(2)==LOW)
      {
      Serial.println('2');   // Czy może    Bluetooth.println('2');    ?
      }

if(digitalRead(3)==LOW)
      {
      Serial.println('3');
      }

  delay(100);
}



Slave//
    
#include <SoftwareSerial.h>
SoftwareSerial Bluetooth(8, 9);  // rx  tx 

int BluetoothDane;

void setup() {
  Serial.begin(9600);
  Bluetooth.begin(9600);
  
  pinMode(2, OUTPUT);
  pinMode(3, OUTPUT);

}

void loop() {
 if(Serial.available() >0 )
    {
      BluetoothDane=Bluetooth.read();

        if(BluetoothDane=='2')
            {digitalWrite(2, HIGH);
            digitalWrite(3, LOW);
            
            delay(500);
            digitalWrite(2, LOW);
            digitalWrite(3, LOW);
            }

        if(BluetoothDane=='3')
            {digitalWrite(3, HIGH);
            digitalWrite(2, LOW);
            
            delay(500);
            digitalWrite(3, LOW);
            digitalWrite(2, LOW);
            }   
      }
    delay(100);
}

 

HC-05_1.jpg

17.1-1024x441.png

Link do komentarza
Share on other sites

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • 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.