Met een ultrasonic sensor kan eenvoudig gemeten worden of er een object in de buurt is van de sensor. Ik wil de aanwezigheid van een bewegend langsrijdend object gebruiken om een relais "low" te schakelen zolang het object wordt waargenomen, EN tot enkele seconden extra zodra het object niet meer wordt waargenomen. Na deze vertraging mag het relais weer "high" geschakeld worden. Hoe pak ik dat aan?
als de ultrasoon aangaat zet je de uitgang LOW
als de ultrasoon uitgaat dan doe je een delay en daarna zet je de uitgang weer HIGH
dat is om te beginnen, je kunt het ook oplossen met millis() maar dat is voor de volgende keer.
Hoi jburgt, welkom.
Ik vind het onbegrijpelijk dat je het heel eenvoudig vind om een ultrasoon sensor te gebruiken, maar niet weet hoe je een vertraging creëert.
Een Arduino word doorgaans geleverd met de voorbeeld sketch 'blink' er al in.
Dat ding doet met een LEDje op het board waar jij naar vraagt, en het is zo'n beetje de simpelste sketch die je kunt maken en die ook iets zichtbaars doet.
Bekijk de voorbeelden die je bij de IDE krijgt eens, en loop ze 1 voor 1 door.
Dat is het begin voor iedereen.
Misschien moet ik mijn vraag wat scherper stellen.
Het toepassen van een standaard relay is inderdaad eenvoudig.
Ik wil echter iets anders...
De objecten die bij het passeren van de sensor worden waargenomen, hebben een verschillende lengte. Bij het ene object duurt het 2 seconden, bij een volgende 4 en bij een derde misschien wel 10 seconden vooraleer het volledig voorbij is. De bedoeling is dat ná het volledig passeren van het waargenomen object een relais gedurende een vaste tijd van "high" naar "low" geschakeld wordt, bijvoorbeeld gedurende 10 seconden, en dan weer op "high" springt.
Ik weet niet hoe ik dit in een sketch moet schrijven.
Probeer het eens met pulseIn()
Beste han61.
Dat is ongetwijfeld een mogelijke oplossing (of misschien toch niet helemaal ?), maar alleen als je sketch niets anders hoeft te doen dat waar hier naar gevraagd word.
Want pulseIn is blokkerende code, en niet zo'n beetje ook.
Als objecten er 64 miljoen hartslagen over doen om voorbij te komen, is er al een leven voorbij voordat je iets verder gaat doen.
Toch wel jammer om daar zo lang op te wachten, lijkt mij.
Het is helemaal niet moeilijk om dit op te lossen.
Je moet kijken of je het object ziet, opslaan dat je 'm ziet en de handeling die je wil starten, dan kijken of je het object niet meer ziet en dan dus de handeling gaan beëindigen.
Ik heb nu helemaal niets anders gezegd als jburgt, maar het wel in wat meer worden gevat.
@jburgt: wat nou als je je vraagstukken wat verder analyseert voor je aan je code gaat werken.
Dat is in ieder geval wat ik doe.
Je weet wat je wil in grote lijnen.
Maak er eerst maar eens wat 'kleinere lijnen' van.
Als je dat vaak genoeg doet, krijg je al bijna de code waarmee je dit bereikt.
Wie weet, als ik dat ook maar vaak genoeg herhaal, zal de boodschap ook eens aankomen (i.e. dit heb ik al talloze malen aangevoerd).
@mas: in 95% van de gevallen zit je tegen een muur te lullen:)