レッドインベーダーの部屋

なんか色々なことをしています。

Arduino 加速度センサ&LED4つ 

加速度センサの接続方法は↓参照

deviceplus.jp

LEDはArduinoのDIGITALピンの8~11を使用。

(アノードとピンの間に300Ωの抵抗を使用。)

カソードはArduinoGNDピンに接続。

そんな感じ、ピン番号は自由にどうぞ。

 

スケッチ↓(青文字部分)

int led1 = 8;
int led2 = 9;
int led3 = 10;
int led4 = 11;

void setup()
{
// シリアルモニターの初期化をする
Serial.begin(9600) ;
pinMode(led1, OUTPUT);
pinMode(led2, OUTPUT);
pinMode(led3, OUTPUT);
pinMode(led4, OUTPUT);

}
void loop() {

int i ;
long x, y, z;
//50回センサ値を読み込んで平均を算出
x = y = z = 0;
for (i = 0 ; i < 50 ; i++) {
x = x + analogRead(3) ; // X軸
y = y + analogRead(4) ; // Y軸
z = z + analogRead(5) ; // Z軸
}
x = x / 50 ;
y = y / 50 ;
z = z / 50 ;
int rotateX = (x - 280) / 2.56 - 90; //角度を求める式
int rotateY = (y - 264) / 2.56 - 90;
Serial.print("X:") ;
Serial.print(x) ;
Serial.print(" ") ;
Serial.print(rotateX) ;
Serial.print(" Y:") ;
Serial.print(y) ;
Serial.print(" ") ;
Serial.print(rotateY) ;

if ( rotateX > 0) {
digitalWrite(led2, HIGH);
digitalWrite(led1, LOW);
}
if ( rotateX <= 0) {
digitalWrite(led1, HIGH);
digitalWrite(led2, LOW);
}
if ( rotateY > 0) {
digitalWrite(led3, HIGH);
digitalWrite(led4, LOW);
}
if ( rotateY <= 0) {
digitalWrite(led4, HIGH);
digitalWrite(led3, LOW);
}
}