Im Arduino Uno ist kein DA Wandler enthalten. Der lässt sich mit einem R-2R Netzwerk ergänzen. Genug digitale Ausgänge sind vorhanden. Hier wird ein 4-Bit DAC aufgebaut.
Im Vorrat habe ich viele 470 Ohm SMD 1206 Widerstände, deshalb werden die hier verwendet. 2R sind also 470 Ohm und R ist damit die Parallelschaltung der beiden Widerstände und ergibt 235 Ohm. Die Schaltung benötigt 13 gleiche Widerstände.
Bei einem 4-Bit DA Wandler mit 5V Versorgungsspannung ist die kleinste einstellbare Spannungsänderung (LSB) nach folgender Formel.
Mit einem Lastwiderstand am Ausgang lässt sich die Ausgangsspannung über den Spannungsteiler berechnen.
Für einen Lastwiderstand von 1 kOhm ergibt sich eine maximal erreichbare Ausgangsspannung mit Z=15 (alle Bits 1) von 3,8 V.
Hier wird später noch ein Verstärker mit einem hochohmigen Eingang hinter geschaltet. Dann kann eine Ausgangsspannung von maximal 4,68 V erreicht werden.
Die Schaltung
Diese Pins liegen beim Arduino Uno direkt nebeneinander und werden mit dem Widerstandsnetzwerk beschaltet. Dabei ist Pin 13 das LSB (mit 1 das kleinste Bit) und Pin 10 das MSB (mit 8 das größte Bit).
Die Ausgänge 10 – 13 können jetzt auf HIGH (5V) oder LOW (0V) geschaltet werden und tragen dann ihren Spannungsanteil zur Ausgangsspannung bei. So wird aus dem digitalen Schalten der Ausgänge die analoge Spannung am Ausgang erzeugt.
Die Platine
Zuerst wird eine Platine vorbereitet mit Unterbrechungen. Die Platine geht quer über den Uno damit später auf die 5V Spannung zugegriffen werden kann.
Die Widerstände und die Stiftleiste werden verlötet. Das ganze auf dem Uno sieht dann so aus.
Dabei macht es auch nichts aus dass die obere Sockelleiste beim Arduino aus dem 2,54 mm Raster geraten ist. Das „Shield“ sitzt nur etwas schief. Wenn man zum Löten der Stiftleisten das Shield schon auf den Uno setzt, passt es nachher bestens.
Die beiden Drähte rechts sind der Ausgang.
Fazit
– Das ist ein sehr einfacher und preiswerter Aufbau.
– Die maximale Frequenz des Arduino kann genutzt werden, sodass Signale bis in den MHz Bereich möglich sind.
– Ein Nachteil ist dass man später die Werte umrechnen muss, da das LSB Bit über dem MSB Bit liegt. Darauf werde ich im Programm noch eingehen.
– Vorerst weden nur hochohmige Geräte angeschlossen (Oszilloskop, Arduino Frequenzzähler Eingang), später muss noch ein Verstärker nachgeschaltet werden und die Ausgangsspannung unabhängig von dem Lastwiderstand zu machen.
von Matthias Busse
Pingback: 12 Bit DA Wandler, der MCP4921 am Arduino Uno | Shelvin – Elektronik ausprobiert und erläutert