Différences entre versions de « Arduino HC12 »
Aller à la navigation
Aller à la recherche
Ligne 21 : | Ligne 21 : | ||
String msg; | String msg; | ||
− | int rxPin = | + | int rxPin = 5; |
− | int txPin = | + | int txPin = 6; |
int setPin = 7; | int setPin = 7; | ||
SoftwareSerial hc12(rxPin , txPin); | SoftwareSerial hc12(rxPin , txPin); |
Version du 18 octobre 2016 à 10:12
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.
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)
Partie logicielle
Envoyer un message
Voila un exemple qui, grâce à la console, permet d'envoyer et recevoir des messages.
#include <SoftwareSerial.h>
String msg;
int rxPin = 5;
int txPin = 6;
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.print(hc12.readString());
}
}