Då och då när jag får tid att programmera, leker jag ibland med POV-displayer (persistance of vision) av olika typer. En av favoriterna är minimalistiska armbandsur som ritar upp siffror eller linjära urtavlor när klockan sveps i luften. Vissa varianter fungerar ...eh, klockrent,

Att trigga svepet manuellt med en tryckknapp fungerar bra och stabilt men det är krångligt att behöva trycka och hos vissa varianter är det praktiskt omöjligt att trycka fram varje svep synkroniserat med armrörelsen. En lösning jag provat är att knapptryckningen aktiverar upprepade displaysvep under några sekunder men då måste armrörelsen i stället synkroniseras mot blinkningarna, vilket inte är helt lätt. (dessutom ser det t.o.m. ännu mer idiotiskt ut)
Jag har provat små tilt-sensorer (en liten cylinder med en kula i) från Kjell &Co, men de har hopplöst mycket kontaktstuds som måste hanteras och där har jag hittills inte fått till något bra. Det blir falska triggningar som utlöser störande ljussvep.
Betydligt bättre har det funkat med hemgjorda skaksensorer bestående av en smal remsa klippt ur en piezoelektrisk högtalarbricka som träffas av en liten mutter som ligger löst i ett rör, men det är en ganska klumpig konstruktion rent fysiskt och att klippa piezobrickor är inget exakt hantverk direkt...
Snyggaste och säkraste funktionen har jag fått med en liten magnet i ett plaströr och tungelement utanför, men också det är en ganska klumpig konstruktion. Dessutom har magneten en tendens att "klibba fast" mot tungelementet, samt att strömförbrukningen stiger katastrofalt i detta läge och därför måste hanteras med timeout och avaktivering av ATmegans interna pull-up.
En lösning som inte fungerat är att i stället för via tungelement låta magneten trigga ATmegan via en liten spole utan järnkärna. Jag antar det behövs väldigt många varv av galet tunn koppartråd för att få upp en spänningsnivå som räcker för att väcka den sovande processorn via port-change interrupt.
IDÉ:
Kanske det kan fungera bättre om spolen ovan kopplas till komparatorn i stället för till port-change interrupt? Spänningsreferensen slukar enligt databladet ca 10uA, vilket är mer än hela systemets viloström, men den behöver kanske inte användas. Eftersom komparatorn kan sättas att reagera på endera flanken kanske jag helt fräckt kan koppla en liten HF-drossel utan järnkärna mellan komparatorns båda anslutningar och sedan låta den lilla magneten slå mot denna?
Jag har läst databladet för ATmega88 men inte lyckats bli klok på om komparatorn kan fungera i extremt strömsnåla sammanhang eller om t.ex. ADC:ns hemska förbrukning fås med "på köpet". Jag har heller inte någon koll på hur mycket induktans som krävs för att få tillräckligt stor spänning när magneten rör sig. Om det krävs järn- eller ens ferritkärna kommer den lilla magneten klibba fast för hårt.
Är det över huvud taget mödan värt att labba med komparatorn och små magnetspolar eller kan någon mer kunnig direkt avfärda metoden som omöjlig? Finns någon annan billig, fysiskt kompakt och extremt strömsnål metod att känna av sveprörelsen?