You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

TactiloControllerPanda.ino 2.4KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. ///-------------------------------------------------------------------------------------------------
  2. ///
  3. /// \file TactiloControllerPanda.ino
  4. /// \brief Controlls the Tactilos on the Leonardos GPIOs, based on the messages from OpenVibes TactiloController Box Algorithm
  5. /// Hochladen mit der Arduino IDE
  6. /// \author Tobias Baumann (TH-Nürnberg).
  7. /// \version 1.0.
  8. /// \date Mon Mar 7 14:02:56 2022.
  9. ///
  10. ///-------------------------------------------------------------------------------------------------
  11. //define used GPIO pins
  12. #define TAC1 7
  13. #define TAC2 8
  14. #define TAC3 9
  15. #define TAC4 10
  16. #define TAC5 11
  17. #define TAC6 12
  18. #define LED 13
  19. void setup()
  20. {
  21. //init serial
  22. Serial.begin(115200);
  23. //init GPIOs
  24. Serial.println("...init GPIOs");
  25. set_PinMode();
  26. set_AllLow();
  27. }
  28. void loop()
  29. {
  30. char SerialData;
  31. if(Serial.available() > 0)
  32. {
  33. SerialData = Serial.read();
  34. }
  35. processSerialData(SerialData);
  36. }
  37. void set_PinMode()
  38. {
  39. //set all pins to OUTPUT
  40. pinMode(TAC1, OUTPUT);
  41. pinMode(TAC2, OUTPUT);
  42. pinMode(TAC3, OUTPUT);
  43. pinMode(TAC4, OUTPUT);
  44. pinMode(TAC5, OUTPUT);
  45. pinMode(TAC6, OUTPUT);
  46. pinMode(LED, OUTPUT);
  47. }
  48. void set_AllLow()
  49. {
  50. //set all pins to LOW
  51. digitalWrite(TAC1, LOW);
  52. digitalWrite(TAC2, LOW);
  53. digitalWrite(TAC3, LOW);
  54. digitalWrite(TAC4, LOW);
  55. digitalWrite(TAC5, LOW);
  56. digitalWrite(TAC6, LOW);
  57. digitalWrite(LED, LOW);
  58. }
  59. void processSerialData(char SerialData)
  60. {
  61. switch(SerialData)
  62. {
  63. case '0':
  64. if(digitalRead(LED) == LOW)
  65. {
  66. digitalWrite(LED, HIGH);
  67. Serial.println("...Start Tactile Session");
  68. }
  69. else
  70. {
  71. set_AllLow();
  72. Serial.println("...End Tactile Session");
  73. }
  74. break;
  75. case '1':
  76. digitalWrite(TAC1, !digitalRead(TAC1));
  77. Serial.print("Tactilo 1: ");
  78. Serial.println(digitalRead(TAC1));
  79. break;
  80. case '2':
  81. digitalWrite(TAC2, !digitalRead(TAC2));
  82. Serial.print("Tactilo 2: ");
  83. Serial.println(digitalRead(TAC2));
  84. break;
  85. case '3':
  86. digitalWrite(TAC3, !digitalRead(TAC3));
  87. Serial.print("Tactilo 3: ");
  88. Serial.println(digitalRead(TAC3));
  89. break;
  90. case '4':
  91. digitalWrite(TAC4, !digitalRead(TAC4));
  92. Serial.print("Tactilo 4: ");
  93. Serial.println(digitalRead(TAC4));
  94. break;
  95. case '5':
  96. digitalWrite(TAC5, !digitalRead(TAC5));
  97. Serial.print("Tactilo 5: ");
  98. Serial.println(digitalRead(TAC5));
  99. break;
  100. case '6':
  101. digitalWrite(TAC6, !digitalRead(TAC6));
  102. Serial.print("Tactilo 6: ");
  103. Serial.println(digitalRead(TAC6));
  104. break;
  105. default:
  106. break;
  107. }
  108. }