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:
- const byte LED1 = 8;
- const byte LED2 = 9;
- const byte LED3 = 10;
- const byte LED4 = 11;
- const byte Cds = A0; // 電阻
- int val;
- void setup() {
- pinMode(LED1, OUTPUT);
- pinMode(LED2, OUTPUT);
- pinMode(LED3, OUTPUT);
- pinMode(LED4, OUTPUT);
- Serial.begin(9600);
- }
- void loop() {
- val = analogRead(A0);
- if (val <= 255) {
- digitalWrite(LED1, HIGH);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, LOW);
- delay(4000);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, HIGH);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, LOW);
- delay(4000);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, HIGH);
- digitalWrite(LED4, LOW);
- delay(4000);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, HIGH);
- delay(4000);
- Serial.println(val);
- }
- else if (val > 255 && val <= 511) {
- digitalWrite(LED1, HIGH);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, LOW);
- delay(1000);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, HIGH);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, LOW);
- delay(1000);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, HIGH);
- digitalWrite(LED4, LOW);
- delay(1000);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, HIGH);
- delay(1000);
- Serial.println(val);
- }
- else if (val > 511 && val <= 767) {
- digitalWrite(LED1, HIGH);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, LOW);
- delay(500);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, HIGH);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, LOW);
- delay(500);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, HIGH);
- digitalWrite(LED4, LOW);
- delay(500);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, HIGH);
- delay(500);
- Serial.println(val);
- }
- else if (val > 768 && val <= 1023) {
- digitalWrite(LED1, HIGH);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, LOW);
- delay(100);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, HIGH);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, LOW);
- delay(100);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, HIGH);
- digitalWrite(LED4, LOW);
- delay(100);
- digitalWrite(LED1, LOW);
- digitalWrite(LED2, LOW);
- digitalWrite(LED3, LOW);
- digitalWrite(LED4, HIGH);
- delay(100);
- Serial.println(val);
- }
- }
留言
張貼留言