Arduino: PWM
PWM - Pulse Width Modulation
Um z.B. eine LED zum 'Faden' zu bringen benötigen wir eine Pulse-Width Modulation. Dabei wird ein digitales Signal am Arduino ausgegeben, welches den entsprechenden PIN (PWM Pins sind mit PWM bzw. ~ gekennzeichnet) sehr schnell EIN und AUS schaltet. Je länger nun die EIN-Zeiten des Pins sind, desto heller erscheint uns die LED – im Gegensatz dazu erscheint uns die LED dunkler, wenn die AUS-Zeiten länger sind. Die PWM Funktion des Mikrocontrollers ermöglicht es uns einfache Werte an dem entsprechenden PIN zu setzen 0 entspricht dabei 0V oder AUS und 255 entspricht 5V bzw. EIN. Jeglicher Zwischenwert (z.B. 127) kann als eine Zusammensetzung aus 0V und 5V gesehen werden und entspricht dann z.B. 2.5V.
Um über einen PWM fähigen Pin am Arduino z.B. eine LED zu dimmen rufen wir für diesen Pin folgende Funktion auf:
analogWrite(PIN, WERT);
PIN = Der PWM fähige Ausgang
WERT = Der zu schreibende Wert (0-255)
Hier ein kurzes Beispiel, welches eine LED fadet
#define LED_PIN 11 // PWM fähiger PIN
void setup()
{
pinMode(LED_PIN, OUTPUT);
}
void loop()
{
for(int i=0; i<255; i++)
{
analogWrite(LED_PIN, i); // Den Wert i an LED_PIN setzen
delay(10);
}
for(int i= 255; i>0; i--)
{
analogWrite(LED_PIN, i); // Den Wert i an LED_PIN setzen
delay(10);
}
}
Weitere Informationen:
PWM auf
Arduino.cc
The Secrets of Arduino PWM auf
Arduino.cc
analogWrite() auf
Arduino.cc
Pulse-Width-Modulation auf
Wikipedia.org