Paso 4: Más código, para su uso con un sensor de tils mecánicos
Estos enlaces proporciona otro patrón interactivo de LED, con una bola de metal en una caja cuadrada.
Vea la casilla gris al lado del atmega328. Fue rescatado de un difunto perro de Sony!
Con este sensor de inclinación, tuve que hacer una función tiltcheck. Parecía fácil, pero no fue!
Al principio tenía razón, pero un retraso tuvo que ser insertada el patrón del perno de la conmutación.
Ver la función en el script:
uint8_t checkTilt() {}
uint8_t tiltPin = 0;
PORTC | = (1 << PC1);
PORTC | = (1 << PC5);
uint8_t delayTime = 50; / /---> retraso de
PORTC & = ~ _BV(PC1);
_delay_ms(delayTime); / /---> retraso de
Si ((PINC & (1 << PC4)) == 0) tiltPin = 2; //left
Si ((PINC & (1 << PC2)) == 0) tiltPin = 1; / / frente
PORTC | = (1 << PC1);
_delay_ms(2*delayTime); //here un retraso es necesario, de lo contrario las lecturas son extrañas???
PORTC & = ~ _BV(PC5);
_delay_ms(delayTime); / /---> retraso de
Si ((PINC & (1 << PC4)) == 0) tiltPin = 5; //back
Si ((PINC & (1 << PC2)) == 0) tiltPin = 3; / / derecha
Si ((PINC & (1 << PC3)) == 0) tiltPin = 4; //mid ->
PORTC | = (1 << PC5);
volver tiltPin;
}
http://www.contrechoc.com/instructables/twinkle_winter_cap_project_2.zip
Ahora cuando usted mueve la cabeza, el LED cambiará patrón a izquierda, derecha, frente o espalda. Y cuando no inclinados son los mejores LED en.