我正打算在我的arduino上编程一个多通道dmx-contoller。我的想法是设置一些potis,读取它们的值并将其作为dmx512信号发送。现在,我想为我的代码提供一些反馈,因为我对dmx和arduino还不熟悉。
这是我的代码:
#include <DMXSerial.h>
#define dmxModePin 2 // RS485 data direction control
#define BREAKSPEED 100000
#define DMXSPEED 250000
#define BREAKFORMAT SERIAL_8E1
#define DMXFORMAT SERIAL_8N2
int in_Ch1 = 1;
int in_Ch2 = 2;
int in_Ch3 = 3;
/*...*/
int val_Ch1 = 0;
int val_Ch2 = 0;
int val_Ch3 = 0;
/*...*/
void setup() {
DMXSerial.init(DMXController, dmxModePin); // start the DMX master on the UART
DMXSerial.maxChannel(60);
pinMode(in_Ch1,INPUT);
pinMode(in_Ch2,INPUT);
pinMode(in_Ch3,INPUT);
/*...*/
}
void loop() {
int val_Cha1 = analogRead(in_Ch1);
int val_Cha2 = analogRead(in_Ch2);
int val_Cha3 = analogRead(in_Ch3);
/*...*/
DMXSerial.write(in_Ch1, val_Ch1);
DMXSerial.write(in_Ch2, val_Ch2);
DMXSerial.write(in_Ch3, val_Ch3);
/*...*/
delayMicroseconds(2000);
}
由于测试所需的硬件仍在进行中,因此我无法对其进行测试。