Skocz do zawartości

Przytrzymanie przycisku wykonuje obrót servem


Pomocna odpowiedź

14 minut temu, farmaceuta napisał:

Tak jak pisalem, musisz sprawdzic co jest zwracane jak guzik jest caly czas wcisniety, ja tego nie wiem i doradzic Ci nie moge...

Chodzi o to czy znak jest zwracany tylko raz czy ciagle, to wazna sprawa...jezeli ciagle to dobrze, jezeli jednorazowo to gorzej..trzeba wiedziec co zwraca funkcja jak nic nie jest wcisniete...serial monitor do tego sluzy..



key = getkey();
  Serial.println(key);

(Oczywiscie musisz w setup() wpisac Serial.begin(9600);

sprawdziłem i jak trzymam przycisk pokazuje sie tylko jedna liczba a nie ciąg:(

(edytowany)
7 minut temu, radek123 napisał:

czyli to jest nie możliwe żeby wykonać to bez używania osobnych przycisków?

Chodzi o to ze nie wiadomo kiedy przycisk zostal zwolniony, wiec i nie wiadomo kiedy zatrzymac serwo...(o ile dobrze zrozumialem) chociaz troszke mnie to dziwi ze autor libsa nie przewidzial sytuacji w ktorej sterujemy czyms poprzez dlugosc wcisniecia danego guzika...🤔

Tzn...klawiatura jest na osmiu kablach i to ich stany okreslaja ktory klawisz jest wcisniety, wiec wystarczy sobie "zmapowac" te stany i je czytac...do tego nawet biblioteka nie potrzebna (moge sie troche mylic bo szczerze nie wiem jak to jest "zbudowane" w srodku)

Zrob tak....do kazdego pinu dopisz 

Serial.println(digitalRead(pin));

(Tak dla 8 pinow ktore sa pod klawiature) i wcisnij jakis przykladowy klawisz i sie zobaczy co sie pojawia na poszczegolnych pinach...daj jakis delay500 zeby ci za szybko nie latalo

Edytowano przez farmaceuta
1 minutę temu, etet100 napisał:

void loop() {
  pad.getKeys();
  if (pad.isPressed('1')) {
    //lewo
  } else if (pad.isPressed('2')) {
    //prawo
  }
  //tu warto pomyśleć o opóźnieniu bo serwo zwariuje
}

 

Czyli tam gdzie jest napisane //prawo muszę swoją funkcję że dodaje zmienna do pozycji wpisać ?

(edytowany)

No musisz wpisać co się ma dziać gdy trzymasz dany przycisk. Najlepiej zacznij od czegoś w stylu Serial.println("lewo!") i Serial.println("prawo") żeby zobaczyć w terminalu czy to w ogóle działa. 

Edytowano przez etet100

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