Advertisement
Guest User

Traffic light / arduino

a guest
Jun 21st, 2015
51
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.04 KB | None | 0 0
  1. #include <RCSwitch.h>
  2.  
  3. RCSwitch mySwitch = RCSwitch();
  4. int rood = 13;
  5. int oranje = 12;
  6. int groen = 11;
  7. int AA = 1381717;
  8. int AB = 1381716;
  9. int BA = 1394005;
  10. int BB = 1394004;
  11. int CA = 1397077;
  12. int CB = 1397076;
  13. int DA = 1397845;
  14. int DB = 1397844;
  15.  
  16. int mode = 0;
  17. long timing = 0;
  18. int teller;
  19.  
  20.  
  21. void setup() {
  22. pinMode(rood, OUTPUT);
  23. pinMode(oranje, OUTPUT);
  24. pinMode(groen, OUTPUT);
  25. digitalWrite(oranje, HIGH);
  26. mySwitch.enableReceive(1);
  27. }
  28.  
  29. void loop() {
  30.  
  31. if(mode == 0){
  32. unsigned long currentMillis = millis();
  33. long interval = 1000;
  34. if(currentMillis - timing > interval) {
  35. timing = currentMillis;
  36. digitalWrite(oranje, !digitalRead(oranje));
  37. }
  38. }
  39.  
  40. if(mode == 1){
  41. //enkel rood
  42. digitalWrite(rood, HIGH);
  43. digitalWrite(oranje, LOW);
  44. digitalWrite(groen, LOW);
  45. }
  46.  
  47. if(mode == 2){
  48. //enkel oranje
  49. digitalWrite(rood, LOW);
  50. digitalWrite(oranje, HIGH);
  51. digitalWrite(groen, LOW);
  52. }
  53.  
  54. if(mode == 3){
  55. //enkel groen
  56. digitalWrite(rood, LOW);
  57. digitalWrite(oranje, LOW);
  58. digitalWrite(groen, HIGH);
  59. }
  60.  
  61. if(mode == 4){
  62. //rood aan/uit
  63. digitalWrite(rood, !digitalRead(rood));
  64. mode = -1;
  65. delay(500);
  66. }
  67.  
  68. if(mode == 5){
  69. //oranje aan/uit
  70. digitalWrite(oranje, !digitalRead(oranje));
  71. mode = -1;
  72. delay(500);
  73. }
  74.  
  75. if(mode == 9){
  76. //groen aan/uit
  77. digitalWrite(groen, !digitalRead(groen));
  78. mode = -1;
  79. delay(500);
  80. }
  81.  
  82. if(mode == 7){
  83. unsigned long currentMillis = millis();
  84. long interval = analogRead(A0) + 25;
  85. if(currentMillis - timing > interval) {
  86. timing = currentMillis;
  87. if (teller == 0){
  88. digitalWrite(rood, !digitalRead(rood));
  89. }
  90. if (teller == 1){
  91. digitalWrite(oranje, !digitalRead(oranje));
  92. digitalWrite(rood, !digitalRead(rood));
  93. }
  94. if (teller == 2){
  95. digitalWrite(oranje , !digitalRead(oranje));
  96. digitalWrite(groen, !digitalRead(groen));
  97. }
  98. if (teller == 3){
  99. digitalWrite(groen, !digitalRead(groen));
  100. teller = -1;
  101. }
  102. teller++;
  103. }
  104. }
  105.  
  106. if(mode == 8){
  107. if(analogRead(A4) > 36){
  108. teller++;
  109. }
  110. if(teller == 15){
  111. digitalWrite(rood, HIGH);
  112. digitalWrite(oranje, HIGH);
  113. digitalWrite(groen, HIGH);
  114. delay(45);
  115. teller = 0;
  116. }
  117. else{
  118. digitalWrite(rood, LOW);
  119. digitalWrite(oranje, LOW);
  120. digitalWrite(groen, LOW);
  121. }
  122. }
  123.  
  124. if(mode == 6){
  125. if(analogRead(A4) > 36){
  126. teller++;
  127. }
  128. if(teller == 15){
  129. digitalWrite(rood, HIGH);
  130. digitalWrite(oranje, HIGH);
  131. digitalWrite(groen, HIGH);
  132. delay(60);
  133. teller = -50;
  134. }
  135. else if (teller < -25){
  136. digitalWrite(rood, LOW);
  137. digitalWrite(oranje, HIGH);
  138. digitalWrite(groen, HIGH);
  139. delay(6);
  140. teller++;
  141. }
  142. else if (teller < 0){
  143. digitalWrite(rood, LOW);
  144. digitalWrite(oranje, LOW);
  145. digitalWrite(groen, HIGH);
  146. delay(6);
  147. teller++;
  148. }
  149.  
  150. else{
  151. digitalWrite(rood, LOW);
  152. digitalWrite(oranje, LOW);
  153. digitalWrite(groen, LOW);
  154. }
  155. }
  156.  
  157.  
  158. if (mySwitch.available()) {
  159.  
  160. int value = mySwitch.getReceivedValue();
  161. int newMode = 0;
  162. if (value == AA) {
  163. newMode = 1;
  164. }
  165. if (value == BA) {
  166. newMode = 2;
  167. }
  168. if (value == CA) {
  169. newMode = 3;
  170. }
  171. if (value == AB) {
  172. newMode = 4;
  173. }
  174. if (value == BB) {
  175. newMode = 5;
  176. }
  177. if (value == CB) {
  178. newMode = 6;
  179. }
  180. if (value == DA) {
  181. newMode = 7;
  182. }
  183. if (value == DB) {
  184. newMode = 8;
  185. }
  186. if(newMode != 0 && newMode != mode){
  187. mode = newMode;
  188. if (mode == 7){
  189. teller = 0;
  190. digitalWrite(rood, LOW);
  191. digitalWrite(oranje, LOW);
  192. digitalWrite(groen, LOW);
  193. }
  194. }
  195.  
  196. mySwitch.resetAvailable();
  197. }
  198. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement