wvogel日記

自分用の技術備忘録が多めです.

加速度センサ

Arduinoで実験中
何も考えずに書いていったものなのであまり綺麗ではないですが。

  int base;
  int y,prevy;

void setup(){
  Serial.begin(9600);                  //シリアル通信開始
  pinMode(7,OUTPUT);                   //7番ピンをLED出力として利用
  digitalWrite(7,HIGH);                //初め、点灯
  
  base = 350 ;                         // 中心値:値を較正するための値
  y = 0 , prevy = 0 ;
                                        //初期化
  
  for(int i = 0; i < 50 ; i++){
    prevy = (15 * prevy + (analogRead(1) - base) ) / 16 ;
    delay(20);
  }
}

void loop() {
  while(abs(prevy - y) < 15 || x == 0){
    y = (15 * y  +  (analogRead( 1 ) - base) )  /  16 ;
  
    if(abs(prevy - y) > 8){
      analogWrite(7,40);
    }
    else if(abs(prevy - y) > 4){
      analogWrite(7,80);
    }
    else if(abs(prevy - y) > 2){
      analogWrite(7,150);
    }

    else{
      digitalWrite(7,HIGH);
    }
    prevy = y;
    
    delay(25);

    Serial.println( y ) ;
  } 
}


加速度センサの値によってLEDの明るさが変動
因みに、何故y軸方向だけかと言うと、私の持ってるジャンパワイヤの長さの都合上、一番y軸方向にブレッドボードを動かしやすいためです笑