Internet de les coses amb ESP32 i ESP8266

Exemples Referència Plaques   Recursos CITCEA
Projectes Programació Perifèrics   Inici

Connexió sèrie per software

En alguns casos necessitem disposar de dos canals de comunicació sèrie, per exemple quan tenim sensors que es comuniquen així. En altres casos podem necessitar una via de comunicació sèrie en un microcontrolador que no la incorpora.

La biblioteca SoftwareSerial permet crear un canal sèrie sobre dues potes del microcontrolador, diferents de les del canal sèrie normal. Convé consultar quines potes del microcontrolador poden servir per a aquesta finalitat.

Per fer servir aquesta comunicació cal incloure en el programa la biblioteca corresponent:

#include <SoftwareSerial.h>

Cal definir un objecte de tipus SoftwareSerial indicant les potes de recepció (RX) i transmissió (TX).

SoftwareSerial ComSerie(2, 3);		// RX=2 TX=3

En la inicialització hem d'indicar la velocitat de comunicació. La instrucció és similar a la de la comunicació sèrie normal.

void setup() {
  Serial.begin(9600);
  ComSerie.begin(4800);
}

Podem fer servir les comandes print i println per enviar dades al nou canal, de manera semblant a com ho fem amb el canal normal.

void loop() {
	Serial.println("Port normal");
	ComSerie.println("Port software");
}

També podem fer servir el port per a lectura. Com a exemple, el següent programa comprova si un dels dos canals sèrie ha rebut dades. Si n'ha rebut, les llegeix i les escriu a l'altre canal.

void loop() {
  if (Serial.available()) {
    ComSerie.write(Serial.read());
  }
  if (ComSerie.available()) {
    Serial.write(ComSerie.read());
  }
}

 

 

 

En aquest web, les fotografies marcades amb [AF] són del web d'Adafruit, les marcades amb [SF] del web d'Sparkfun i les marcades amb [AU] del web d'Arduino.

 

 

 

 

 

 

 

 

 

 

Licencia de Creative Commons
Esta obra de Oriol Boix está licenciada bajo una licencia no importada Creative Commons Reconocimiento-NoComercial-SinObraDerivada 3.0.