Stap 4: programma de micro-controller
U kunt gebruik maken van de verstrekte code of schrijf je eigen, het is niet zo moeilijk.
Hoe werkt het?
Het belangrijkste deel is de foto diode die wordt gebruikt als een sensor hier. Wanneer is er geen licht of slechts een beetje, de diode wordt geblokkeerd. Maar wanneer een flash-licht de diode raakt zal geleidende voor een korte periode van tijd. Het vormt samen met de 100 k weerstand iets genaamd een voltage divider.
Dus terwijl de diode blokken, haar weerstand is veel hoger dan 100k en de pin PB2 zal hebben bijna de grond mogelijkheden.
Wanneer een flits wordt gedetecteerd dat zijn weerstand wordt veel lager dan 100k voor een korte periode van tijd en pin PB2 herkent een hoog signaal. Deze gebeurtenis wordt een input-interrupt in de software.
De condensator is noodzakelijk om de ontkoppeling van de pin van de diode. Zonder de condensator volstaan de kleine stroom geleverd door de diode tijdens de flitser niet om de interrupt trigger. Misschien heeft iemand een betere verklaring voor dit effect. Toch werkt het.
Wanneer een flits door de micro-controller wordt erkend, het wordt geteld en als het aantal flitsen geteld is gelijk aan het aantal flitsen nodig, dan is de slave-flitser geactiveerd.
Het aantal flitsen nodig wordt gelezen in na het opstarten van de draaischakelaar 4 bit, daarmee dat kunnen we maximaal 16 preflashes instellen.
De opto-coupler is nodig omdat de flitsen hebben vaak meer dan tientallen volt op hun aansluitingen. en dit zou zeker het doden van onze kleine micro-controller. Het is in principe een ander foto diode samen met een LED in een gesloten behuizing. Als u de interne LED oplichten, de diode krijgt geleidende en verkort de twee uitgangen die vervolgens branden de slave-flitser.
Als extra bonus was een timer/teller ingeschakeld het hele apparaat resetten indien ze langer dan één seconde zonder een flits wordt herkend. Dit heeft de volgende reden: als u foto's op een feestje nemen en andere mensen foto's nemen en flash, uw flashcounter wordt voorgeladen en flash niet op het juiste moment. Nadat enkele flitser gewoon wachten tot de 1s en het flashcounter wordt opnieuw ingesteld.