Nei progetti precedenti, ogni volta che caricavamo un codice su Arduino eravamo costretti a scollegare il Pin 0 per poi ricollegarlo a fine caricamento. Se non l'avessimo fatto l'IDE dava un errore di caricamento aspettandosi il caricamento del codice sia dalla posta USB che dal Pin 0 (RX).
Per evitare questo problema, quindi caricare il codice senza scollegare alcun Pin, possiamo inizializzare altri due Pin (ad esempio il 2 e 3 ) che svolgano la stessa funzione dei Pin 0 ed 1.
Per farlo utilizzeremo una libreria (SoftwareSerial.h) già inclusa nell'IDE di Arduino, ma in seguito vedremo come importare librerie da fonti esterne.
Occorre includere nel codice la libreria in questo modo:
#include <SoftwareSerial.h>
Si può fare sia trascrivendo l'istruzione o anche attraverso il menù Sketch dell'IDE:
Poi occorre dare un nome alla funzione che vogliamo realizzare e specificare su quali Pin deve agire.
Possiamo farlo in questo modo:
SoftwareSerial bluetooth(2, 3);
Dove bluetooth è il nome che abbiamo scelto noi, e 2 e 3 sono i Pin scelti per fungere da RX e TX di Arduino.
Questo nome sarà richiamato nei comandi
bluetooth.begin(9600) che avvia una comunicazione seriale a 9600 Bd
bluetooth.available() che verifica quando sta arrivando una comunicazione seriale
bluetooth.read() che legge i dati provenienti dalla seriale
bluetooth.println() che invia alla seriale i dati racchiusi tra le parentesi
Quindi realizziamo lo stesso circuito però collegando i Pin 2 e 3 rispettivamente al posto dei Pin 0 ed 1.
Questo è il codice che utilizza questa libreria:
Se tutto è stato svolto correttamente, attraverso lo smartphone è possibile pilotare il Led collegato al Pin 4 con le tre consuete frasi.