Arduino Polska Forum

Pełna wersja: Robot - brak reakcji od strony bluetooth
Aktualnie przeglądasz uproszczoną wersję forum. Kliknij tutaj, by zobaczyć wersję z pełnym formatowaniem.
Witam.
Po pewnym czasie postanowiłem odkopać arduino i stworzyć z powrotem robota. Sam robot posiada dwa silniki z jedną osią jezdną z tyłu sterowane przez układ L298 (dostępny w botlandzie) czujnik ruchu HC SR 04 i bluetooth HC-06 FC114 i serwomechanizm (z którego prawdopodbnie zrezygnuje ze względu na brak miejsc pinów zasilania w arudino) . Kiedyś już tworzyłem taką konstrukcje i miałem problem z  kodem jednak po rozmowie tutaj na forum uzyskałem kod który działał . Niestety teraz odtwarzając projekt 1:1 wystąpił problem otóż : Po podłączeniu wszystkich część i połączeniu się przez smartfon z bluetooth arduino wogóle nie reaguje tak jakby nie otrzymywało informacji (świadczy o tym mrugnięcie diod TX/RX).Z początku myślałem że jest coś nie tak z arduino ale po podłączeniu do komputera i wysłaniu czegokolwiek przez monitor portu szeregowego ów diody mrugają. Nie wiem czego może dotyczyć bład będe wdzięczny za wszelką okazaną pomoc jak i konstruktywną krytykę Smile

Zasilanie:
Arduino- bateria 9V przez wtyk DC 2.1/5.5 (czerwony środek / czarny obudowa)
Sterownik L298 - koszyk baterii 6xAA
Podłączenie:
Sterownik - przewody do silników / 4 przewody do arduino na pin 4,5,6,7
Bluetooth- 1-GND 2-3,3V  3-TX-RX 4-RX-TX
Czujnik odległości 1-GND 2-5V 3-ECHO-12pin 4.TRIG-11pin
Serwo-aktualnie nie podłaczone brak portów zasilających
2 silniki DAGU 4,5V 48:1 podłaczone do kanałów sterownika


Kod - wcześniej działał dzięki uprzejmości moderatora jasqa
Kod:
#include <Servo.h>
Servo myservo;
#include <NewPing.h>
#define TRIGGER_PIN  11
#define ECHO_PIN     12  
#define MAX_DISTANCE 200
NewPing sonar(TRIGGER_PIN, ECHO_PIN, MAX_DISTANCE);
int pos = 0;  
byte state = 1;
long pm = 0;
byte echo = 0;

int Motor1 = 4;
int Motor2 = 5;
int Motor3 = 6;
int Motor4 = 7;

char command = 'S';
int velocity = 0;


void setup()
{  
Serial.begin(9600);                  
pinMode(Motor1, OUTPUT);
pinMode(Motor2, OUTPUT);
pinMode(Motor3, OUTPUT);
pinMode(Motor4, OUTPUT);
pinMode(TRIGGER_PIN, OUTPUT); //Pin, do którego podłączymy trig jako wyjście
pinMode(ECHO_PIN, INPUT);

myservo.attach(8);  

}

void loop(){


{
 long cm = millis();

if ( cm - pm > 1 )echo = sonar.ping_cm();
if ( cm - pm > 10 and state == 1){
  pos = constrain(pos, 0, 180);
 
  pos++;
  myservo.write(pos);              
if (pos >= 180)state = 2;
  pm = cm;}

if ( cm - pm > 10 and state == 2){
  pos = constrain(pos, 0, 180);
  pos--;
  myservo.write(pos);              
if (pos <= 0)state = 1;
  pm = cm;}
   
//   Serial.print(pos);
//   Serial.print(" - ");
//   Serial.print(echo);
//   Serial.println("cm");
   
}
    if (Serial.available() > 0)command = Serial.read();
   
   
 if ( echo < 10)command = 'S';  
   
  switch(command){
  case 'F':  
  digitalWrite(Motor1, HIGH);    
  digitalWrite(Motor4, HIGH);
     break;
  case 'B':  
     digitalWrite(Motor2, HIGH);
     digitalWrite(Motor3, HIGH);
    break;
  case 'R':  
     digitalWrite(Motor2, HIGH);
     digitalWrite(Motor4, HIGH);
    break;
  case 'L':
     digitalWrite(Motor1, HIGH);
     digitalWrite(Motor3, HIGH);
    break;
  case 'S':  
     digitalWrite(Motor1, LOW);
     digitalWrite(Motor2, LOW);
     digitalWrite(Motor3, LOW);
     digitalWrite(Motor4, LOW);
    break;

   
     }
}
Sprawdź czy działa jeśli zostawisz tylko część programu odpowiedzialna za komunikację.
A więc tak podłączyłem same bluetooth z tym programem:
Kod:
#include "SoftwareSerial.h"
SoftwareSerial mySerial(A0, A1); // RX, TX - odwrotnie
void setup() {
 mySerial.begin(9600);
}
void loop() {
 mySerial.print(";");
 delay(100);
}

Dioda tx cały czas miga po podłączeniu z bt .Normalnie na porcie widać odczytywanie komend typu S F B bez zakończenia a więc wykluczyłbym uszkodzenie bluetooth
(04-02-2017, 21:40)Bator11 napisał(a): [ -> ]A więc tak podłączyłem same bluetooth z tym programem:
Kod:
#include "SoftwareSerial.h"
SoftwareSerial mySerial(A0, A1); // RX, TX - odwrotnie
void setup() {
 mySerial.begin(9600);
}
void loop() {
 mySerial.print(";");
 delay(100);
}

Dioda tx cały czas miga po podłączeniu z bt .Normalnie na porcie widać odczytywanie komend typu S F B bez zakończenia a więc wykluczyłbym uszkodzenie bluetooth

Na podstawie czego chcesz wykluczyć uszkodzenie portu szeregowego(piny 0, 1) skoro test zrobiłeś na innych pinach? Dodatkowu tu wysyłasz dane za arduino a tam odbierałeś?
Testy nie robiłem na innych pinach.Bluetooth został tak samo podłączony jak był i tylko ten program wgrany został . Tutaj w tym programie chciałem zobaczyć tylko czy arduino odbiera sygnał z bluetooth żeby sprawdzić czy bt działa.
(04-02-2017, 22:06)Bator11 napisał(a): [ -> ]Testy nie robiłem na innych pinach.Bluetooth został tak samo podłączony jak był i tylko ten program wgrany został . Tutaj w tym programie chciałem zobaczyć tylko czy arduino odbiera sygnał z bluetooth żeby sprawdzić czy bt działa.
W programie który zamieściłeś arduino niczego nie odbiera a wysyła.
Sądzę że chodzi tobie o ten krótki do sprawdzenia.To w takim razie jeśli arduino nic nie odbiera to czemu po połączeniu z bluetooth i program na smartfonie naciskając klawisz odpowiedzialny za przesłanie "F" monitor portu szeregowego wyświetlał F i analogicznie F B R L itd. Będę wdzięczny za odpowiedź i podziwiam za cierpliwość Smile
Jak nie zastosujesz się do mojego pierwszego post to stracę cierpliwość.
Przeczytaj uważnie co i kiedy napisałeś i jak była moja odpowiedź.
Coś czuję że się nie dogadamy :/ trochę się już sam pogubiłem we wszystkim :/