Слайд 5
5
Дополнительно
#include
#define REMOTEXY_MODE__SOFTWARESERIAL
#include
#include
/*
настройки соединения */
#define REMOTEXY_SERIAL_RX 10
#define REMOTEXY_SERIAL_TX 9
#define REMOTEXY_SERIAL_SPEED 9600
/* конфигурация интерфейса */
unsigned char RemoteXY_CONF[] =
{ 8,0,90,0,3,5,4,48,90,24
,7,36,1,3,133,1,1,47,10,6
,1,0,74,49,12,12,6,0,2,0
,72,1,27,8,2,83,76,0,83,87
,0,1,0,3,45,15,15,1,60,0
,1,0,20,45,15,15,1,62,0,2
,0,2,16,22,7,5,79,78,0,79
,70,70,0,2,0,2,25,22,7,1
,79,78,0,79,70,70,0,130,0,-11
,-6,120,80,0 };
/* структура определяет все переменные вашего интерфейса управления */
struct {
/* input variable */
signed char gazs; /* =-100..100 положение слайдера */
unsigned char skor; /* =0 если переключатель в положении A, =1 если в положении B, =2 если в положении C, ... */
unsigned char gazb; /* =1 если кнопка нажата, иначе =0 */
unsigned char switch1; /* =1 если переключатель включен и =0 если отключен */
unsigned char l; /* =1 если кнопка нажата, иначе =0 */
unsigned char r; /* =1 если кнопка нажата, иначе =0 */
unsigned char kseon; /* =1 если переключатель включен и =0 если отключен */
unsigned char stop1; /* =1 если переключатель включен и =0 если отключен */
/* other variable */
unsigned char connect_flag; /* =1 if wire connected, else =0 */
} RemoteXY;
#define PIN_KSEON 14
#define PIN_STOP 15
int kseon11;
int stop11;
int dv;
int dn;
int led = 0;
AF_DCMotor motor(4);
AF_DCMotor motorp(3);
void setup()
{
RemoteXY_Init ();
pinMode (PIN_KSEON, OUTPUT);
pinMode (PIN_STOP, OUTPUT);
Serial.begin(9600);
}
void loop()
{
RemoteXY_Handler ();
if(RemoteXY.skor == 0){
if(RemoteXY.gazs >= 0){
motor.run(FORWARD);
motor.setSpeed(50);
}
if(RemoteXY.gazs <= 0){
motor.run(BACKWARD);
motor.setSpeed(50);
digitalWrite(PIN_STOP, led);
}
if(RemoteXY.gazs == 0){
motor.run(RELEASE);
motor.setSpeed(0);
}
}
if(RemoteXY.skor == 1){
if(RemoteXY.gazs >= 0){
motor.run(FORWARD);
motor.setSpeed(100);
}
if(RemoteXY.gazs <= 0){
motor.run(BACKWARD);
motor.setSpeed(100);
digitalWrite(PIN_STOP, led);
}
if(RemoteXY.gazs == 0){
motor.run(RELEASE);
motor.setSpeed(0);
}
}
if(RemoteXY.skor == 2){
if(RemoteXY.gazs >= 0){
motor.run(FORWARD);
motor.setSpeed(150);
}
if(RemoteXY.gazs <= 0){
motor.run(BACKWARD);
motor.setSpeed(150);
digitalWrite(PIN_STOP, led);
}
if(RemoteXY.gazs == 0){
motor.run(RELEASE);
motor.setSpeed(0);
}
}
if(RemoteXY.skor == 3){
if(RemoteXY.gazs >= 0){
motor.run(FORWARD);
motor.setSpeed(200);
}
if(RemoteXY.gazs <= 0){
motor.run(BACKWARD);
motor.setSpeed(200);
digitalWrite(PIN_STOP, led);
}
if(RemoteXY.gazs == 0){
motor.run(RELEASE);
motor.setSpeed(0);
}
}
if(RemoteXY.skor == 4){
if(RemoteXY.gazs >= 0){
motor.run(FORWARD);
motor.setSpeed(255);
}
if(RemoteXY.gazs <= 0){
motor.run(BACKWARD);
motor.setSpeed(255);
digitalWrite(PIN_STOP, led);
}
if(RemoteXY.gazs == 0){
motor.run(RELEASE);
motor.setSpeed(0);
}
}
if(RemoteXY.r == 0){
if(RemoteXY.l == 1){
motorp.run(FORWARD);
motorp.setSpeed(254);
}
if(RemoteXY.l == 0){
motorp.run(RELEASE);
}
}
if(RemoteXY.l == 0){
if(RemoteXY.r == 1){
motorp.run(BACKWARD);
motorp.setSpeed(254);
}
if(RemoteXY.r == 0){
motorp.run(RELEASE);
}
}
digitalWrite(PIN_KSEON, RemoteXY.kseon);
digitalWrite(PIN_STOP, RemoteXY.stop1);
delay(10);
}