Frästisch mit elektronischer Höhenverstellung mittels Schrittmotoren.
Ви не можете вибрати більше 25 тем Теми мають розпочинатися з літери або цифри, можуть містити дефіси (-) і не повинні перевищувати 35 символів.

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. /*
  2. * RotaryControler.cpp
  3. *
  4. * Created on: 04.02.2022
  5. * Author: FSmilari
  6. */
  7. #include "RotaryControler.h"
  8. /*****************
  9. ** Constructors.
  10. ****************/
  11. RotaryControler::RotaryControler(int RotEnc_Dta_Pin, int RotEnc_Clk_Pin, int RotEnc_Switch_Pin) : Encoder(RotEnc_Dta_Pin, RotEnc_Clk_Pin,
  12. RotaryEncoder::LatchMode::FOUR3), RotarySwitch(RotEnc_Switch_Pin, true, 2000) {
  13. position = 0;
  14. Encoder.setPosition(position);
  15. }
  16. /******************
  17. ** Public methods
  18. *****************/
  19. void RotaryControler::tick(void) {
  20. Encoder.tick();
  21. }
  22. void RotaryControler::resetPosition(void) {
  23. Encoder.setPosition(0L);
  24. }
  25. long RotaryControler::getPosition(void) {
  26. return Encoder.getPosition();
  27. }
  28. int RotaryControler::getDirection(void) {
  29. return (int) Encoder.getPosition();
  30. }
  31. bool RotaryControler::isSwitchPressed(void) {
  32. return RotarySwitch.isPressed();
  33. }
  34. bool RotaryControler::isSwitchLongPressed(void) {
  35. return RotarySwitch.isLongPressed();
  36. }
  37. void RotaryControler::setDebounceTime(unsigned long time) {
  38. RotarySwitch.setDebounceTime(time);
  39. }
  40. void RotaryControler::loop(void) {
  41. RotarySwitch.loop();
  42. Encoder.tick();
  43. }
  44. RotaryEncoder::Direction RotaryControler::getEncoderMove() {
  45. RotaryEncoder::Direction dir = Encoder.getDirection();
  46. return dir;
  47. }