Hallo Community,
gibt's vielleicht eine Möglichkeit, den folgenden Code etwas zu schrumpfen:
#include <Wire.h>
#define startbyte 0x0F
#define I2Caddress 0x07
int sv[2]={135,120}; // servo positions:0:tilt:13,1:open/close:5
int lmspeed,rmspeed; // left and right motor speed from -255 to +255 (negative value = reverse)
byte lmbrake,rmbrake; // left and right motor brake (non zero value = brake)
byte devibrate=50; // time delay after impact to prevent false re-triggering due to chassis vibration
int sensitivity=50; // threshold of acceleration / deceleration required to register as an impact
int lowbat=550; // adjust to suit your battery: 550 = 5.50V
byte i2caddr=7; // default I2C address of T'REX is 7. If this is changed, the T'REX will automatically store new address in EEPROM
byte i2cfreq=0; // I2C clock frequency. Default is 0=100kHz. Set to 1 for 400kHz
void setup()
{
Serial.begin(9600);
Wire.begin(); // no address - join the bus as master
Serial.println("Sample Program started!");
}
void loop()
{
//forward
Serial.println("Forward");
lmspeed=60;
rmspeed=60;
MasterSend(startbyte,6,lmspeed,lmbrake,rmspeed,rmbrake,sv[0],sv[1],devibrate,sensitivity,lowbat,i2caddr,i2cfreq);
delay(50); //50
for (int i = 0; i < 6; i++) {
MasterReceive(); // receive data packet from T'REX controller
delay(10); //50
}
//rechts drehen
Serial.println("Forward");
lmspeed=0;
rmspeed=90;
MasterSend(startbyte,6,lmspeed,lmbrake,rmspeed,rmbrake,sv[0],sv[1],devibrate,sensitivity,lowbat,i2caddr,i2cfreq);
delay(10); //50
for (int i = 0; i < 6; i++) {
MasterReceive(); // receive data packet from T'REX controller
delay(10); //50
}
//forward
Serial.println("Forward");
lmspeed=60;
rmspeed=60;
MasterSend(startbyte,6,lmspeed,lmbrake,rmspeed,rmbrake,sv[0],sv[1],devibrate,sensitivity,lowbat,i2caddr,i2cfreq);
delay(50); //50
for (int i = 0; i < 6; i++) {
MasterReceive(); // receive data packet from T'REX controller
delay(10); //50
}
//rechts drehen
Serial.println("Forward");
lmspeed=0;
rmspeed=90;
MasterSend(startbyte,6,lmspeed,lmbrake,rmspeed,rmbrake,sv[0],sv[1],devibrate,sensitivity,lowbat,i2caddr,i2cfreq);
delay(10); //50
for (int i = 0; i < 6; i++) {
MasterReceive(); // receive data packet from T'REX controller
delay(10); //50
}
//forward
Serial.println("Forward");
lmspeed=60;
rmspeed=60;
MasterSend(startbyte,6,lmspeed,lmbrake,rmspeed,rmbrake,sv[0],sv[1],devibrate,sensitivity,lowbat,i2caddr,i2cfreq);
delay(50); //50
for (int i = 0; i < 6; i++) {
MasterReceive(); // receive data packet from T'REX controller
delay(10); //50
}
//rechts drehen
Serial.println("Forward");
lmspeed=0;
rmspeed=90;
MasterSend(startbyte,6,lmspeed,lmbrake,rmspeed,rmbrake,sv[0],sv[1],devibrate,sensitivity,lowbat,i2caddr,i2cfreq);
delay(10); //50
for (int i = 0; i < 6; i++) {
MasterReceive(); // receive data packet from T'REX controller
delay(10); //50
}
//forward
Serial.println("Forward");
lmspeed=60;
rmspeed=60;
MasterSend(startbyte,6,lmspeed,lmbrake,rmspeed,rmbrake,sv[0],sv[1],devibrate,sensitivity,lowbat,i2caddr,i2cfreq);
delay(50); //50
for (int i = 0; i < 6; i++) {
MasterReceive(); // receive data packet from T'REX controller
delay(10); //50
}
//stop
Serial.println("Stop");
lmspeed=0;
rmspeed=0;
MasterSend(startbyte,6,lmspeed,lmbrake,rmspeed,rmbrake,sv[0],sv[1],devibrate,sensitivity,lowbat,i2caddr,i2cfreq);
delay(200);
while(1) { }
}