Go Down

Topic: Spannung mit arduino Uno ändern (Read 5426 times) previous topic - next topic

1brasil1

Hallo,

ich bin neu hier, ich habe mich in den IDE von arduino durchgelesen und versucht zu programmieren, was bis jetzt auch sehr gut geklappt hat. jetzt bin ich auf eine Sache gestoßen wo ich probleme bekommen habe. ich wollte mit meinem Uno ein spannung mit analogwrite() ausgeben . und zwar wenn es ein Digit hat soll er auf einen display ein Volt ausgeben hat er aber 50 digits soll er 50 V ausgeben (Display) die Spannung die aus dem Pin ausgeht sollte natüriclh höher sein als die bei einem Digit. Wie würde das am besten klappen habt ihr paar infos für mich? die variable im header soll als float deklariert werden.
da würdet ihr mir eine große hilfe sein.

Serenifly

analogWrite() ist kein DAC! Sondern macht PWM. Also 0V oder 5V mit variablem Puls/Pausen-Verhältnis.

Ansonsten ist deine Erklärung nicht sehr verständlich. Digits?

nix_mehr_frei

Du hast mehrere Möglichkeiten: Digital Analogwandler (DAC) als IC dahinter und ggf. mit einem Leistungs-OV auf die entsprechende Spannung verstärken.
Per R2R Netztwerk eine echte 0-5V Analogspannung erzeugen und per Leistungs-OV verstärken.
Oder mit einem RC-Glied und einem Transistor das PWM Signal glätten. So z.B. hier skizziert:
Statt 12V muß man für 0-10V allerdings 10V anlegen. Habe ich mit einem 7810 erfolgreich getestet. Allerdings ist die Kennlinie nicht besonders genau. Bei PWM 127 habe ich keine 5V, sondern eher knappe 7V. Die Kennlinie lehnt sich an die Ladekurve eines Kondensators an. Könnte man per Software zwar begradigen, aber die Auflösung wird dann noch schlechter. Letztere Variante ist maximal für Dimmer und ähnliches, die ein 0-10V Analogsignal erwarten, zu gebrauchen.
rot ist blau und Plus ist Minus

combie

@nix_mehr_frei

Falscher µC!
Oder zumindest falscher Plan...

Der DUE hat 2 DAC.
Alternativ gibts einige I2C und SPI DACs im Handel.

Wenn es wirklich mit einem AVR Arduino gemacht werden MUSS, dann könnte man auch einen ADC Kanal verwenden um die Last auszuregeln.

Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

Theseus

@nix_mehr_frei

Falscher µC!
Oder zumindest falscher Plan...
Die Frage geht doch um den UNO und nicht den DUE . Pin9 ist ein PWM-Pin.

Der PCF8591 wäre ein sehr günstiger I2C-DAC.

uwefed

@1brasil1
Was willst Du machen.
Grüße Uwe

1brasil1

laut IDE von Arduino ist bei analogwrite() 0-255 einstellbar. ich will zum Beispiel, wenn es von den 255 nur 1 eingegeben wird das er z.b 1mV am Pin ausgibt und auf dem Display anzeigt das es  1 Volt ist. gebe  ich 15 ein soll 15mV  am pin ausgegeben und 15V auf dem Display.

Serenifly

analogWrite() gibt keine variable Spannung aus! Das ist Pulsweiten-Modulation. Die Macher haben das aber in ihrem Wahn alles extrem zu vereinfachen sehr schlecht genannt und sorgen so immer wieder für Verwirrung.

Du brauchst einen externen DAC.

Theseus

Wofür brauchst du die Spannung? Je nach Verwendungszweck ist PWM brauchbar bzw. gar optimal oder es muss zwingend ein echter Analogwert sein.

combie

Du brauchst einen externen DAC.
Das möchte 1brasil1 doch nicht hören!
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

1brasil1

wäre es dann möglich das ich die Spannung immer gleich ausgebe und nur auf den display die 1V oder 20V ausgebe indem ich sage das die 1 von 255 mein 1 V ist? aber es sollte ein dauersignal sein , nicht das er die flanken wechselt

uwefed

Was er hören will und was er machen muß um das zu erhalten was er will können ruhig 2 verschiedene Dinge sein.

Eine Auflösung von 1mV bei Vollausschlag 5V sind nicht 8 Bit sondern mehr als 12 Bit ( bei 12 Bit sind das 1,22mV)

Grüße Uwe

uwefed

wäre es dann möglich das ich die Spannung immer gleich ausgebe und nur auf den display die 1V oder 20V ausgebe indem ich sage das die 1 von 255 mein 1 V ist? aber es sollte ein dauersignal sein , nicht das er die flanken wechselt
Du solltes mit einigen Infos rausrücken und genau beschreiben was Du machen willst.
Eine Gleichspannung von 0-5V ist eine Sache aber 20 oder 50 V ist ein ganz anderer Aufwand. Dazu kommt noch welchen Strom Du brauchst.

Grüße Uwe

Theseus

Auf dem Display kannst du ausgeben was du willst. Und wenn du da dreiquadrillionen Volt drauf schreibst. Das ist das geringste Problem. Es wäre sehr hilfreich, wenn du ein paar mehr Infos geben würdest. So ist es kaum möglich deine Fragen sinnvoll zu beantworten.

Nimmst du z.B. einen PCF8591 zur Hilfe, kannst du auch bequem eine analoge Spannung z:B. 10mV ausgeben. Den PCF gibt es auch auf günstigen fertigen Boards.
Trotzdem bleibt die Frage, wofür du die Spannung brauchst.

combie

wäre es dann möglich das ich die Spannung immer gleich ausgebe und nur auf den display die 1V oder 20V ausgebe indem ich sage das die 1 von 255 mein 1 V ist? aber es sollte ein dauersignal sein , nicht das er die flanken wechselt
Ich verstehe dich nicht!
Wer seine Meinung nie zurückzieht, liebt sich selbst mehr als die Wahrheit.

Quelle: Joseph Joubert

Go Up