Você está na página 1de 6

Strings no Arduino

Descrio
Strings de texto podem ser representadas de duas formas. Voc pode utilizar o tipo
de varivel String, que parte do Arduino desde a verso 0019, ou voc pode
fazer uma string a partir de um array de variveis do tipo char e adicionar a
terminao nula.
Este artigo descreve o ltimo mtodo. Para maiores detalhes sobre o objeto String,
que permite maiores funcionalidades (e tambm maior custo de memria), veja o
artigo mais abaixo.

Exemplos
Todas as formas abaixo so declaraes vlidas de strings.
char Str1[15];
char Str2[8] = {'a','r','d','u','i','n','o'};
char Str3[8] = {'a','r','d','u','i','n','o','\0'};
char Str4[ ] = "arduino";
char Str5[8] = "arduino";
char Str6[15] = "arduino";

Possibilidades para declarao de strings

Declare um array de caracteres (char) sem inici-lo, como feito em Str1


Declare um array de caracteres (char), com um caractere adicional, e o
prprio compilador acrescentar o caractere de terminao nula, como feito em
Str2

Adicionar explicitamente o caractere nulo, como em Str3

Inicie com uma constante de texto, contida entre aspas; o compilador vai
definir o tamanho do array de caracteres automaticamente, calculando o tamanho
da string mais o terminador nulo, conforme Str4

Inicie um array com o tamanho declarado explicitamente e uma constante


de texto entre aspas, vide: Str5

Inicie um array, deixando espao extra para strings com tamanhos maiores,
conforme Str6

Terminao Nula
Geralmente, strings so terminadas com um caractere nulo, (cdigo ASCII zero
[0]). Isto permite que funes (como a Serial.print()) conhecerem onde termina o

texto da string. Caso contrrio, essas funes continuariam a ler bytes da memria
que no fazem parte da string.
Isso significa que sua string precisa ter espao suficiente para um ou mais
caracteres alm do texto que voc deseja armazenar. por isso que a varivel Str2
e Str5 (acima) precisam de 8 caracteres, mesmo tendo a palavra arduino apenas
7 letras a ltima posio preenchida automaticamente com o caractere nulo.
Str4 ser automaticamente redimensionada para o tamanho de 8 caracteres, sendo
uma posio para o nulo. Na varivel Str3, ns declaramos explicitamente o
tamanho e adicionamos o caractere nulo ('\0') por nossa conta.
Veja que possvel ter uma string sem o caractere final nulo (por exemplo,
declarando a varivel Str2 com 7 ao invs de 8 caracteres). Isso falhar na maioria
das funes que esperam uma string para funcionar, portanto no faa isso
intencionalmente! Se voc perceber um comportamento diferente, como adio de
caracteres estranhos na sua string, este pode ser o problema.

Aspas Simples ou Duplas?


Strings sempre so definidas escrevendo-se um texto contido entre aspas duplas
(exemplo: "Abc"), e caracteres sempre so definidos escrevendo-se uma nica letra
(ou dgito, ou algum caractere da tabela ASCII), contido dentre aspas simples, ou
apstrofes (exemplo: 'A').
Quebrando strings longas
Voc pode quebrar strings assim:
char myString[] = "Um texto que comea aqui"
" e termina logo"
" ali";
Array de Strings
Quando trabalhamos com uma grande quantidade de texto, em um projeto com
display LCD, por exemplo, muito comum fazer uso de um array de strings. Como
as strings por si s so arrays de caracteres, um array de string nada mais seno
um array bi-dimensional de caracteres.
No cdigo abaixo, o asterisco aps o tipo de varivel (char*), indica que esta
varivel um array de ponteiros. Todos os arrays na realidade so ponteiros de
memria, ento este o requisito para fazer arrays de arrays. O estudo de
ponteiros uma das partes mais difceis para um iniciante, mas necessrio
entender ponteiros em detalhes, para us-los de forma efetiva aqui.

Exemplo
char* myStrings[]={"This is string 1", "This is string 2", "This is
string 3",
"This is string 4", "This is string 5","This is string 6"};
void setup(){
Serial.begin(9600);
}
void loop(){

for (int i = 0; i < 6; i++){


Serial.println(myStrings[i]);
delay(500);
}
}

Objeto String
Descrio
A classe String, parte do Arduino desde a verso 0019, nos permite utilizar e
manipular strings de texto de uma maneira mais completa aos arrays de
caracteres. Voc pode concatenar textos, adicionar trechos de texto, pesquisar
expresses no texto e substituir trechos, e muito mais. Consome mais memria que
um simples array de caracteres, mas muito mais til.
Para referncia, arrays de caracteres so declarados como string com o s
minsculo, e instncias da classe String so declaradas como String, com a letra
S maiscula. Repare tambm que strings constantes, especificadas por aspas
duplas, so tratadas como arrays de caracteres, e no como instncias da classe
String.

Funes

String()

charAt()

compareTo()

concat()

endsWith()

equals()

equalsIgnoreCase()

getBytes()

indexOf()

lastIndexOf()

length()

replace()

setCharAt()

startsWith()

substring()

toCharArray()

toLowerCase()

toUpperCase()

trim()

Operadores

[] (element access)

+ (concatenation)

== (comparison)

Exemplos

StringConstructors

StringAdditionOperator

StringIndexOf

StringAppendOperator

StringLengthTrim

StringCaseChanges

StringReplace

StringCharacters

StringStartsWithEndsWith

StringComparisonOperators

StringSubstring
Traduo por Renato Aloi
Original em Ingls -- http://www.arduino.cc/en/Reference/String
Postado por Renato Aloi s 15:05 Um comentrio:

Marcadores: arduino, Curso Arduino Grtis Robtica Automao Robot Micro Controlador ATMega
Variveis Funes C Constantes HIGH LOW true false pinMode digitalRead digitalWrite

sbado, 3 de dezembro de 2011

Material de Apoio do Curso Arduino (Aulas 7-8)


Pessoal,
Segue esquema eltrico da soluo apresentada nas aulas 7 e 8 do Curso Arduino:

Abaixo temos o cdigo da montagem feita na aula 8, para acionamento de um


motor, a partir de um boto:
byte BOTAO = 0;
byte MOTOR = 0;
byte PORTA_B = 10;
byte PORTA_M = 8;
void setup()
{
pinMode(PORTA_B, INPUT);
digitalWrite(PORTA_B, 1); // Liga PullUp!
pinMode(PORTA_M, OUTPUT);
digitalWrite(PORTA_M, 0); // Motor Deslig.
}
void loop()
{
BOTAO = digitalRead(PORTA_B);
if (BOTAO == 0)
{
MOTOR = !MOTOR;

digitalWrite(PORTA_M, MOTOR);
delay(500);
}
delay(1000);
}

Você também pode gostar