FORUM

 



Programmiersprache Arduino: analogRead analogWrite

analogRead(pin)

Liest den Wert eines bestimmten Analog-Pins mit einer 10-Bit Auflösung. Dies funktioniert nur bei analogen Pins (0-5). Der daraus resultierende ganzzahlige Werte liegt zwischen 0 und 1023.

 
Hinweis: Im Gegensatz zu digitalen Arbeiten müssen Analog Pins nicht zuerst als INPUT oder OUTPUT deklariert werden.

 

value = analogRead(pin);
          // sets überträgt den Pin-Wert nach 'value'

analogWrite(pin, value)

Schreibt einen Pseudo-Analog-Wert unter Verwendung der Hardware und aktiviert die Puls-Weiten-Modulation (PWM) an dem Pin-Ausgang der als PWM bezeichnet ist. Bei neueren Arduinos mit dem ATmega168 Chip und ATmega368 Chip arbeitet diese Funktion über die Pins 3, 5, 6, 9, 10 und 11. Ältere Arduinos mit einem ATmega8 unterstützen nur die Pins 9, 10 und 11. Der Wert kann als Variable oder Konstante angegeben werden mit einem Wert von 0-255.

 

 

analogWrite(pin, value);      
         // schreibt 'value' am Analog-pin

Ein Wert von 0 erzeugt einen stetigen 0 Volt-Wert an dem angegebenen Pin; ein Wert von 255 erzeugt konstant 5 Volt am angegebenen Pin. Für Werte zwischen 0 und 255 wechselt der Pin schnell zwischen 0 und 5 Volt - je höher der Wert, desto häufiger wird der Stift mit 5 Volt gespeist. Zum Beispiel wird ein Wert von 64 auf 0 Volt drei Viertel der Zeit und 5 Volt ein Viertel der Zeit, ein Wert von 128 wird die Hälfte der Zeit 0 und die andere Hälfte 5 Volt haben. Einen Wert von 192 wird 0 Volt ein Viertel der Zeit und 5 Volt drei Viertel der Zeit am Pin ausgegeben.

Da es sich um eine Hardware-Funktion handelt, wird am PIN eine stetige Welle nach einem Aufruf des analogWrite im Hintergrund durchgeführt und dies bis zum nächsten Aufruf eines analogWrite (oder eines Anrufs eines digitalRead oder digitalWrite auf dem gleichen Pin).

int led = 10;          // LED mit einem 220 Ohm

                       // Widerstand an Pin 10
int pin = 0;           // Potentiometer an Analog-Pin 0
int value;             // value zum einlesen
void setup(){}         // kein setup erforderlich
void loop()
{   
  value = analogRead(pin); // Wert des Potentiometers
                           // einlesen
  value /= 4;              // Konvertieren 0-1023

                           // auf 0-255
  analogWrite(led, value); // Ausgabe PWM signal

                           // am LED
  }

Hinweis: Im Gegensatz zu digitalen Pins müssen Analog Pins nicht zuerst als INPUT oder OUTPUT deklariert werden.
Das folgende Beispiel liest einen analogen Wert von einer analogen Eingangs-Pin, setzt den Wert durch Division mit 4, und gibt ein PWM-Signal über ein PWM-Pin aus:

  1.Seite dig.R/W  delay min max >
 

content copyright © 2004 - 2019, Gerhard Lentschik. Nachdruck und Weiterverbreitung, auch auszugsweise, nur mit Genehmigung.
Aufrufe seit 16.6.2011:
1387714
Impressum   Datenschutz
ss