Forum: PC-Programmierung Arduino Reglung Analog_Out


von Bertifx (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,

ich plane einen einen kleinen Regelkreis mit einem Arduino. Dabei wird 
ein Eingangssignal aufgenommen, welches vom Controller verarbeitet 
werden soll. Genauer soll ,für das Eingangssignal, der Controller eine 
Lampe einschalten und dann bei eingeschalteter Lampe durch eine 
Fotodiode über einen bestimmten Zeitraum (Mittelwert) ein Eingangssignal 
ermitteln. Dannach soll die Lampe wieder ausgehen und abhängig vom 
Eingangssignal, soll ein analoges Ausgangssignal(0-5V) ausgegeben 
werden. Im Prinzip soll das also eine Art Lichtschranke sein. Meine 
Frage ist, ob man das überhaupt mit einem Arduino machen kann und ob 
mein Programmtext die von mir gewünschten Aufgaben ausführen würde.

Ich freue mich auf eure Antworten!

Bertifx

von Jürgen S. (jurs)


Lesenswert?

Bertifx schrieb:
> Frage ist, ob man das überhaupt mit einem Arduino machen kann und ob
> mein Programmtext die von mir gewünschten Aufgaben ausführen würde.

Die Funktion analogWrite ist NICHT das Gegenteil von analogRead!

Die Funktion analogWrite erzeugte keinen analogen Spannungswert am 
Ausgang, sondern eine PWM-Frequenz, d.h. es wird ganz schnell zwischen 
+5V und GND hin und her geschaltet, mit einem vom PWM-Wert abhängigen 
Tastverhältnis.

Damit kannst Du zwar beispielsweise eine angeschlossene LED in der 
Helligkeit regeln, aber nicht dadurch, dass die LED mehr oder weniger 
Spannung erhält, sondern dadurch, dass die LED 500 mal pro Sekunde für 
kürzere oder längere Zeit mit 5V versorgt wird oder nicht.

Bei der Ausgabe eines analogen Spannungswertes kommt es drauf an, 
welchen Arduino Du meinst.

Für die Ausgabe einer analogen Spannung benötigst Du einen DAC, das ist 
ein Digital-Analog-Converter.

Die 8-Bit Atmega Arduino-Boards haben keinen DAC. Da muß externe 
DAC-Hardware drangeschaltet werden, damit es funktionieren kann. Z.B. 
selbstgebastelt:
http://www.avdweb.nl/arduino/hardware-interfacing/simple-10-bit-dac.html

Der Arduino DUE hat zwar DACs on board. Aber diese werden von der 
Arduino-Software nicht standardmäßig mit Arduino-Komfortbefehlen 
unterstützt, so dass Du die DACs entweder auf Registerebene selbst 
programmieren oder eine geeignete Third-Party-Library einsetzen müßtest.

von Dussel (Gast)


Lesenswert?

Man kann aber auch ein PWM-Signal über einen Tiefpass glätten und so 
einen analogen Wert bekommen. Es kommt halt drauf an, wie genau es sein 
muss. Aber bei Arduino denke ich, dass es nicht allzu genau sein muss.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.