Afspelen wav file herhalingconstante analoog regelen.

Hallo!,

Voor en project waar ik op het moment mee bezig ben, heb ik een groot probleem en ik zoek hier hulp :) Ik heb in preciepe heel de code + interface klaar op dit belangrijke stuk na. En waarschijnlijk is het niet moeilijk, maar zie ik het gewoon niet!

Kort: iedreen kent het https://www.arduino.cc/en/Tutorial/SimpleAudioPlayer tutorial om een simpel wav filetje af te spelen, Dit principe wil ik ook gebruiken om een 5 tal geluiden bij een bepaald analoog signaal EN een aanpasbaar tijdconstante af te laten spelen

Voor het gemak hou aan:

analoog singaal/bestand : Van 100-200 '1', 200-300 '2', etc

Bestanden zijn allemaal precies 50ms en op een externe sd kaart gestoord .

Met tijdconstante bedoel ik de herhaling per minuut. Het bestand zal moeten worden afgespeeld door een ingevulde waarde in de code, bijv 60. Dit betekent dat het bestand 60x per minuut moet worden herhaalt (evenredig verdeeld) totdat het analoge signaal is gezakt/gestegen dat het volgende geluid moet worden geactiveerd. .

Maar als er bijv 90 is ingevuld. dat het zelfde precipe maar dan een stapje sneller.

Is iemand die me hier mee zou kunnen helpen/ de code zou kunnen mee verzinnen. Ik heb mijn hoofd er al meerdere keren over laten breken en je zou kunnen zeggend dat het mijn neus uitkomt ;)

Ik hoop veel reacties en oplossingen te kunnen krijgen!

Groet arend

*edit: spelfouten, random zin verwijdert

Bedoel je dat als je 60 keer per minuut wilt spelen je om de 60.000ms(=1 minuut)/60=1000ms een sample start? en bij 90 60.000/90= 666 ms? Het lijkt me niet want dat is wel heel eenvoudig (variant op blink without delay)

ja dat bedoel ik, het gaat me meer om het sample koppelen aan de analoge waardes. als ik dat probeer te doen. klopt van de sampling niet zo heel veel./ het geluidsbestand begint "raar" te klinken.

Hoi Arendtje88, welkom.

Een probleem oplossen waarvan de omschrijving is "Hij doet raar", is schier onmogelijk. Voor mijn werk moet ik vaak problemen oplossen, dus ik weet dat het niet altijd eenvoudig is om te omschrijven wat er precies fout gaat. Want als je dat zou weten dan kon je het ook oplossen, toch ?

Om die reden word er dus altijd gevraagd om je code te posten. De kans dat men er dan fouten in gaat vinden die je zelf niet ziet, is heel groot. Als je code gaat posten, doe dat dan wel tussen code tags:

[code]
Plak hier de code (alles) uit de IDE
[/code]

Als je het als tekst plakt, dan gaat het fout met de indeling van die tekst ten opzichte van hoe het in de IDE word afgebeeld, en bovendien krijg je bijvoorbeeld geen vreemde 8) als je 8) had ingetypt. Verder maakt dit het ook eenvoudiger om die code te kopiƫren en in de IDE te plakken voor degene die je ermee wil helpen. Zo help je je helper, en maak je de kans op een snel en passend antwoord een stuk groter.

je kunt het beste de herhaling pas meten als je sample is afgelopen, dus eerst je sample afspelen, en als de tijd om is dan de sample weer starten of een andere, al naar wat je wilt. je zult wel millis() moeten gebruiken. want met een delay gaat dat niet goed werken.