Arduino – Conexiune software serial
Autor: Viorel -01/06/2010-
Platforma Arduino are disponibili 2 pini pentru comunicare in mod serial (pinul 0 si 1 din zona pinilor digitali – RX si TX). Acesti pini sunt cuplati la un dispozitiv hardware care se ocupa de partea de comunicare seriala.
In cadrul acestui proiect voi prezenta o modalitate de a replica functionalitatea de comunicare seriala utilizand oricare alti doi pini digitali ai platformei Arduino. Acest lucru poate fi util atunci cand interfata seriala este ocupata cu un alt dispozitiv (de exemplu am nevoie sa ma conectez la Internet prin GPRS utilizand un modul GMS / GPRS dar in acelasi timp vreau sa utilizez un ecran LCD cu conectare seriala).
Articole precedente
- Componente : Ecran LCD alfanumeric cu conectare seriala
- Tutorial : Arduino – primul pas
Lista de piese
- conecteaza ecranul LCD la platforma Arduino prin 4 fire, la pinii 0 si 1 (RX si TX)
Acest pas este util ca test, ca sa fim siguri ca pinii sunt conectati corect. Astfel, la pasul urmator vom muta doar cele doua fire din RX si TX la doi pini digitali.
Pentru simplitate, eu voi utiliza si un cablu pentru conectare seriala cu 4 fire (pentru a conecta cele 4 fire mai simplu).
Conexiunile descrise mai jos sunt valabile cu conditia ca sa conectam cablul cu 4 fire la ecranul LCD ca in poza de mai jos (cu partea pe care se vad pinii metalici in jos).
Conecteaza apoi pinii cablului prin fire de cupru la platforma Arduino, astfel :
firul verde la GND
firul galben la 5 V
firul negru la TX
firul rosu la RX
- incarca pe Arduino programul de mai jos (copiat din articolul despre ecranul LCD cu conectare seriala)
(daca ai nevoie sa-ti aduci aminte despre incarcarea unui program pe Arduino, poti vedea aici).
void setup() {
Serial.begin(9600);
}
void loop(){
Serial.print("$CLEAR\n\r");
Serial.print("$GO 1 1\n\r");
Serial.print("$PRINT tehnorama.ro\n\r");
delay(10000);
}
Vei vedea pe ecranul LCD textul “tehnorama.ro”. Daca nu se intampla asa, cel mai probabil pinii nu sunt conectati corect.
- cupleaza firul din TX la pinul digital 9 si firul din RX la pinul digital 8
Acum ca totul este in regula si avem o confirmare a faptului ca ecranul LCD functioneaza atunci cand il conectam la pinii serial hardware, punem trece la partea de comunicare seriala software.
- incarca pe Arduino programul de mai jos, care implementeaza partea de comunicare seriala
#include "SoftwareSerial.h"
#define rxPin 8
#define txPin 9
SoftwareSerial mySerial = SoftwareSerial(rxPin, txPin);
void setup() {
pinMode(rxPin, INPUT);
pinMode(txPin, OUTPUT);
mySerial.begin(9600);
}
void loop(){
mySerial.print("$CLEAR\n\r");
mySerial.print("$GO 1 1\n\r");
mySerial.print("$PRINT tehnorama.ro\n\r");
delay(1000);
}
In rezumat
Ai nevoie de :
* o platforma Arduino (disponibila la robofun.ro)
* un cablu cu 4 fire pentru conectare seriala (disponibil la robofun.ro) (optional)
* un ecran LCD alfanumeric cu conectare seriala (disponibila la robofun.ro)
Prin acest proiect am demonstrat o modalitate de comunicare seriala care nu utilizeaza pinii TX si RX pentru comunicare seriala hardware, ci oricare alti doi pini digitali ai Arduino. In acest mod pot avea la dispozitie mult mai multe porturi pentru comunicare seriala, utile in cazul in care am deja ocupat portul hardware.
serial















Arduino – Conectare la Internet prin GPRS « Tehnorama
June 2nd, 2010
[...] citita de pe site-ul web voi utiliza un ecran LCD cu conectare seriala pe care il voi conecta pe o conexiune seriala de tip software (dat fiind ca deja conexiunea hardware este ocupata de modulul [...]
cristiionut
June 9th, 2010
Asa se inmultesc pinii Tx si Rx? sau daca sunt definiti pe alti pini, cei de baza se anuleaza?
Viorel
June 10th, 2010
Exact, in felul asta poti avea oricat de multi pini RX si TX doresti. Cei de baza raman functionali, ii poti folosi in acelasi timp. Spre exemplu, pentru proiectul cu LCD si GPRS ( http://www.tehnorama.ro/arduino-conectare-la-internet-prin-gprs ) eu am avut nevoie de pinii de baza RX si TX (cei hardware ) pentru comunicarea cu dispozitivul GSM, si atunci am definit pini software RX si TX pentru ecranul LCD. Atat cei software cat si cei hardware au functionat in acelasi timp.
Componente: Ecran LCD cu conectare seriala tip Sparkfun « Tehnorama
July 29th, 2010
[...] acest exemplu am folosit o conexiune de tip SoftwareSerial , conectata pe pinul digital 7. Alternativ, as fi putut ca pur si simplu sa conectez firul de [...]