| 
 | 
 本帖最後由 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);
 
 - }
 
 
  複製代碼 
 |   
 
 
 
 |