software vraag van een beginner

algemene C code
Berichten: 2
Geregistreerd: 17 Okt 2018, 00:36

software vraag van een beginner

Berichtdoor poppiec@live.nl » 17 Okt 2018, 00:56

Hallo Luitjes

Totaal nieuw hier en sinds een paar dagen aan een arduino project begonnen ....bedrading en schakel technisch redelijk onderlegd,echter een complete noob in het programmeren met C
er is mij gevraagd voor Halloween een schakel project met geluiden te maken..hier heb ik een Uno en een adafruit soundfx card ,dit heb ik nu wel werkend maar nu het volgende...
Het eerste geluids fragment is als de deur open gaat (magneet schakeling,en een piepend geluid op de soundcard) ingang schakelt, en hier aan stuur ik een uitgang hoog die vervolgens het 1e fragment triggerd op de soundcard,echter blijft deze zich herhalen zolang de ingang op de soundcard niet gesloten wordt.
dus als deur open blijft moet de uitgang ongeveer 2 sec hoog blijven en dan afvallen.....en dan pas weer getriggerd worden als de deur dicht geweest is.
Volgende trigger is bv een PIR die geluid en licht effect schakelt dus een trigger naar de soundcard en een output met daaraan een relais gekoppeld.
Wat is de beste manier om dit te programmeren? heb niet zo heel veel tijd meer om dit allemaal uit te zoeken ,dus alle hulp is welkom........
totaal 5 pirs en 2 deurmagneten = 7 geluids fragmenten en 5 andere effecten (licht,stroboscoop en derg)

Met vr groet

PC de Jong

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: software vraag van een beginner

Berichtdoor Koepel » 17 Okt 2018, 07:03

Als je een delay() kunt gebruiken, dan is dat de eenvoudigste en snelste manier.
Tijdens een delay() kun je niets anders doen, tenzij je interrupts gaat gebruiken. In een interrupt routine kun je maar heel weinig doen, anders loopt het al snel vast.

Het kan ook zonder delay().
Dit heb je al snel nodig: https://www.arduino.cc/en/Tutorial/StateChangeDetection.
Je hoeft dat niet iedere keer zelf te doen, het zit ook in: https://github.com/thomasfredericks/Bounce2.
Dit is een hele mooie elegante manier voor veel dingen: https://hackingmajenkoblog.wordpress.com/2016/02/01/the-finite-state-machine/.
Een vertraging kan met: https://www.arduino.cc/en/Tutorial/BlinkWithoutDelay.
Hier zie je dat als vertraging: https://gist.github.com/Koepel/01a6088f321eef5ec62f0b470c97a01e.

Berichten: 2
Geregistreerd: 17 Okt 2018, 00:36

Re: software vraag van een beginner

Berichtdoor poppiec@live.nl » 17 Okt 2018, 12:27

Dank u Koepel !

Met deze links en vooral de Software timer with millis() kom ik weer een stap dichterbij !

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 11 gasten