Paso 5: Código y vaya!!
1) Asegúrese de que usted tenga SoftwareSerial.h. Esto nos permite ejecutar dos instancias seriales a la vez!
2) cargar el código de tu arduino
3) comienzo presionando para la retroalimentación
4) usted puede cambiar el ID del xbee. Estos valores se escriben cada vez que se enciende el arduino.
5) ir a buscar algo al CONTROL!
Arduino pro 5v código con protocolo de control de New Haven:
#include
XbeeSerial SoftwareSerial (12, 13); RX, TX
variables
int i = 0;
int j = 0;
int m = 0;
int dChange = 0;
sChange int = 0;
int stChange = 0;
int ret = 0;
ejecutar int = 0;
int inByte = 0;
int alto = 3;
int abajo = 4;
int izquierda = 5;
int derecha = 6;
Seleccione int = 7;
int Inicio = 8;
comandos de int [100]; //for util
int entrada [6] = {arriba, abajo, izquierda, derecha, seleccionar, comenzar};
int buttonState [6];
char * direcciones [] = {"Hacia adelante", "Atrás" "Izquierda", "RIGHT", "SELECT", "Inicio"};
char * dlist [] = {"F", "R", "<", ">", "sel", "sta"};
byte xbeeSend [4] = {0x31, 0x32, 0x33, 0x34};
char roverData [] = "";
comandos de Newhaven NHD-0220D3Z-NSW-BBW-V3
Programa byte = 0xFE;
byte displayOn = 0 x 41;
displayOff bytes = 0x42;
byte cursorPos = 0x45; Conjunto de 1 byte
byte cursorHome = 0x46;
byte underlineOn = 0x47;
byte underlineOff = 0x48;
byte cursorLeft = 0x49;
byte cursorRight = 0x4A;
byte blinkingOn = 0x4B;
byte blinkingOff = 0x4C;
retroceso de byte = 0xFE;
clearScreen bytes = 0x51;
byte setContrast = 0x52; //1 byte conjunto
byte setBrightness = 0x53; conjunto de 1 byte
personalizado de bytes = 0x54;
byte displayLeft = 0x55;
byte displayRight = 0x56;
firmware de bytes = 0x70;
/*
0xFE 0x61 1 byte cambio RS‐232 BAUDrate 3mS
0xFE 0x62 1 byte cambio I2C dirección 3mS
0xFE 0X70 ninguna pantalla firmware versión número 4mS
0xFE 0x71 ninguno Mostrar RS‐232 BAUDrate 10mS
0xFE 0x72 ninguno Display I2C dirección 4mS
*/
void setup()
{
Abrir com serial y definir entradas
Serial.Begin(9600);
xbeeSerial.begin(9600);
para (i = 3; i < 9; i ++) {}
pinMode (, entrada);
}
lcdCommand(program,clearScreen);
Delay(500);
//
poner la radio en modo comando:
xbeeSerial.print("+++");
Espere a que la radio responder con "OK\r"
char thisByte = 0;
mientras que (thisByte! = '\r') {}
Si (xbeeSerial.available() > 0) {}
thisByte = xbeeSerial.read();
// }
// }
Establezca la dirección de destino con el direccionamiento de 16 bits. Esta radio
destino debe ser la otra radio mi dirección y viceversa:
xbeeSerial.print ("ATDH0, DL1234\r");
xbeeSerial.print("ATMY5678\r"); mi dirección (direccionamiento de 16 bits)
establece el ID de la cacerola. Si estás en un lugar donde muchas personas
están utilizando XBees, elegir un identificador de PAN único
xbeeSerial.print("ATID1111\r");
xbeeSerial.print("ATCN\r");
xbeeListen();
}
void xbeeListen() {}
char thisByte = 0;
Si (Serial.available() > 0) {}
thisByte = Serial.read();
}
}
void loop() / / DESCABELLADO!
{
lcdCommand(program,cursorHome);
lcdCommand(program,blinkingOn);
lcdCommand(program,setContrast);
Serial.Write(0x28);
readDpadInput();
readSelInput();
lcdCommand(program,cursorRight);
Serial.Print("Command:");
Serial.Print(j);
Serial.Print("?");
lcdCommand(program,cursorPos);
Serial.Write(0x40);
while(dChange ==1) {}
directionFeedback();
Delay(500);
comandos [j] = ret;
j ++;
lcdCommand(program,clearScreen);
dChange = 0;
}
Delay(500);
}
serie
Protocolo de comando:
int lcdCommand (dirección de byte, int valor) {}
Serial.Write (dirección); //CORRECT de sintaxis para los comandos del lcd
Serial.Write(Value);
}
leer entrada
int readDpadInput() {}
para (i = 0; i < 4; i ++) {}
buttonState[i]=digitalRead(input[i]);
dChange buttonState [i] = dChange;
}
}
int readSelInput() {}
buttonState[4]=digitalRead(input[4]);
sChange buttonState [4] = sChange;
}
int readStartInput() {}
buttonState[5]=digitalRead(input[5]);
stChange buttonState [5] = stChange;
}
Mostrar direcciones
int directionFeedback() {}
para (i = 0; i < 4; i ++) {}
{Switch(buttonState[i])}
caso 0: lcdCommand(program,cursorHome);
rotura;
caso 1:
lcdCommand(program,blinkingOff);
lcdCommand(program,cursorPos);
Serial.Write(0xC);
Serial.Print(directions[i]);
xbeeSerial.print(i+1);
handleSerial();
Delay(1000);
xbeeSerial.write("\r");
RET = i;
rotura;
}
}
}
int handleSerial() {}
xbeeSerial.print(56);
if(xbeeSerial.Available() > 0) {}
inByte = xbeeSerial.read();
Serial.Print(inByte);
}
}