You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
I have 2 servos and 4 LEDs attached to pins 3, 5, 6, 9, 10, 11 and the 2 servos work fine with the first 2 channels, and the first led works perfectly, but when i try to bring up the brightness of the second led (channel 4) the servos start moving randomly in random directions and the led doesn't light up, the third led just doesn't light up at all, the fourth led(channel 6) lights up perfectly.
code:
#include <Servo.h>
#include <DMXSerial.h>
Servo pan;
Servo tilt;
const int panPin = 3;
const int tiltPin = 5;
const int RedPin = 6; // PWM output pin for Red Light.
const int GreenPin = 9; // PWM output pin for Green Light.
const int BluePin = 10; // PWM output pin for Blue Light.
const int WhitePin = 11;
int panPos = 0;
int tiltPos = 0;
int lastPanPos = 0;
int lastTiltPos = 0;
const int startChannel = 0 * 6 + 1;
#define RedDefaultLevel 128
#define GreenDefaultLevel 128
#define BlueDefaultLevel 128
#define WhiteDefaultLevel 128
void setup() {
DMXSerial.init(DMXReceiver);
// set some default values
DMXSerial.write(1, 0);
DMXSerial.write(2, 0);
DMXSerial.write(3, 80);
DMXSerial.write(4, 0);
DMXSerial.write(5, 0);
DMXSerial.write(6, 0);
pan.attach(panPin);
tilt.attach(tiltPin);
pinMode(RedPin, OUTPUT);
pinMode(GreenPin, OUTPUT);
pinMode(BluePin, OUTPUT);
pinMode(WhitePin, OUTPUT);
}
void loop() {
if (lastPanPos != panPos) {
lastPanPos = panPos;
pan.write(panPos);
};
if (lastTiltPos != tiltPos) {
lastTiltPos = tiltPos;
tilt.write(tiltPos);
};
unsigned long lastPacket = DMXSerial.noDataSince();
if (lastPacket < 5000) {
// read recent DMX values and set pwm levels
pan.write( DMXSerial.read(startChannel + 0));
tilt.write( DMXSerial.read(startChannel + 1));
analogWrite(RedPin, DMXSerial.read(startChannel + 2));
analogWrite(GreenPin, DMXSerial.read(startChannel + 3));
analogWrite(BluePin, DMXSerial.read(startChannel + 4));
analogWrite(WhitePin, DMXSerial.read(startChannel + 5));
} else {
// Show pure red color, when no data was received since 5 seconds or more.
panPos = 0;
tiltPos = 0;
analogWrite(RedPin, RedDefaultLevel);
analogWrite(GreenPin, GreenDefaultLevel);
analogWrite(BluePin, BlueDefaultLevel);
analogWrite(WhitePin, WhiteDefaultLevel);
}
}
edit: formatting
The text was updated successfully, but these errors were encountered:
I have 2 servos and 4 LEDs attached to pins 3, 5, 6, 9, 10, 11 and the 2 servos work fine with the first 2 channels, and the first led works perfectly, but when i try to bring up the brightness of the second led (channel 4) the servos start moving randomly in random directions and the led doesn't light up, the third led just doesn't light up at all, the fourth led(channel 6) lights up perfectly.
code:
edit: formatting
The text was updated successfully, but these errors were encountered: