Allora ho collegato il modulo ai pin TX al 5 e RX 6 e ho usato lo scketch linkato il serial monitor con questo codice:
#include <NewSoftSerial.h>
int pinRX = 6;
int pinTX = 5;
int pinAT = 8;
NewSoftSerial blue(pinRX, pinTX);
int pinLed = 13;
void commandAT(char *v)
{
int i=0;
while(v[i] != '\n')
{
blue.print(v[i]);
i++;
}
blue.print('\n');
}
void readResponse(int nchar)
{
if(blue.available() > 0){
for(int i=0; i < nchar; i++){
char data = (char)blue.read();
Serial.print(data);
delay(100);
}
}
}
void setup()
{
blue.begin(115200);
Serial.begin(9600);
Serial.println("Inizializzo sistema...");
pinMode(pinLed, OUTPUT);
pinMode(pinAT, OUTPUT);
//Valore ALTO per switchare in modalità AT
// il 34 sull'antenna
digitalWrite(pinAT, HIGH);
Serial.println("pinAT attivo");
//Comando AT da inviare
char s[] = "AT+ORGL \r\n";
Serial.print("Scrivo comando: ");
Serial.print(s);
delay(50);
//Invio comando all'antenna
commandAT(s);
delay(50);
//Leggo la risposta
readResponse(2);
}
void loop()
{
}
mi
restituisce Inizializzo sistema...
pinAT attivo
Scrivo comando: AT+ORGL
Con quest'altro invece
#include <NewSoftSerial.h>
int pinRX = 6;
int pinTX = 5;
int pinAT = 8;
NewSoftSerial blue(pinRX, pinTX);
int pinLed = 13;
void commandAT(char *v)
{
int i=0;
while(v[i] != '\n')
{
blue.print(v[i]);
i++;
}
blue.print('\n');
}
void readResponse()
{
int a = blue.available();
Serial.print("Caratteri disponibili: ");
Serial.println(a);
if(a > 0){
for(int i=0; i < a; i++){
char data = (char)blue.read();
Serial.print(data);
delay(100);
}
}
}
void setup()
{
blue.begin(38400);
Serial.begin(9600);
Serial.println("Inizializzo sistema...");
pinMode(pinLed, OUTPUT);
pinMode(pinAT, OUTPUT);
//Valore ALTO per switchare in modalità AT
// il 34 sull'antenna
digitalWrite(pinAT, HIGH);
Serial.println("pinAT attivo");
//Comando AT da inviare
char s[] = "AT+ROLE=2\r\n";
Serial.print("Scrivo comando: ");
Serial.print(s);
delay(50);
//Invio comando all'antenna
commandAT(s);
delay(50);
//Leggo la risposta
readResponse();
}
void loop()
{
}
Inizializzo sistema...
pinAT attivo
Scrivo comando: AT+ROLE=2
Caratteri disponibili: 0
sempre con led rosso lampeggiante e ùùma niente da fare idee? cosa sbaglio?