DA-Wandler

Rund um die Software von Revolution Pi
Post Reply
Lichtgemacht
Posts: 3
Joined: 29 Jul 2019, 13:58

DA-Wandler

Post by Lichtgemacht »

Hallo Forum,
ich muss einen kontinuierlich arbeitenden DA Wandler mit 6 bit bauen und da ich sowieso im Schaltschrank schon einen RPI, DIO und AIO habe kann ich den (mit revpimodio2) so bauen:

# Ausgabe des Analogwertes
rpi.io.OutputValue_1.value = (((rpi.io.I8.value*1)+(rpi.io.I9.value*2)+(rpi.io.I10.value*4)+(rpi.io.I11.value*8)+(rpi.io.I12.value*16)+(rpi.io.I13.value*32))*158)

wenn alle high sind habe ich 63*158 was ca 10000 ergibt und am Ausgang der Analogkarte 10V ausgeben würde.
Ist das syntaktisch so in ordnung? Kann es gerade nicht ausprobieren, deshalb die Frage.
Beste Grüße, Torsten.
User avatar
nicolaiB
KUNBUS
Posts: 931
Joined: 21 Jun 2018, 10:33
Location: Berlin
Contact:

Re: DA-Wandler

Post by nicolaiB »

Hallo Thorsten,

interessante Anwendung, habe ich so bisher noch nicht gesehen! Dein Code sieht gut aus und sollte so funktionieren.

Falls du deinen DA-Wandler noch flexibler gestalten möchtest bietet sich der folgende Ansatz an:

Code: Select all

def dac_voltage(inputs: list):
    value = int("".join(str(i) for i in inputs), 2)
    return value
  
 # mit 6 Bit
 scale_factor = 158
 analog_output = dac_voltage([rpi.io.I1.value, rpi.io.I2.value, rpi.io.I3.value, rpi.io.I4.value, rpi.io.I5.value,rpi.io.I6.value]) * scale_factor
Gruß Nicolai
Post Reply