dear frederikkoopman , hello , please see the code dmx to stepper below and email me , i need some changes
from you if you can ..
andreas157@yahoo.gr
#include <Stepper.h>
#include <DMXSerial.h>
int x = 0;
int y = 0;
int ranx;
int rany;
int ken;
int LED_RED = 11; // пины светодиодов
int LED_GREEN = 9;
int LED_BLUE = 6;
int TEST = A0; // пин концивика для теста
int z = 0;
const int INX1 = 4; // пны двигателя Х
const int INX2 = 2;
const int INX3 = A3;
const int INX4 = A5;
const int INY1 = 10; // пины двигателя Y
const int INY2 = 8;
//const int INY3 = 7;
//const int INY4 = 4;
const int stepsPerRevolutionX = 100;
const int stepsPerRevolutionY = 4;
Stepper myStepperX(stepsPerRevolutionX, INX1, INX2);
Stepper myStepperY(stepsPerRevolutionY, INY1, INY2);
void setup() {
myStepperX.setSpeed(16000);
myStepperY.setSpeed(1000);
pinMode(LED_RED, OUTPUT);
pinMode(LED_GREEN, OUTPUT);
pinMode(LED_BLUE, OUTPUT);
pinMode(TEST, INPUT_PULLUP);
DMXSerial.init(DMXReceiver);
}
void loop() {
if( z == 0){myStepperX.step(stepsPerRevolutionX);} // цикл теста
if (!digitalRead(TEST)) {
for (int i=0; i < 25; i++){
myStepperY.step(stepsPerRevolutionY);}
delay(1000);
myStepperX.step(-stepsPerRevolutionX);
myStepperX.step(-stepsPerRevolutionX);
myStepperX.step(-stepsPerRevolutionX);
analogWrite(LED_RED, 255);
analogWrite(LED_GREEN,255);
analogWrite(LED_BLUE, 255);
x=0;
y=0;
delay(1000);
z = 1;
}
if( z == 1){
unsigned long lastPacket = DMXSerial.noDataSince(); // цыкл работы
ranx = DMXSerial.read(1)*10;
rany = DMXSerial.read(5)/10;
if(x < ranx) {myStepperX.step(-stepsPerRevolutionX); x = x +1;}
if(x > ranx) {myStepperX.step(stepsPerRevolutionX);x = x - 1;}
if(y < rany) {myStepperY.step(-stepsPerRevolutionY); y = y +1;}
if(y > rany) {myStepperY.step(stepsPerRevolutionY);y = y - 1;}
analogWrite(LED_RED, DMXSerial.read(4));
analogWrite(LED_GREEN, DMXSerial.read(2));
analogWrite(LED_BLUE, DMXSerial.read(3));
// if(DMXSerial.read(6) > 127)z = 0;
}
}