Advertisement
Guest User

Untitled

a guest
Nov 27th, 2014
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.09 KB | None | 0 0
  1. #include <CapSense.h>
  2.  
  3. // Shift register bit values to display 0-9 on the seven-segment display
  4. const byte ledCharSet[10] = {
  5.  
  6. B00111111,B00000110,B01011011,B01001111,B01100110,B01101101,B01111101,B00000111,B01111111,B01101111
  7. };
  8.  
  9. // Global variables
  10. bool isStarted = false;
  11. int val = 0;
  12. int state = 0;
  13. int x = 0;
  14. int i = 0;
  15.  
  16. // Pin definitions
  17. #define SLIDER1 0
  18. #define SLIDER2 1
  19. #define SLIDER3 2
  20.  
  21. #define KNOCK 5
  22.  
  23. #define BUTTON1 10
  24. #define BUTTON2 11
  25. #define BUTTON3 12
  26.  
  27. #define LED1 5
  28. #define LED2 6
  29.  
  30. #define BUZZER 3
  31.  
  32. #define TEMP 4
  33.  
  34. #define LIGHT 3
  35.  
  36. #define LATCH 7
  37. #define CLOCK 8
  38. #define DATA 4
  39.  
  40. // State machine values
  41. #define SLIDER_TEST 1
  42. #define BUZZER_TEST 2
  43. #define CAPSENSE_TEST 3
  44. #define TEMP_TEST 4
  45. #define LIGHT_TEST 5
  46. #define BUTTON_TEST 6
  47. #define SEVENSEG_TEST 7
  48.  
  49. CapSense cs_9_2 = CapSense(9,2); //Initializes CapSense pins
  50.  
  51. void setup()
  52. {
  53. Serial.begin(9600);
  54.  
  55. cs_9_2.set_CS_AutocaL_Millis(0xFFFFFFFF); // Calibrates CapSense pin timing
  56.  
  57. pinMode(BUTTON1,INPUT);
  58. pinMode(BUTTON2,INPUT);
  59. pinMode(BUTTON3,INPUT);
  60.  
  61. digitalWrite(BUTTON1,HIGH);
  62. digitalWrite(BUTTON2,HIGH);
  63. digitalWrite(BUTTON3,HIGH);
  64.  
  65.  
  66. pinMode(BUZZER, OUTPUT);
  67. pinMode(LED1, OUTPUT);
  68. pinMode(LED2, OUTPUT);
  69. digitalWrite(LED1,HIGH);
  70. digitalWrite(LED2,HIGH);
  71. pinMode(LATCH, OUTPUT);
  72. pinMode(CLOCK, OUTPUT);
  73. pinMode(DATA,OUTPUT);
  74.  
  75.  
  76.  
  77. Serial.println("Danger Shield Component Test");
  78. Serial.println("Press Button 1 to begin.");
  79. }
  80.  
  81. void loop()
  82. {
  83. //if it is started already then we display
  84. if(isStarted) // Displays values of sliders
  85. {
  86. val = analogRead(SLIDER1);
  87.  
  88. int myRange = 0;//button 0 has been pressed
  89.  
  90. if(val >= 100 && val <= 200)
  91. myRange = 1;
  92. else if(val >= 200 && val <= 300)
  93. myRange = 2;
  94. else if(val >= 300 && val <= 400)
  95. myRange = 3;
  96. else if(val >= 400 && val <= 500)
  97. myRange = 4;
  98. else if(val >= 500 && val <= 600)
  99. myRange = 5;
  100. else if(val >= 600 && val <= 700)
  101. myRange = 6;
  102. if(val >= 700 && val <= 800)
  103. myRange = 7;
  104. if(val >= 800 && val <= 900)
  105. myRange = 8;
  106. if(val >= 900 && val <= 1000)
  107. myRange = 9;
  108. Serial.println(myRange);
  109. Serial.println("\n");
  110. digitalWrite(LATCH,LOW);
  111. shiftOut(DATA,CLOCK,MSBFIRST,~(ledCharSet[myRange]));
  112. digitalWrite(LATCH,HIGH);
  113. }
  114. if(isStarted == false) // Tests CapSense pad
  115. {
  116.  
  117. long start = millis();
  118. long total1 = cs_9_2.capSense(30);
  119. if(total1 > 600)
  120. {
  121. int i = 0;
  122. digitalWrite(LATCH,LOW);
  123. while(i < 100)
  124. {
  125. digitalWrite(LATCH,LOW);
  126. shiftOut(DATA,CLOCK,MSBFIRST,~(ledCharSet[i]));
  127. digitalWrite(LATCH,HIGH);
  128. i++;
  129. if(i==10){
  130. i = 0;
  131. }
  132. delay(10);
  133. i++;
  134. }
  135. digitalWrite(LATCH,HIGH);
  136. isStarted = true;
  137. }
  138. }
  139. /*
  140.  
  141. if(state == TEMP_TEST) // Displays temp sensor values
  142. {
  143. val = analogRead(TEMP);
  144. Serial.print("Temp: ");
  145. Serial.println(val);
  146. }
  147.  
  148. if(state == LIGHT_TEST) // Displays light sensor values
  149. {
  150. val = analogRead(LIGHT);
  151. Serial.print("Light: ");
  152. Serial.println(val);
  153. }
  154.  
  155. if(state == BUTTON_TEST) // Toggles LED's depending on Buttons 2 and 3
  156. {
  157. Serial.println("Button 2 & 3 Test");
  158. if(digitalRead(BUTTON3))
  159. {
  160. digitalWrite(LED1,HIGH);
  161.  
  162. }
  163. else
  164. {
  165. digitalWrite(LED1,LOW);
  166.  
  167. }
  168. if(digitalRead(BUTTON2))
  169. {
  170. digitalWrite(LED2,HIGH);
  171. }
  172. else
  173. {
  174. digitalWrite(LED2,LOW);
  175. }
  176. }
  177.  
  178. if(state == SEVENSEG_TEST) // Cycles through 0-9 on seven-segment
  179. {
  180. i = 0;
  181. Serial.println("Seven segment display test");
  182. while(1)
  183. {
  184. digitalWrite(LATCH,LOW);
  185. shiftOut(DATA,CLOCK,MSBFIRST,~(ledCharSet[i]));
  186. digitalWrite(LATCH,HIGH);
  187. i++;
  188. if(i==10){
  189. i = 0;
  190. }
  191. delay(500);
  192. }
  193. }
  194. */
  195. delay(300);
  196. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement