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.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123
  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. processSerialData(SerialData);
  35. }
  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 '1':
  64. digitalWrite(TAC1, !digitalRead(TAC1));
  65. Serial.print("Tactilo 1: ");
  66. Serial.println(digitalRead(TAC1));
  67. break;
  68. case '2':
  69. digitalWrite(TAC2, !digitalRead(TAC2));
  70. Serial.print("Tactilo 2: ");
  71. Serial.println(digitalRead(TAC2));
  72. break;
  73. case '3':
  74. digitalWrite(TAC3, !digitalRead(TAC3));
  75. Serial.print("Tactilo 3: ");
  76. Serial.println(digitalRead(TAC3));
  77. break;
  78. case '4':
  79. digitalWrite(TAC4, !digitalRead(TAC4));
  80. Serial.print("Tactilo 4: ");
  81. Serial.println(digitalRead(TAC4));
  82. break;
  83. case '5':
  84. digitalWrite(TAC5, !digitalRead(TAC5));
  85. Serial.print("Tactilo 5: ");
  86. Serial.println(digitalRead(TAC5));
  87. break;
  88. case '6':
  89. digitalWrite(TAC6, !digitalRead(TAC6));
  90. Serial.print("Tactilo 6: ");
  91. Serial.println(digitalRead(TAC6));
  92. break;
  93. case 'b':
  94. if(digitalRead(LED) == LOW)
  95. {
  96. digitalWrite(LED, HIGH);
  97. Serial.println("...Begin Tactile Session");
  98. }
  99. break;
  100. case 'e':
  101. if(digitalRead(LED) == HIGH)
  102. {
  103. digitalWrite(LED, LOW);
  104. Serial.println("...End Tactile Session");
  105. }
  106. break;
  107. default:
  108. break;
  109. }
  110. }