Arduino HC-12

Ciao a tutti , ho un problema , voglio far comunicare due Arduino con due moduli HC-12 , penso che i collegamenti siano fatti correttamente perché mi succede questo , allora attivo l Arduino trasmittente , attivo l Arduino ricevente collegato al PC cosi da poter stampare nella seriale il risultato per vedere cosa riceve , parte funziona tutto riceve correttamente , questo per 1 minuto poi si blocca e non riceve più niente,
stacco tutto riattacco e non funziona , ci riprovo la sera senza cambiare niente e riparte sempre per poco meno di 1 minuto poi si ri-blocca...
ho provato ad usare i comandi AT per impostare entrambi nel Canale 1 ma non cambia niente , inoltre dopo i comandi AT in teoria l HC-12 dovrebbe rispondermi OK nella seriale invece non ritorna niente .
I collegamenti li ho fatti banali , senza condensatori o resistenze .
posto i due codici arduino , mi date una mano ??????

***** TRASMITTENTE ********
#include <SoftwareSerial.h>

//definisco pin RX e TX da Arduino verso modulo Radio
#define RADIO_TX_PIN 9                   //Dig Pin TX Radio
#define RADIO_RX_PIN 10                  // Dig Pin RX Radio
#define boudrateRadio 9600
#define boudrateSerial 115200


SoftwareSerial serialRadio(RADIO_TX_PIN, RADIO_RX_PIN); // RX, TX ARDUINO TX RX Radio

String commands;
void setup() {
  // define pin modes for tx, rx:
  pinMode(RADIO_TX_PIN, INPUT);
  pinMode(RADIO_RX_PIN, OUTPUT);
  pinMode(11,OUTPUT);
  serialRadio.begin(9600);
  digitalWrite(11, LOW); // enter AT command mode
  serialRadio.print(F("AT+C001"));
  delay(100);
  digitalWrite(11, HIGH); // enter transparent mode
}

void loop() {
  //
  commands="@1000|1000|1000|0|0|0|0|0|100|100|!";
  serialRadio.print(commands);
  delay(5000);
  //
}

***** RICEVENTE ********

#include <SoftwareSerial.h>

//definisco pin RX e TX da Arduino verso modulo Radio
#define RADIO_TX_PIN 10                   //Dig Pin TX Radio
#define RADIO_RX_PIN 9                  // Dig Pin RX Radio

#define boudrateSerial 115200
#define boudrateRadio 9600

String commands;
char recivebite;
bool endtrx;
char messageReceived[10]; 

SoftwareSerial serialRadio(RADIO_TX_PIN, RADIO_RX_PIN); // RX, TX ARDUINO TX RX Radio

void setup() {
  // define pin modes for tx, rx:
  pinMode(RADIO_TX_PIN, INPUT);
  pinMode(RADIO_RX_PIN, OUTPUT);
  pinMode(11,OUTPUT);

  Serial.begin(boudrateSerial);
  Serial.println("Serial monitor available... OK");
  Serial.print("Serial link available... ");
  serialRadio.begin(boudrateRadio);
  if (serialRadio.isListening()) {
    Serial.println("OK");
  } else {
    Serial.println("NOK");
  }
  //test HC-12
  Serial.print("HC-12 available... ");
  digitalWrite(11, LOW); // enter AT command mode
  serialRadio.print(F("AT+C001"));
  delay(100);
  digitalWrite(11, HIGH); // enter transparent mode
  while (serialRadio.available()) {
    Serial.write(serialRadio.read());
  }
  Serial.println();
  Serial.println("initialization done.");
  //
  endtrx=false;
  //
  messageReceived[0]='M';
  messageReceived[1]='A';
  messageReceived[2]='T';
  messageReceived[3]='T';
  messageReceived[4]='E';
  messageReceived[5]='O';
}

void loop() {
  //
  while ((serialRadio.available()>0) && (!endtrx)) {
    recivebite=char(serialRadio.read());
//    Serial.print(recivebite);
//    delay(10);    
    if(recivebite=='@')
    {
      commands="";
      endtrx=false;
      }else
      {
        if(recivebite=='!')
        {
          endtrx=true;
        }else
        {
          commands += recivebite;
        }
      }
  }
  //
  if(endtrx)
  {
    Serial.println("");
    if(commands.length()==33)
    {
      Serial.println(commands+"OK");
    }else
    {
      Serial.println(commands+"NO");
      }
  }
  commands="";
  endtrx=false;
  delay(50);                            // Wait for a while
}

ti ricordo che in conformità al regolamento, punto 7, devi editare il tuo post (quindi NON scrivendo un nuovo post, ma utilizzando il bottone More -> Modify che si trova in basso a destra del tuo post) e racchiudere il codice all'interno dei tag CODE (... sono quelli che in edit inserisce il bottone con icona fatta così: </>, tutto a sinistra).

In pratica, tutto il tuo codice dovrà trovarsi racchiuso tra due tag: [code] _il _tuo_ codice_ [/code] così da non venire interpretato e non dare adito alla formazione di caratteri indesiderati o cattiva formattazione del testo. Grazie. :slight_smile:

nid69ita

ok fatto
:slight_smile:
Comunque risolto erano i contatti saldati male di un HC-12 , ho fatto varie prove ad invertirli ed ora funzionano correttamente .