Skocz do zawartości

Problem z programem (sterowanie serwem z pracą ciągłą)


Burza22

Pomocna odpowiedź

Ostatnio dużo siedzę nad Arduino i mam pewien problem. Otóż znalazłem pomoc z sterowaniem serwem na pewnej stronie. Chciałem spróbować zrobić to na swoim rzeczywistym układzie (chciałem sterować terminalem z telefonu serwem o pracy ciągłej , w przód , tył i stop) wgrałem wszystkie biblioteki choć biblioteki ServoTimer2 jakoś nie wykrywa moje arduino w kodzie choć mam wgraną tą biblioteke) i to napewno też jest problem ale mam także problem z błędem "cannot convert ' String' to 'char' in initialization

Strona z której korzystałem : https://physics.uwb.edu.pl/wf/fi-bot/?tag=serwo&paged=2

Mój listing kodu ( z tym że ServoTimer2 wogule się nie podświetla na pomarańczowo , a biblioteka wgrana w folderze)

#include <Servo.h>
#include <SoftwareSerial.h>

SoftwareSerial bt(8, 9);//RxD, TxD
Servo silnik;

void setup() {
  Serial.begin(9600);
  bt.begin(9600);
  silnik.attach(3);
  Serial.println("start!");
}

void loop() {
  if (bt.available()){
    char komenda=bt.readString());
    Serial.print("odebrano= ");
    Serial.println(komenda);//dla sprawdzenia

    switch (komenda){
      case 'W': silnik.writeMicroseconds(1000); break;  //przod
      case 'S': silnik.writeMicroseconds(2000); break;  //tyl
      case 'X': silnik.writeMicroseconds(1500); break;  //stop
    }//switch
}

 

Edytowano przez Burza22
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

@ethanak a sory zly listing wysłałem

#include <ServoTimer2.h>
#include <AltSoftSerial.h>

AltSoftSerial bt;//Arduino UNO -> RxD=9, TxD=10, nie ma wyboru!
ServoTimer2 silnik;

void setup() {
  Serial.begin(9600);
  bt.begin(9600);
  silnik.attach(3);
  Serial.println("start!");
}

void loop() {
  if (bt.available()){
    char komenda=bt.readString());
    Serial.print("odebrano= ");
    Serial.println(komenda);//dla sprawdzenia

    switch (komenda){
      case 'W': silnik.write(1000); break;  //przod
      case 'S': silnik.write(2000); break;  //tyl
      case 'X': silnik.write(1500); break;  //stop
    }//switch
}

 

Link do komentarza
Share on other sites

Temat do zamknięcia dziękuje bardzo za pomoc @farmaceuta

Listing kodu:

#include <Servo.h>
#include <SoftwareSerial.h>

SoftwareSerial bt(8, 9);//RxD, TxD
Servo silnik;

void setup() {
  Serial.begin(9600);
  bt.begin(9600);
  silnik.attach(3);
  Serial.println("start!");
}

void loop() {
  if (bt.available()){
    char komenda=bt.read();
    Serial.print("odebrano= ");
    Serial.println(komenda);//dla sprawdzenia
      switch (komenda){
      case  'W': silnik.writeMicroseconds(1000); break;  //przod
      case  'R': silnik.writeMicroseconds(2000); break;  //tyl
      case  'S': silnik.writeMicroseconds(1500); break;  //stop
    }//switch
}
}

 

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.