#include \< SoftwareSerial.h\> #include \< AccelStepper.h\> #include \< AFMotor.h\> #define SSerialRX 0 //Serial Receive pin #define SSerialTX 1 //Serial Transmit pin #define SSerialTxControl 0 //RS485 Direction control #define RS485Transmit HIGH // not needed here, the servos attached to the arduino will not transmit any data to the Pelco-D controller #define RS485Receive HIGH SoftwareSerial RS485Serial(SSerialRX, SSerialTX); // RX, TX AF\_Stepper motor1(48, 1); AF\_Stepper motor2(48, 2); byte byteReceived[7]; int byteNumber = 0; int byteSend; void setup() { Serial.begin(9600); // opens serial port, sets data rate to 38400 bps Serial.println("Arduino Serial Servo Control with Pelco D"); Serial.println(); pinMode(SSerialTxControl, OUTPUT); digitalWrite(SSerialTxControl, RS485Receive); // Init Transceiver RS485Serial.begin(9600); motor1.setSpeed(100); // 10 rpm motor2.setSpeed(100); // 10 rpm } void loop() { if (RS485Serial.available() \> 0) { byteReceived[byteNumber ++] = RS485Serial.read(); if ( byteReceived[0] != 0xFF ) {byteNumber = 0;} } if ( byteNumber \> 6 ) { byteNumber = 0; byte data = byteReceived[3]; Serial.println(data, HEX); switch(data) { //case 0x00 : break; case 0x02 : motor1.step(100, BACKWARD, INTERLEAVE); break; //sağ case 0x04 : motor1.step(100, FORWARD, INTERLEAVE); break; //sol case 0x10 : motor2.step(70, FORWARD, INTERLEAVE); break;//aşağı case 0x08 : motor2.step(70, BACKWARD, INTERLEAVE); break;//yukarı case 0x12 : motor1.step(100, BACKWARD, INTERLEAVE), motor2.step(70, FORWARD, INTERLEAVE); break;//ALT SAĞ çapraz case 0x14 : motor1.step(100, FORWARD, INTERLEAVE), motor2.step(70, FORWARD, INTERLEAVE); break;//ALT SOL çapraz case 0xA : motor1.step(100, BACKWARD, INTERLEAVE), motor2.step(70, BACKWARD, INTERLEAVE); break;//ÜST SAĞçapraz case 0xC : motor1.step(100, FORWARD, INTERLEAVE), motor2.step(70, BACKWARD, INTERLEAVE); break;//ÜST SOL çapraz } } }
sorun nedir?
sorun yok