Advertisement
Guest User

Untitled

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