Tutorial Arduino e le stringhe

In questi giorni ho provato a lavorare con le stringhe e Arduino, scoprendo che non è immediato programmare utilizzando le stringhe.
Sto sviluppando uno sketch con librerie esterne e mi trovo a dover affettare una stringa e passarla ad un metodo che accetta solo valori di tipo char.

IDE Arduino 0019

Oggi è certamente più semplice di qualche mese fa, questa semplificazione è arrivara con la versione 0019 dell’IDE Arduino.
Il motivo di tale semplificazione è che da questa versione la classe String è diventata una delle librerie core.
L’amico e appassionato Gioblu ha tradotto la guida ufficiale in questo articolo.

Non mi sovrappongo al bellissimo lavoro fatto da Gioblu che ho avuto modo di conoscere all’Arduino Camp 2011 e di cui apprezzo tutto il lavoro di tutorial e guide pubblicate, ma voglio aggiungere la mia personale esperienza all’uso di questa libreria con un esempio che ho impiegato qualche giorno a realizzare:

//          012345678901
String cmd="STRINGA TEST"
char val[5];
String mystr=cmd.substring(8,11);
mystr.toCharArray(val,5);
Serial.println(val);

Nell’esempio ho voluto riportare come convertire una sringa in una variabile di tipo char, lo scopo di questo esempio è poter utilizzare due dei metodi della chasse String di Arduino per estrarre una sotto stringa della stessa, la conversione in una variabile di tipo char l’ho introdotta sia mostrare un possibile utilizzo del secondo metodo toCharArray sia perchè nel codice in cui ho dovuto eseguire questa operazione sono coinvolte delle librerie che accettano come tipo di variabili solo quelle di tipo char.

Nella prima riga ho riportato u commento con dei numeri, lo utilizzo come indice per contare i caratteri della stringa sottostante; infatti la libreria String parte sempre dall’indice 0, in questo modo posso facilmente dire che la parola TEST inizia alla posizione 8 e termina alla posizione 11. Fatta questa scoperta posso utilizzare il metodo substring come alla riga 4, nella variabile di tipo String mystr sarà contenuto il valore TEST, tuttavia questo non è sufficente perchè nel mio sketch questo valore dovrebbe essere di tipo char per cui converto mystr in val utilizzando la funzione toCharArray.

Il risultato scritto nel monitor seriale sarà TEST, di tipo char che posso quindi utilizzare nella libreria esterna con cui sto scrivendo il mio sketch.

Buon lavoro

Prima di inserire un commento, per favore, leggi il regolamento

Permanent link to this article: https://www.mauroalfieri.it/informatica/tutorial-arduino-e-le-stringhe.html

Lascia un commento

Your email address will not be published.

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.