|
本帖最後由 g921002 於 2012-10-24 16:00 編輯
回復 1# Suzaku
1.你宣告陣列 int ledpins[] = {2,3,4,5,6 }; ,所引值最大不過4,ledpins[6]、ledpins[5]不應該出現吧?
2.如果你指示要把ADC的值分做5等份點燈,那用map去規範區間。
PS.以下CODE純腦內補完,沒有測試~~~(我不用Arduino的)
- #define LEDSIZE 5
- int SensorPin = 3 ;
- int ledpins[LEDSIZE] = {2,3,4,5,6 };
- void setup()
- {
- Serial.begin(9600) ;
- //pinMode(ledpins[2,3,4,5,6],OUTPUT); <--- 勘誤
- for(int ix=0;ix<LEDSIZE;ix++)
- {
- pinMode(ledpins[ix],OUTPUT);
- }
- pinMode(SensorPin,INPUT);
- }
- void turnOneLed(unsigned char pins[],int length,int led)
- {
- for (int i = 0; i < length; i++)
- {
- if(ix==led){ digitalWrite(pins[ix], HIGH);}
- else{digitalWrite(pins[ix], LOW);}
- }
- }
- void loop()
- {
- int SensorValue = analogRead(SensorPin) ;
- int LedChn = map(SensorValue, 0, 1024, 0, 4);
- turnOneLed(ledpins,LEDSIZE,LedChn);
- }
複製代碼
|
|