Você está na página 1de 9

1.

4 ARMAZENANDO INFORMAÇÕES COM


VARIÁVEIS

Chegamos ao momento mais importante do nosso


capitulo, o que iremos aprender aqui vai ser usado em cerca de
99% de todos os códigos daqui pra frente.

O Arduíno possui integrado, várias memórias que são


capazes de armazenar informação. Uma variável nada mais é do
que uma ordem para o Arduíno usar um pedacinho das
memórias que ele tem disponível, pra armazenar alguma
informação que desejamos.

Mas o melhor de tudo é que, as variáveis permitem


alteração nos valores que estão dentro delas, durante a execução
do código. Nas linguagens C/C++ existem diversos tipos de
variáveis disponíveis para a utilização, veja algumas delas:

• int – Armazena um número inteiro. Ex: 256


• float – Armazena um número com casas decimais. Ex:
5.25
• long – Armazena um número muito grande. Ex:
196819819
• char – Armazena um caractere. Ex: ‘c’
• String – Armazena um texto. Ex: “Hello World”
• bool – Armazena um booleano. Ex: true

Podemos atribuir um valor pra uma variável dentro do


programa, usando o sinal de igualdade (=).

23
SINTAXE:

Tipo Nome = valor

EXEMPLO:
/*
boolean: valor verdadeiro (true) ou falso (false)
char: um caractere
byte: um byte, ou sequência de 8 bits
int: número inteiro de 16 bits com sinal (-32768 a 32767)
unsigned int: número inteiro de 16 bits sem sinal (0 a
65535)
long: número inteiro de 16 bits com sinal (-2147483648 a
2147483647)
unsigned long: número inteiro de 16 bits sem sinal (0 a
4294967295)
float: número real de precisão simples (ponto flutuante)
double: número real de precisão dupla (ponto flutuante)
String: sequência de caracteres
void: tipo vazio (não tem tipo)
*/

int numero = 15;


float numero_virgula = 15.5;
long numero_grande = 15684651841;
char caractere = 'c';
String texto = "Hello World";
bool teste = false;

void setup()
{

void loop()
{
}

Conforme eu disse acima, o valor de uma variável pode


mudar ao longo da execução de um programa, basta atribuir o
novo valor com o sinal de igual, como mostra o exemplo abaixo:

24
EXEMPLO:
//O número 15 está armazenado dentro da variável numero
int num = 15;

void setup()
{
/*A partir desse momento a variável número passa a ter
o valor 625*/
num = 625;
}

void loop()
{
}

Também é possível usar a Serial para nos mostrar qual o


valor que está armazenado dentro de uma variável. Veja o
exemplo:

EXEMPLO:
int num = 15;
float num_virgula = 15.5;
long num_grande = 15684651841;
char caractere = 'c';
String texto = "Hello World";
bool teste = false;

void setup()
{
Serial.begin(9600);

Serial.print("Numero inteiro: ");


Serial.println(num);

Serial.print("Numero com casas decimais: ");


Serial.println(num_virgula);

Serial.print("Numero muito grande: ");


Serial.println(num_grande);

Serial.print("Caractere: ");
Serial.println(caractere);

25
Serial.print("Texto: ");
Serial.println(texto);

Serial.print("booleano: ");
Serial.println(teste);

void loop()
{
}

O resultado desse código é mostrado na Figura 5:

Figura 5 – Variáveis sendo imprimidas na Serial.

OBS: Se você tentar exibir um texto com acento, ou com “ç”,


pode ser que o Arduíno não entenda e exiba alguns caracteres
sem sentido no lugar.

OBS: O valor booleano false, é equivalente a 0, assim como


o valor true é equivalente a 1.

CONTEXTO DE VARIÁVEIS

Legal, sabendo os tipos de variáveis, precisamos entender


sobre os contextos de variáveis. Dependendo da onde a variável
é declarada, pode interferir como ela será acessada durante o
programa.

26
Basicamente podemos categorizar as variáveis em 2 tipos,
sendo elas as variáveis locais e as variáveis globais.

De maneira simples, podemos entender que as variáveis,


globais podem ser acessadas de qualquer lugar do código,
independente se estão dentro das funções nativas do Arduíno,
ou em funções criadas. Dessa maneira você pode entender, quer
quando uma variável global é criada, o valor que está
armazenado dentro dela pode ser acessado de qualquer lugar.

“Variáveis globais podem ser acessadas de qualquer lugar do


programa”

EXEMPLO:
String text = "Hello World";

void setup() {
Serial.begin(9600); // inicia a Serial
Serial.println(text); // referenciando a variável global
text
}

void loop() {
Serial.println(text); // referenciando a variável global
text
delay(5000);
}

Como complemento, as variáveis locais podem ser


acessadas apenas dentro do “contexto” em que elas foram
criadas. Dessa maneira você pode criar várias variáveis locais
com o mesmo nome, desde que estejam em contextos diferentes,
isso porque elas não têm relação uma com a outra.

“Variáveis locais existem apenas dentro do contexto em que


foram criadas”
27
EXEMPLO:

void setup() {
String text = "Eu so existo dentro do setup";

Serial.begin(9600); // inicia a Serial


Serial.println(text); // referenciando a variável global
text
}

void loop() {
String text = "Eu so existo dentro do loop";
Serial.println(text); // referenciando a variável global
text
delay(5000);
}

#DEFINE E CONSTANTES

Em alguns momentos, pode ser que precisemos usar


algumas variáveis para armazenar dados estáticos. Isso pode
parecer ambíguo, “armazenar um dado estático em uma
variável”, mas deixe-me te explicar o motivo pelo qual isso é
importante.

Nesse momento você já deve entender um pouco mais


sobre a estrutura do Arduíno, e do programa.

Sabendo disso, como vimos um pouco antes, podemos


definir variáveis para armazenar valores, e que esses valores
inclusive podem ser alterados conforme o fluxo do programa.
Más além disso, podemos guardar outros tipos de informações
dentro das variáveis, como por exemplo dados de pinagens.

Como assim guardar pinagens? Digamos que você queira


acender uma lâmpada usando o Arduino, em algum momento
você vai precisar dizer na programação que você deseja usar uma

28
porta, e que ela deva trabalhar como uma saída (calma, mais a
frente vamos estudar isso a fundo). Nesse “dizer ao Arduíno que
desejamos usar uma porta” nada mais é do que uma referência
numérica, ao pino em que será feito o acionamento.

O Arduíno tem diversas portas que podem ser


manipuladas, e cada porta possui uma identificação, ou
numeração.

Ao fazermos um acionamento, podemos referenciar essa


identificação, todas as vezes que a utilizarmos. Ou melhor ainda,
podemos criar uma variável que armazena essa referência.

Para que um código seja enviado para dentro do


microcontrolador, primeiro ele precisa ser verificado por uma
espécie de “robô”, chamado de compilador. O compilador faz a
verificação do código, para saber se está tudo em ordem, e que
esse algoritmo pode ser enviado para dentro do dispositivo sem
causar problemas. (Possivelmente você vai conhecer o
compilador logo, pois é ele quem dá os avisos de erro no código).

Agora entramos na questão chave, o Arduínos possui


memorias, e isso já sabemos, porem essas memórias são
limitadas, e devemos usar de maneira inteligente.

Se você optar por usar a numeração do pino em todos os


lugares, você vai estar ocupando espaços de memória de
maneira desnecessária. E é aí que entram as variáveis.

Usando as variáveis para armazenas esses dados, o


compilador entende que não precisa repetir a mesma
informação várias e várias vezes durante o código, então ele
armazena essa informação apenas uma vez, e a partir disso usa
apenas referências a esse espaço de memória.

Usando o #define é uma mensagem clara ao compilador, de


que esse valor que está armazenado, não precisa ser repetido.

29
SINTAXE:

#define pin 10 //cria uma referência ao pino 10 chamada


pin

O mesmo vale para a utilização do const, o compilador


entende que essa é uma variável de referência, e que esse valor
não vai mudar ao longo do código.

SINTAXE:

const int pin = 8 //cria uma variável constante que


armazena o número do pino 8,

Portanto, quando são usadas as referências #define, ou


const, você está dizendo claramente ao compilador: “Estou
armazenando algo que não vai mudar ao longo do código”.

Vale deixar uma coisa bem clara, você não pode fazer
alterações nessas variáveis ao longo do programa, isso por que
quando seu código foi enviado ao microcontrolador, ele entende
que esse tipo de variável só pode ser lida em outras partes do
programa, e não pode ser modificada.

30
EXERCÍCIO 2

Construa um algoritmo que receba incialmente os


seguintes valores para as variáveis:

• dolar = 5.23;
• nome = “Harv”;
• alarme = false;

Faça com que essas variáveis sejam printadas na serial com a


seguintes Strings:

• “Cotação do Dolar e: “
• “Meu nome e: “
• “O status do alarme e: “

Após exibir essas 3 variáveis em tela, substitua ainda


dentro do mesmo código, a variável dolar para a cotação atual do
dolar no dia que você estiver executando, a variável nome para
seu nome, e a variável alarme para true.

Clique AQUI para ter acesso ao exercício resolvido.


31

Você também pode gostar