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?
Wykrywanie wciśniętego przycisku
- Rejestracja: dni
- Ostatnio: dni
- Postów: 48
- Rejestracja: dni
- Ostatnio: dni
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?
- Rejestracja: dni
- Ostatnio: dni
No masz np takie wektory przerwan (nie wiem jaka masz plytke)

A zeby oprogramowac to cos a'la
ISR(INT0_vect) {
/ jesli przycisk wcisniety to odpal silnik, zgas wpp */
}
- Rejestracja: dni
- Ostatnio: dni
- Rejestracja: dni
- Ostatnio: dni
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/...