LED模組


/*
 * 點亮所有的LED燈
 */
const int LEDs[]={10,A4,A3,A2,A1,A0,3,5,6,9} ;

void setup() {
  // put your setup code here, to run once:

  for(int i=0;i<10;i++)
      pinMode(LEDs[i],OUTPUT) ;

}

void loop() {
  // put your main code here, to run repeatedly:
   for(int i=0;i<10;i++) {
       digitalWrite(LEDs[i],HIGH) ;
       delay(500);
    }
}




/*
 * LED模組使用
 */
const int LEDs[]={3,4,5,6,7,8,9,10,11,12} ; 
int j = 0 ;

/* 由左至右一次只亮一顆燈 */
void oneLedLeft(void) {
    turnLedOff() ;
    digitalWrite(LEDs[j],HIGH) ;
    delay(500);
    j++ ;
    if(j==10)
        j=0;
  }

/* 由右至左一次只亮一顆燈 */
void oneLedRight(void) {
     turnLedOff() ;
    digitalWrite(LEDs[j],HIGH);
    delay(500) ;
    j--;
    if(j<0)
      j=9 ;
  }

/* 由右自左點亮LED燈 */
void ledRight(void) {
    for(int i=0;i<10;i++) {
      digitalWrite(LEDs[i],HIGH);
      delay(100) ;    
   }
   for(int i=0;i<10;i++) {
      digitalWrite(LEDs[i],LOW);
      delay(100) ;
   }
}
  
 /* 關閉所有的LED燈 */
void turnLedOff(void) {
  for(int i=0;i<10;i++) 
      digitalWrite(LEDs[i],LOW) ;
  }

/* 
 * 電位計函數
 * 取得可變電阻的值,並將數值0~1023轉換成0~10,點亮LED
 */
void potentioMeter(void){
    int val=0,val2=0;
    
    val = analogRead(A0) ;  
    turnLedOff() ;

    val2 = map(val,0,1023,0,10) ;
    for(int i=0;i<val2;i++)
        digitalWrite(LEDs[i],HIGH) ;
    delay(500) ;
  }

void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600) ;
  for(int i=0;i<10;i++)
      pinMode(LEDs[i],OUTPUT) ;
  pinMode(A0,INPUT);
}


void loop() {
  // put your main code here, to run repeatedly:
  // 呼叫下列任一個函式 
  
  // potentioMeter();  //電位計函數
  
  // oneLedLeft() ;  /* 由左至右一次只亮一顆燈 */
 
  //  oneLedRight() ;/* 由右至左一次只亮一顆燈 */
    
  // ledRight() ; /* 由右自左點亮LED燈 */
}