Skocz do zawartości

Arduino Serwomechanizm Port UART


Pomocna odpowiedź

Udało się sposobem zmiany stringa na chara i konwertowaniu chara na inta.

Serdecznie dziękuję za pomoc a szczególnie @farmaceuta❤️

 #include <Servo.h>
Servo serwo;
int pozycja = 0;
String wyraz = ""; 
char zmiana[3];
void setup() 
{
Serial.begin(9600); //Rozpoczęcie komunikacji z portem szeregowym
serwo.attach(9); //Przypisanie wejścia sterowania serwa do pinu 9 PWM
Serial.println("Podaj pozycje"); //Prośba o podanie pozycji
serwo.write(0); // Wpisanie 0 na starcie aby serwo ustawiało się w pozycję 0
}

void loop() 
{
    while(Serial.available()>0) 
    {
    wyraz =Serial.readStringUntil('\n'); //Pobranie słowa z portu
    Serial.println(wyraz); //Wypisanie słowa
    wyraz.toCharArray(zmiana, wyraz.length()+1); //Konwertowanie słowa na znak
    pozycja = atoi(zmiana); //Konwertowanie znaku na liczbe
    serwo.write(pozycja); //Ustawienie serwa w zamierzonej pozycji
    }

  delay(200);
}

 

  • Lubię! 1
8 minut temu, jand napisał:
pozycja = wyraz.toInt();

Klasa String posiada metodę toInt()

Znam toInt()...chodziło mi bardziej o przekazanie String jako wskaźnik do atoi ()...@_LM_ widziałem już tą stronę ale tam jest operowanie na tablicy char...chodzi mi o prostrzy sposób wyciągnięcia adresu pierwszego elementu zmiennej String...coś bardziej domyślnego niż..

String x ="123";
int z = atoi(&x[0]);

Bo to powyższe wygląda strasznie...🤔

(edytowany)

To są dwie różne bajki:

char napis[]   = "napis";   //tablica znaków 

String napis = "napis";     //obiekt klasy String (z dużej litery)

atoi() odnosi się do pierwszego przypadku, toInt() do drugiego

Jeśli zawartość atoi wydaje się zawikłana, to można też tak:

char* x = "123";
int z = atoi(x);

 

Edytowano przez jand
  • Lubię! 2

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