Att göra en interaktiv blinkande vintermössa (4 / 4 steg)
Steg 4: Mer kod för användning med en mekanisk tils sensor
Detta länkar ger en annan interaktiv mönster lampa, med en metall kula i en fyrkantig hölje.
Se den grå rutan bredvid atmega328. Det bärgades från en avliden Sony hund!
Använda tilt sensor, jag var tvungen att göra en tiltcheck funktion. Detta verkade lätt, men det var inte!
Principen var rätt, men en fördröjning införas byta PIN mönstret.
Se funktionen i skriptet:
uint8_t checkTilt() {
uint8_t tiltPin = 0;
PORTC | = (1 << PC1);
PORTC | = (1 << PC5);
uint8_t fördröjningstid = 50; / /---> dröjsmål
PORTC & = ~ _BV(PC1);
_delay_ms(delayTime); / /---> dröjsmål
om ((PINC & (1 << PC4)) == 0) tiltPin = 2; //left
om ((PINC & (1 << PC2)) == 0) tiltPin = 1; / / främre
PORTC | = (1 << PC1);
_delay_ms(2*delayTime); //here en fördröjning är nödvändig, annars avläsningar är konstigt???
PORTC & = ~ _BV(PC5);
_delay_ms(delayTime); / /---> dröjsmål
om ((PINC & (1 << PC4)) == 0) tiltPin = 5; //back
om ((PINC & (1 << PC2)) == 0) tiltPin = 3; / / höger
om ((PINC & (1 << PC3)) == 0) tiltPin = 4; //mid -> topp
PORTC | = (1 << PC5);
återvända tiltPin;
}
http://www.contrechoc.com/Instructables/twinkle_winter_cap_project_2.zip
Nu när du flyttar ditt huvud, kommer att lysdioder ändra mönstret till vänster, höger, fron och tillbaka. Och när inte benägen top lampa är på.