Wykrywanie wciśniętego przycisku

0

Witam,
próbuję sterować dwoma silnikami poprzez program odpalony przez ssh, ale chciałbym aby jechał i rozpędzał się gdy guzik jest wciśnięty oraz wyhamowywał gdy puszczę przycisk. Mógłby mi ktoś powiedzieć jak to się robi?

0

Zewnetrzne przerwanie imho powinno wystarczyc. Konkretnie to takie co odroznia zbocze opadajace/narastajace. @Edit: niekoniecznie takie co odroznia zbocza.

W ostatecznosci probkowanie pinu z guzikiem?

0

No masz np takie wektory przerwan (nie wiem jaka masz plytke)

Screenshot_20191213-184359.png

A zeby oprogramowac to cos a'la

ISR(INT0_vect) {
    / jesli przycisk wcisniety to odpal silnik, zgas wpp */
}
0

Jak to można zrobić:

  • odczytujesz w aplikacji stan przycisku w jakiejś pętli i tak długo jak przycisk naciśnięty - zwiększasz wartość pewnego licznika
  • kiedy przycisk nie jest naciśnięty zmniejszasz wartość tego licznika

Licznik ma pewien dopuszczalny zakres przyjmowanych wartości - np. 0-65535. Wartość licznika wrzucasz poprzez sysfs do raspberry do konfiguracji PWM-a.
PWM-a podłączasz do silnika przez odpowiedni układ.

Tutaj masz coś odnośnie PWM-a: https://jumpnowtek.com/rpi/Using-the-Raspberry-Pi-Hardware-PWM-timers.html

A tu odnośnie GPIO: https://raspberrypi.stackexchange.com/questions/92381/raspberry-gpio-button-sysfs

W dużym skrócie to zadaniem programu jest odczytywanie wartości z /sys/class/gpio/... i wrzucanie odpowiedniej wartości do /sys/class/pwm/...

1 użytkowników online, w tym zalogowanych: 0, gości: 1