Willkommen auf unserem Seminar-Blog

Immer auf dem aktuellen Stand bleiben

Dieser Seminar-Blog befindet sich noch im Aufbau und wird in den kommenden Tagen entsprechend verfeinert.

Member Login

Lost your password?

Registration is closed

Sorry, you are not allowed to register by yourself on this site!

You must either be invited by one of our team member or request an invitation by email at viad.info {at} zhdk {dot} ch.

03 Pulse Width Modulation

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