Hallo Miteinander
Ich bin auf der suche nach einem Weg einen Master Dimmer und Strobo für ein RGB Band zu erstelle mit dem Arduino habe es auch geschafft die LEDs zu mischen das war kein Problem den Dimmer habe ich so halb hin bekommen aber nach der hälfte der Dimmung fangen die LEDs an zu flackern und die Farben sich zu vermischen ich habe 4 TIP31C benutzt 3 für RGB und einen davor geschalten für den Dimmer mit einem 10 Ohm widerstand. Vielleicht weiß ja jemand wie das bei einem Richtigen Scheinwerfer funktioniert. Ich Packe meinen Aufbau und Code mal hier rein nicht wunder auf dem Breadboard sieht es ein wenig unordentlich aus
Ich würde mich über jede Hilfe freuen danke schon mal im Voraus
LG euer Arduino Master
Hier mein Code :
// - - - - -
// DmxSerial - A hardware supported interface to DMX.
// DmxSerialRecv.ino: Sample DMX application for retrieving 3 DMX values:
// address 1 (red) -> PWM Port 9
// address 2 (green) -> PWM Port 6
// address 3 (blue) -> PWM Port 5
//
// Copyright (c) 2011-2015 by Matthias Hertel, http://www.mathertel.de
// This work is licensed under a BSD style license. See
// http://www.mathertel.de/License.aspx
//
// Documentation and samples are available at http://www.mathertel.de/Arduino
// 25.07.2011 creation of the DmxSerial library.
// 10.09.2011 fully control the serial hardware register
// without using the Arduino Serial (HardwareSerial) class to avoid ISR
// implementation conflicts. 01.12.2011 include file and extension changed to
// work with the Arduino 1.0 environment 28.12.2011 changed to channels 1..3
// (RGB) for compatibility with the DmxSerialSend sample. 10.05.2012 added some
// lines to loop to show how to fall back to a default color when no data was
// received since some time.
// - - - - -
#include <DMXSerial.h>
// Constants for demo program
const int RedPin = 9; // PWM output pin for Red Light.
const int GreenPin = 6; // PWM output pin for Green Light.
const int BluePin = 5; // PWM output pin for Blue Light.
const int Dimmer = 3;
#define RedDefaultLevel 100
#define GreenDefaultLevel 0
#define WhiteDefaultLevel 0
#define BlueDefaultLevel 0
void setup() {
DMXSerial.init(DMXReceiver);
// setze einige Standardwerte
DMXSerial.write(1, 80);
DMXSerial.write(2, 0);
DMXSerial.write(3, 0);
DMXSerial.write(4, 0);
// PWM-Ausgänge aktivieren
pinMode(RedPin, OUTPUT); // sets the digital pin as output
pinMode(GreenPin, OUTPUT);
pinMode(BluePin, OUTPUT);
pinMode(Dimmer, OUTPUT);
}
void loop() {
// Berechnen Sie, wie lange kein Datenpaket empfangen wurde
unsigned long lastPacket = DMXSerial.noDataSince();
if (lastPacket < 5000) {
// Letzte DMX-Werte lesen und PWM-Pegel einstellen
analogWrite(RedPin, DMXSerial.read(1));
analogWrite(GreenPin, DMXSerial.read(2));
analogWrite(BluePin, DMXSerial.read(3));
analogWrite(Dimmer, DMXSerial.read(4));
}
}
else {
// Zeige reine rote Farbe, wenn seit 5 Sekunden oder länger keine Daten
// empfangen wurden.
analogWrite(RedPin, RedDefaultLevel);
analogWrite(GreenPin, GreenDefaultLevel);
analogWrite(BluePin, BlueDefaultLevel);
analogWrite(Dimmer, WhiteDefaultLevel);
} // if
}
Display More
Moderator-Edit:
ich hab mir erlaubt deinen Code mal in den Code-Tag zu packen - besser lesbar
Grüße, Souko