• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
Enkoder na silniku
#8
Może się mylę, ale może mikrokontroler pracuje zbyt szybko i zbiera impulsy wielokrotnie, bo po prostu zdąży Smile
Spróbuj dopisać do funkcji Odleglosc() blokadę, która zatrzymuje działanie programu tak długo, jak wartość z enkodera się nie zmienia. Możesz to zrobić za pomocą while:
Kod:
while(digitalRead(1)==HIGH){}
Wtedy taka funcja miałaby postać:
Kod:
void Odleglosc ()
{
impulsy++;
while(digitalRead(1)==HIGH){}
}
W takim wypadku program wyjdzie z tej pętli tylko w przypadku, kiedy sygnał na pinie 1 przestanie mieć wartość 1.
 
Odpowiedź
  


Wiadomości w tym wątku
Enkoder na silniku - przez Janek_gl - 11-03-2018, 00:43
RE: Enkoder na silniku - przez kaczakat - 11-03-2018, 01:26
RE: Enkoder na silniku - przez Janek_gl - 11-03-2018, 09:08
RE: Enkoder na silniku - przez kaczakat - 11-03-2018, 11:07
RE: Enkoder na silniku - przez Janek_gl - 11-03-2018, 12:03
RE: Enkoder na silniku - przez Smaczek - 12-03-2018, 09:22
RE: Enkoder na silniku - przez kaczakat - 13-03-2018, 02:15
RE: Enkoder na silniku - przez krn78 - 13-03-2018, 14:46
RE: Enkoder na silniku - przez kaczakat - 13-03-2018, 23:43
RE: Enkoder na silniku - przez Smaczek - 14-03-2018, 08:43
RE: Enkoder na silniku - przez krn78 - 14-03-2018, 12:33

Skocz do:


Przeglądający: 1 gości