Arduino HC12

De The Linux Craftsman
Révision datée du 17 octobre 2016 à 20:39 par Jc.forton (discussion | contributions) (Page créée avec « = Partie électronique = == Le composant == Le HC12 existe utilise le contrôleur TI C1101 auquel à été ajouté un contrôleur UART qui permet de transmettre des inform... »)
(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à la navigation Aller à la recherche

Partie électronique

Le composant

Le HC12 existe utilise le contrôleur TI C1101 auquel à été ajouté un contrôleur UART qui permet de transmettre des informations en utilisant un port série.

HC12.png
TI C1101 sur platine HC12

Le HC12 intègre un contrôleur qui permet de modifier la puissance d'émission, le canal, la vitesse de modulation, de la mettre en mode veille, etc...

Le montage

Le montage suivant utilise 5 fils : 2 pour l'alimentation, 1 pour le paramétrage (SET) et 2 pour le port série (Rx et Tx)

HC12 diagram.png

Partie logicielle

Envoyer un message

Voila un exemple qui affiche le nombre de périphériques et qui récupère la température du premier

#include <SoftwareSerial.h>

String msg;
int rxPin = 6;
int txPin = 5;
int setPin = 7;
SoftwareSerial hc12(rxPin , txPin);

void setup() {
  pinMode(setPin,OUTPUT);
  // passage en mode commande
  digitalWrite(setPin,LOW);
  Serial.begin(9600);
  hc12.begin(9600);
  // Passage du module sur le canal 1, en 9600bps et à 20dBm
  hc12.print(F("AT+DEFAULT"));
  // Délais pour que le module traite la commande 
  delay(100);
  // passage en mode transparent
  digitalWrite(setPin,HIGH);
}

void loop() {
  if(Serial.available()){
    msg = Serial.readString();
    Serial.print(F("SND : "));
    Serial.println(msg);
    hc12.print(msg);
  }
  if(hc12.available()){
    Serial.print(F("RCV : "));
    Serial.write(hc12.readString());
  }
}