Pages: [1]   Go Down
Author Topic: Accelometer Question  (Read 442 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hello Firstly I am sorry if this is the Wrong Section I hope an Admin will move it to Right one

here is what I want to do using a Wii Nunchuck which has a built in Accelometer I want to make a Different LED come on when its tilted one way or the other but I am not sure how to do this with a Arduino Uno I have a Connector for it just not sure how ir would be coded as never done this kind of Sensor before
Logged

0
Offline Offline
Full Member
***
Karma: 5
Posts: 235
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Remember Google is your friend, I googled 'arduino Wii Nunchuck' and got the following top hits
http://www.windmeadow.com/node/42
and closer to home
http://www.arduino.cc/playground/Main/WiiChuckClass

See if these help,

wade
Logged

London, KY
Offline Offline
Newbie
*
Karma: 0
Posts: 23
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

If I understand correctly, I have done something similar once. What you need to do is learn what values define "level." Use the "pulseIn(pin,state)" command, where "pin" is the pin your accelerometer's x or y axis is on and "state" is the logic level (this is usually high, or "1"). After getting these values from using "Serial.println(pulseIn(pin,1))", use if then statements. I will give an example:
Code:
//this is to get the values of "level"

const int xPin = 2; // X output of the accelerometer
const int yPin = 3; // Y output of the accelerometer


void setup()
{
   // initialize serial communications:
  Serial.begin(9600);
  // initialize the pins connected to the accelerometer
  // as inputs:
  pinMode(xPin, INPUT);
  pinMode(yPin, INPUT);
}

void loop()
{
  Serial.println(pulseIn(xPin,HIGH));
  Serial.println(pulseIn(yPin,HIGH));
  delay(500);
}

An example, with made-up numbers:
Code:
const int xPin = 2; // X output of the accelerometer
const int yPin = 3; // Y output of the accelerometer
const int red_led = 4;          //connect red LED here
const int blue_led = 5;         //Blue LED here


void setup()
{
   // initialize serial communications:
  Serial.begin(9600);
  // initialize the pins connected to the accelerometer
  // as inputs:
  pinMode(xPin, INPUT);
  pinMode(yPin, INPUT);
}

void loop()
{
  if ((pulseIn(xPin,HIGH) > 10) and (pulseIn(xPin,HIGH) < 5000))
  { digitalWrite(red_led,HIGH); }
  else
  {digitalWrite(red_led,LOW);}
 
  if ((pulseIn(yPin,HIGH) > 1000) and (pulseIn(yPin,HIGH) < 1200))
  { digitalWrite(blue_led,HIGH); }
  else
  {digitalWrite(blue_led,LOW);}
}
Logged

Pages: [1]   Go Up
Jump to: