Übersetzungen dieser Seite:

Lichterkette mit Arduino Befehlen steuern

Grove Led String

Lichterketten mit Fernbedienung gibt es im Baumarkt um die Ecke. Wirklich interessante Lichteffekte kann man damit aber erst zaubern, wenn man einen Mikrocontroller anschliesst. Das ist denkbar einfach. In diesem Beispiel wird ein GroveLedString Modul mit einem Merkurboard mit Grove-Steckern über ein Grovekabel verbunden.

Grove - LED String Light Modul

Stromversorgung

Die Stromversorgung erfolgt über den Merkurboard Programmer (USB-Seriel Wandler 3.3V). Dieser liefert genug Strom auch die Lichterkette zu versorgen.

Datenanschluss

Auf dem Schaltplan erkennt man das die Lichterkette über einen I/O Pin ein oder ausgeschaltet werden kann. Wer die Lichterkette nicht nur ein und ausschten will, sondern auch die Helligkeit dimmen möchte muss sich etwas einfallen lassen. Um die Helligkeit zu Steuern verwenden wir einen PWM PIN des Merkurboards.

PWM bedeutet Pulse Width Modulation bedeutet das der Strom in schneller Abfolge ein- und ausgeschaltet wird. Ein Zeitintervall ist dabei 20 Millisekunden lang. Träge Bauelemente kann man durch ein PWM Signal dimmen. Ist der Strom z.B. 10 Millisekunden ein- und danach 10 Millisekunden abgeschalten, ist der resultierende Strom nur halb so groß. Eine LED würde also nur halb so kräftig leuchten.

Auf dem Arduino kompatiblen Merkur-Board gibt es drei Ausgänge die PWM-Signale erzeugen können

Code

extern "C" {
#include <stdio.h>
#include "led_pwm.h"
#define LED_PIN 4
#define LED_STRING 3

uint8_t  pwm             = 128;
uint8_t  period_100ms    = 1; /* 1/10 second (period_100ms * 100ms) */
}

void setup (void)
{
    arduino_pwm_timer_init ();
    rest_init_engine ();
    rest_activate_resource (&res_led_pwm,         (char *)"led/pwm");
    rest_activate_resource (&res_led_period,      (char *)"led/period");
}

void loop (void)
{
    /* Use 255 - pwm, LED on merkur-board is wired to +3.3V */
    analogWrite (LED_PIN, 255 - pwm); // Merkurboard LED
    analogWrite (LED_STRING, pwm);    // Grove Modul

    printf ("clock : %lu\nmillis: %lu\n", clock_time (), millis ());
    delay (period_100ms * 100);
    analogWrite (LED_PIN, 255); /* OFF: LED on merkur-board is wired to +3.3V */
    analogWrite (LED_STRING, 0); 
    delay (period_100ms * 100);
}

Material

  • Grove - LED String Light Grove - LED String Light Verfügbarkeit:
  • Merkurbaord-Grove4 Merkurbaord-Grove4 Verfügbarkeit:
  • Merkurbaord Programmer Merkurbaord Programmer Verfügbarkeit:

de/tutorials/arduino-contiki/grove-led-string.txt · Zuletzt geändert: 2017/12/06 16:40 von harald42