Skocz do zawartości

Problem ze sterowaniem


gomoter12

Pomocna odpowiedź


#include <SoftwareSerial.h>
SoftwareSerial mySerial(2, 4); //RX, TX // doodłączenia BT na odwrót 

char BluetoothData; // stala ktora odbiera dane z bt 

// silniki:
int DoPrzoduPrawy = 12; // do przodu prawy silnik
int DoTyluPrawy = 9; // do tylu prawy silnik
int PrawySilnikPWM = 3; // PWM silnik R
int LewySilnikPWM = 11; // PWM silnik L
int DoPrzoduLewy = 13; // do przodu lewy silnik
int DoTyluLewy = 8; //do tylu lewy silnik


void setup() 
{
 Serial.begin(9600); // transmisja komp-ardu
 
 mySerial.begin(9600); // rozpoczecie transmisji ardu-BT

 //Silniki jako wyjscia
 pinMode(DoPrzoduPrawy, OUTPUT);
 pinMode(DoTyluPrawy, OUTPUT);
pinMode(PrawySilnikPWM, OUTPUT);

 pinMode(LewySilnikPWM, OUTPUT);
 pinMode(DoPrzoduLewy, OUTPUT);
 pinMode(DoTyluLewy, OUTPUT);

 //ustawienia na LOW 
 digitalWrite(DoPrzoduPrawy, LOW);
 digitalWrite(DoTyluPrawy, LOW);
digitalWrite(PrawySilnikPWM, HIGH); //  m
digitalWrite(LewySilnikPWM, HIGH); // t
digitalWrite(DoPrzoduLewy, LOW);
 digitalWrite(DoTyluLewy, LOW);

}
void loop() {
 

 BluetoothData = mySerial.read(); //odbiór danych z BT 

  if (BluetoothData == 'P') {  // jezeli wcisniete "przod" t odo przodu
digitalWrite(DoTyluPrawy, LOW); 
 digitalWrite(DoTyluLewy, LOW);
 digitalWrite(DoPrzoduPrawy, HIGH);
 digitalWrite(DoPrzoduLewy, HIGH); 
  
 }

 else if (BluetoothData == 'T') { /
 digitalWrite(DoPrzoduPrawy, LOW); //
 digitalWrite(DoPrzoduLewy, LOW);
 digitalWrite(DoTyluPrawy, HIGH); // 
 digitalWrite(DoTyluLewy, HIGH);// l

 }

 else if (BluetoothData == 'L') { //
 digitalWrite(DoPrzoduPrawy, LOW); //
  digitalWrite(DoPrzoduLewy, HIGH); //
 digitalWrite(DoTyluPrawy, LOW); //
 digitalWrite(DoTyluLewy, LOW);
 }
else if (BluetoothData == 'R') { /
  digitalWrite(DoPrzoduPrawy, HIGH); // 
  digitalWrite(DoPrzoduLewy, LOW); /
 digitalWrite(DoTyluPrawy, LOW); 
 digitalWrite(DoTyluLewy, LOW);
 }

 else if (BluetoothData == '0') { 
  digitalWrite(DoPrzoduPrawy, LOW); 
  digitalWrite(DoPrzoduLewy,LOW); 
 digitalWrite(DoTyluPrawy, LOW);
 digitalWrite(DoTyluLewy, LOW);

}
}

Witam, mam problem związany ze sterowanie , steruje moim robotem za pomocą bluetooth electronics. 

Mianowicie kiedy wgrywam program na płytke silniki automatycznie kręcą się w tył, jeżeli klikne do przodu ciągle kręcą się do przodu a chciałbym , żeby kręciły się tylko przy przytrzymaniu przycisku i jeżeli puszcze to , żeby robot się zatrzymał. Mógłby mi ktoś wskazać gdzie mam błąd w programie ?

Link do komentarza
Share on other sites

A wysyłasz znak "0" gdy puszczasz przycisk? Bo chyba tylko tego oczekuje Twój(?) program by zatrzymać silniki.

A stan wgrywania programu nie ma nic wspólnego z treścią samego kodu. Musisz zapewnić, by niesterowane linie portów (te nazwane DoPrzoduPrawy, DoTyluLewy itd) były w stanie niskim. Tu mogą pomóc jedynie oporniki ściągające w dół. Jaki masz mostek?

 

Link do komentarza
Share on other sites

@gomoter12, jeśli chcesz, aby ktoś Ci pomógł to musisz również się trochę wysilić. Pomijam już fakt, że mógłbyś odpowiedzieć pełnym zdaniem + wrzucić zdjęcia prosto do edytora, tak jak robią to inni, ale mógłbyś chociaż odpowiedzieć na wszystkie pytania zadane przez @marek1707 😉

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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.