Arduino - LED計數器(LED Counter)


材料:
1.LED*4

2.電阻*4

3.開關*1


目的:

2進制計數器,開關按一次值+1,超過15歸0


成果:


Arduino Code:


  1. const byte LED[4] = {
  2. 8,
  3. 9,
  4. 10,
  5. 11
  6. };
  7. boolean lastState = LOW;
  8. byte time[4] = {
  9. 0
  10. };
  11.  
  12. void setup() {
  13. Serial.begin(9600);
  14. pinMode(LED[0], OUTPUT);
  15. pinMode(LED[1], OUTPUT);
  16. pinMode(LED[2], OUTPUT);
  17. pinMode(LED[3], OUTPUT);
  18. pinMode(2, INPUT);
  19. digitalWrite(2, HIGH);
  20. }
  21.  
  22. void loop() {
  23. boolean now = digitalRead(2);
  24. Serial.print(now);
  25. if (now == HIGH && lastState == LOW) {
  26. Serial.println(time[0]);
  27. time[0]++;
  28. for (int i = 0; i < 4; i++) {
  29. if (time[i] >= 2) {
  30. time[i] = 0;
  31. time[i + 1]++;
  32. if (time[3] >= 2) {
  33. for (int i = 0; i < 4; i++) {
  34. time[i] = 0;
  35. }
  36. }
  37. }
  38. }
  39. for (int i = 0; i < 4; i++) {
  40. if (time[i] == 1) {
  41. digitalWrite(LED[i], HIGH);
  42. } else if (time[i] == 0) {
  43. digitalWrite(LED[i], LOW);
  44. }
  45. }
  46. }
  47. delay(100);
  48. }

留言