Arduino - 可變電阻 + 跑馬燈(Variable Resistor + Marquee)


目的


以可變電阻來改變LED跑馬燈的速度

速度區間:
1.電阻值0-255 >> DELAY 4000ms

2.電阻值256-511 >> DELAY 1000ms

1.電阻值512-767 >> DELAY 500ms

1.電阻值768-1023 >> DELAY 100ms


成果:


Arduino Code:

  1. const byte LED1 = 8;
  2. const byte LED2 = 9;
  3. const byte LED3 = 10;
  4. const byte LED4 = 11;
  5. const byte Cds = A0; // 電阻
  6. int val;
  7.  
  8. void setup() {
  9. pinMode(LED1, OUTPUT);
  10. pinMode(LED2, OUTPUT);
  11. pinMode(LED3, OUTPUT);
  12. pinMode(LED4, OUTPUT);
  13. Serial.begin(9600);
  14. }
  15.  
  16. void loop() {
  17. val = analogRead(A0);
  18. if (val <= 255) {
  19. digitalWrite(LED1, HIGH);
  20. digitalWrite(LED2, LOW);
  21. digitalWrite(LED3, LOW);
  22. digitalWrite(LED4, LOW);
  23. delay(4000);
  24. digitalWrite(LED1, LOW);
  25. digitalWrite(LED2, HIGH);
  26. digitalWrite(LED3, LOW);
  27. digitalWrite(LED4, LOW);
  28. delay(4000);
  29. digitalWrite(LED1, LOW);
  30. digitalWrite(LED2, LOW);
  31. digitalWrite(LED3, HIGH);
  32. digitalWrite(LED4, LOW);
  33. delay(4000);
  34. digitalWrite(LED1, LOW);
  35. digitalWrite(LED2, LOW);
  36. digitalWrite(LED3, LOW);
  37. digitalWrite(LED4, HIGH);
  38. delay(4000);
  39. Serial.println(val);
  40. }
  41. else if (val > 255 && val <= 511) {
  42. digitalWrite(LED1, HIGH);
  43. digitalWrite(LED2, LOW);
  44. digitalWrite(LED3, LOW);
  45. digitalWrite(LED4, LOW);
  46. delay(1000);
  47. digitalWrite(LED1, LOW);
  48. digitalWrite(LED2, HIGH);
  49. digitalWrite(LED3, LOW);
  50. digitalWrite(LED4, LOW);
  51. delay(1000);
  52. digitalWrite(LED1, LOW);
  53. digitalWrite(LED2, LOW);
  54. digitalWrite(LED3, HIGH);
  55. digitalWrite(LED4, LOW);
  56. delay(1000);
  57. digitalWrite(LED1, LOW);
  58. digitalWrite(LED2, LOW);
  59. digitalWrite(LED3, LOW);
  60. digitalWrite(LED4, HIGH);
  61. delay(1000);
  62. Serial.println(val);
  63. }
  64. else if (val > 511 && val <= 767) {
  65. digitalWrite(LED1, HIGH);
  66. digitalWrite(LED2, LOW);
  67. digitalWrite(LED3, LOW);
  68. digitalWrite(LED4, LOW);
  69. delay(500);
  70. digitalWrite(LED1, LOW);
  71. digitalWrite(LED2, HIGH);
  72. digitalWrite(LED3, LOW);
  73. digitalWrite(LED4, LOW);
  74. delay(500);
  75. digitalWrite(LED1, LOW);
  76. digitalWrite(LED2, LOW);
  77. digitalWrite(LED3, HIGH);
  78. digitalWrite(LED4, LOW);
  79. delay(500);
  80. digitalWrite(LED1, LOW);
  81. digitalWrite(LED2, LOW);
  82. digitalWrite(LED3, LOW);
  83. digitalWrite(LED4, HIGH);
  84. delay(500);
  85. Serial.println(val);
  86. }
  87. else if (val > 768 && val <= 1023) {
  88. digitalWrite(LED1, HIGH);
  89. digitalWrite(LED2, LOW);
  90. digitalWrite(LED3, LOW);
  91. digitalWrite(LED4, LOW);
  92. delay(100);
  93. digitalWrite(LED1, LOW);
  94. digitalWrite(LED2, HIGH);
  95. digitalWrite(LED3, LOW);
  96. digitalWrite(LED4, LOW);
  97. delay(100);
  98. digitalWrite(LED1, LOW);
  99. digitalWrite(LED2, LOW);
  100. digitalWrite(LED3, HIGH);
  101. digitalWrite(LED4, LOW);
  102. delay(100);
  103. digitalWrite(LED1, LOW);
  104. digitalWrite(LED2, LOW);
  105. digitalWrite(LED3, LOW);
  106. digitalWrite(LED4, HIGH);
  107. delay(100);
  108. Serial.println(val);
  109. }
  110. }

留言