Paso 7: Programación de la prenda | Lectura de acelerómetro
Utiliza Hardware de Arduino
1 - LilyPad SimpleSnap
1 - LilyPad SimpleSnap Protoboard
1 - LilyPad XBee (tableros de arranque)
1 - LilyPad XBee 1mW rastro antena - serie 1
1 - programador LilyPad
1 - LilyPad acelerómetro ADXL335
Código de acelerómetro
El debajo de código es una adaptación del ejemplo del acelerómetro de Arduino.
estas constantes describen los pasadores. No cambian:
const int xpin = A5; / / eje x del acelerómetro
const int ypin = A2; / / eje
const int zpin = A3; / / eje z (sólo en modelos de 3-ejes)
int sampleDelay = 500; / / número de milisegundos entre las lecturas de
void setup()
{
/ / inicializar la comunicación serial:
Serial.Begin(9600);
Asegúrese de que el convertidor de analógico a digital tiene su tensión de referencia de
el pin AREF
pinMode (xpin, entrada);
pinMode (ypin, entrada);
pinMode (zpin, entrada);
}
void loop()
{
oldy flotador = 0;
umbral de flotador = 0;
int x = analogRead(xpin);
Añadir un pequeño retardo entre lecturas de pin. He leído que debe
hacer esto pero no han probado la importancia
Delay(1);
int y = analogRead(ypin);
Añadir un pequeño retardo entre lecturas de pin. He leído que debería hacer esto pero no han probado la importancia
Delay(1);
int z = analogRead(zpin);
/ * zero_G es la lectura que esperamos del sensor cuando no detecta ninguna aceleración.
Reste este valor del sensor de lectura para obtener un sensor cambiado de puesto de lectura. */
Float zero_G = 512;
/ * escala es el número de unidades esperan la lectura del sensor para cambiar cuando el
aceleración a lo largo de un cambio de eje de 1G. Dividir el sensor cambiado de puesto de lectura por
escala para obtener aceleración en Gs. * /
escala de flotador = 102.3;
/*Serial.Print (((float) x - zero_G) / escala);
Serial.Print("\t"); */
para este proyecto, estamos imprimiendo los valores de 'y', esto le ayudará a determinar el umbral:
umbral = oldy - ((float) y - zero_G) / escala;
Serial.Print ("y =");
Serial.Print (((float) y - zero_G) / escala);
Serial.Print("; umbral = ");
Serial.println(THRESHOLD);
/ * Serial.print (((float) z - zero_G) / escala);
Serial.Print("\n"); */
Si (umbral > 1.3) / / puede cambiar el valor de su umbral, usted necesita para probar y determinar cuál será el umbral
pasos ++;
Serial.Print ("pasos =");
Serial.Print(STEPS);
retardo antes de la lectura siguiente:
Delay(sampleDelay);
}