2011年11月3日木曜日

PWMをやってみる。

モーターの回転数制御に欠かせないPWMをLEDで試してみる。

PWMとは、電圧を上下させる代わりに、HIGH/LOWの比率を変化させる事で
モーターの回転数を制御する仕組み。
回転数 速い
回転数 遅い

ArduinoのデジタルIOピン0〜13のうち、3,5,6,9,10,11の6本がPWMに使用できる。
PWMはアナログ出力を使う。
  analogWrite(ピン番号, 0〜255)





#define  LED  11
#define  SW   6

int val = 0;
int valOld = 0;
int state = 0;
int stateOld = 0;

void  setup()
{
  pinMode( LED, OUTPUT );
  pinMode( SW, INPUT );
}

void  loop()
{
  val = digitalRead( SW );
  if( val == HIGH && valOld == LOW ){
    state = 1 - state;
    delay(10);
  }
  valOld = val;
 
  if( state != stateOld ){
    if( state == 1 ){
      for( int i=0; i<=255; i++){
        analogWrite( LED, i );
        delay( 10 );
      }
    } else {
      for( int i=255; i>=0; i--){
        analogWrite( LED, i );
        delay( 10 );
      }
    }
    stateOld = state;
  }
}

0 件のコメント:

コメントを投稿