Functie generator - 4bit DAC - (DUB SIREN)

Hallo allemaal,

Ik ben nieuw hier op het forum en ook nieuw in de wereld van Arduino en electronica. Ik weet pas sinds enkele weken waar een weerstand voor gebruikt wordt nadat ik met de harde hand geleerd hebt WAT een weerstand doet (rest in peace digital pin 7) :wink:

Nu ben ik met het volgende project bezig. Voor een vriend wil ik een zogenaamde dub siren bouwen en loop tegen de volgende problemen aan.

De siren moet meerdere waveforms kunnen genereren (Square. Sine. Triangle, Saw). Ik ben zover gekomen dat ik dmv de tone() functie een squarewave kan genereren en deze door een 8ohm speaker kan laten weergeven. (zie hier resultaat). Nu heb ik wat onderzoek gedaan en ben ik er achter gekomen dat ik via de Arduino niet zomaar een andere waveform kan weergeven omdat de enige manier via PWM is en dit is dus digitaal. Wat ik wel geleerd heb is dat ik zelf een DAC kan maken die de squarewave om kan zetten naar andere waveforms. Het probleem is dat dit (uit mn hoofd) 4 digital pins kost voor een 4bit conversie. Omdat ik ook een LCD scherm wil aansluiten + een paar knoppen en 6 potmeters ben ik bang dat dit dus allemaal niet gaat "passen". Denk ik te moeilijk? Is het mogelijk om de 4 pins voor de dac via een (multiplexer???) IC te laten lopen. (Heb geduld met me, ik ben pas enkele weken bezig en heb een information overload, ik heb een hoop termen gehoord maar weet niet zozeer wat de praktische nut is/kan zijn)

Ook loop ik tegen het probleem aan dat ik het idee krijg dat de UNO redelijk gelimiteerd is als ik een project zou hebben met meer dan 6 potmeters (aangezien ik maar 6 analog pins heb), is dit op een manier te omzeilen? Kan ik met extra IC's hier een oplossing voor verzinnen? Ik heb namelijk een oplossing gevonden om op een analog pin meerdere knoppen te plaatsen en deze uit te lezen door diverse weerstanden er tussen te plaatsen (resultaat is dat elke knop een andere (weerstand) waarde stuurt)

Daarnaast zou ik een waveform willen laten oscilleren, dit wordt volgens mij gedaan door een VCO, het resultaat is dat je met een potmeter bepaald hoe snel de waveform (geluid) oscilleert en met een andere potmeter de range (in hz) van de oscillatie. (als je het eerste filmpje ziet dan is deze vraag denk ik een stuk duidelijker, door onkunde weet ik nog niet zo goed hoe ik deze vraag moet stellen en weet dus ook niet de juiste terminologie :))

Excuses voor eventuele onsamenhangende zinnen, ik ben een totale uber leek op dit gebied en heb nog VEEL te leren :slight_smile:

Je wilt in een rally gaan rijden en je moet nog leren rijden....... Maar goed.
Je hebt kennelijk nodig:

  • 6 x analoge pin
  • 4 x digitaal voor de DAC
  • LCD. Als je I2C gebruikt zou je pinnen A4 & A5 gebruiken. Echter er is ook zoiets als Software I2C. dus zou je de LC met 2 pinnen kunnen doen.

Dan blijft er bij mij nog 8 pinnen over. Dus dat gaat wel passen.

Je gaat uit van een 4bits dac. Dat geeft weinig resolutie (nauwkeurigheid). Dat je het weet.

Dank voor het meedenken. Rome is ook niet in 1 dag gebouwd en ik verwacht ook niet direct resultaat en zeker dat het een en ander stuk gaat. Ik heb het Arduino Beginners boek, maar deze focussed heel veel op programmeren, aangezien ik van beroep programmeur ben kan ik mij er niet toe zetten om te lezen hoe for, while, if statements werken, dat heb ik 10 jaar geleden al geleerd :slight_smile:

Betreffende de 4bit dac ben ik het met je eens, ik hoop dat het resultaat voldoende is voor mijn toepassing, werkt dit niet zoals gehoopt schaf ik de Arduino Due aan

Je zou ook nog een DAC I2C chip kunnen overwegen.

nicoverduin:
Je zou ook nog een DAC I2C chip kunnen overwegen.

ik kwam deze gister inderdaad tegen op Adafruit, voor 5 dollar is mijn probleem opgelost en ik gebruik minder pins! ideaal! Toch ga ik zelf eerst proberen het probleem op te lossen voor ik uitwijk naar een kant en klare (anders leer ik er natuurlijk niks van!)

Tja
Ik gebruik wel meer van die kant en klare modules om een prototype te maken. Is het goed dan komt het Schema/PCB werk om de hoek kijken. Let wel op dat je zeker weet dat de modules (of losse chips) werken op Software I2C. Je hebt de analoge poorten al verbruikt aan de potmeters (alhoewel daar ook nog wel een ingenieuze oplossing voor te verzinnen is :grin: waardoor je nog maar 1 analoge pin nodig zou hebben door een mosfet switch te gebruiken oid.)