Você está na página 1de 7

Variveis do Arduino

Variveis
Uma varivel uma forma de nomear e guardar um valor para usar depois pelo
programa, como dados de um sensor, ou ainda, um valor intermedirio de um
clculo.

Declarando Variveis
Antes de serem utilizadas, as variveis devem ser declaradas. Declarar uma
varivel significa definir seu tipo, e opcionalmente, configurar um valor inicial
(iniciar a varivel). Variveis no precisam ser iniciadas (conferidas um valor)
quando estas so declaradas, mas muitas vezes se faz til.
int inputVariable1; // iniciando varivel
int inputVariable2 = 0;
// iniciando e atribuindo valor
Programadores devem considerar o tamanho dos nmeros que desejam guardar,
escolhendo o tipo da varivel. Variveis sobrecarregam quando o valor excede o
espao designado para guard-lo. Veja abaixo por exemplo.

Escopo da Varivel
Outra escolha importante que os programadores enfrentam onde declarar as
variveis? O lugar especfico que as variveis so declaradas influencia como vrias
funes do programa aenxergaro. Isto chamado de escopo.

Iniciando Variveis
Variveis devem ser iniciadas (designadas um valor) no momento que elas so
declaradas ou depois. sempre uma boa prtica de programao verificar que uma
varivel tenha dados vlido dentro dela, antes de ser utilizada.
Exemplo:
int calibrationVal = 17; // declara calibrationVal e configura seu
valor
// inicial

Sobrecarga da Varivel
Quando variveis tm seu valor excedido pela capacidade mxima do seu tipo, elas
sobrecarregam e voltam para seu valor mnimo. Isto acontece em ambas direes.
int x
x = -32,768;
x = x - 1;
// x contm 32,767 - sobrecarrega na direo
negativa
x = 32,767;
x = x + 1;
// x contm -32,768 sobrecarrega

Usando Variveis

Uma vez que variveis tenham sido declaradas, elas podem ser usadas
configurando a varivel para o valor que se deseja armazenar, atravs do operador
de atribuio (um sinal de igual). O operador de atribuio diz ao programa para
atribuir o que estiver do lado direito do sinal de igual, dentro da varivel que deve
ficar do lado esquerdo do sinal de igual.
inputVariable1 = 7;
// configura varivel chamada
inputVariable1
// atribuindo o valor 7
inputVariable2 = analogRead(2); // configura varivel chamada
inputVariable2
// atribuindo a voltagem lida de uma porta
// analgica 2

Exemplos
int lightSensVal;
char currentLetter;
unsigned long speedOfLight = 186000UL;
char errorMessage = {"escolha outra impresso"}; // vide: string
Uma vez que a varivel tenha sido configurada (conferida um valor), voc pode
testar seu valor para verificar se atende determinada condio, ou usar seu valor
diretamente. Por exemplo, o cdigo a seguir testa se o valor da varivel
inputVariable2 menor que 100, ento configurando um atraso (delay) baseado no
valor de inputVariable2, que no mnimo 100.
if (inputVariable2 < 100)
{
inputVariable2 = 100;
}
delay(inputVariable2);
Este exemplo mostra todas as trs operaes teis que se pode fazer com
variveis. Ele testa a varivel (if (inputVariable2 < 100)), configura o valor 100
caso o teste tenha passado (inputVariable2 = 100), e utiliza o valor armazenado
na varivel como parmetro de entrada na funo delay (delay(inputVariable2)).
Nota de Estilo: Voc deve nomear suas variveis descrevendo as caractersticas
do valor guardado, para fazer o cdigo ficar mais agradvel de ler. Nomes de
variveis como tiltSensor oupushButton te ajudam (ou a qualquer um que esteja
lendo seu cdigo) a entender o que a varivel representa.
Voc pode nomear uma varivel com qualquer palavra que voc quiser, desde que
no sejam as reservadas do Arduino (link para palavras reservadas). Evite nomes
que comecem com nmeros.

Alguns Tipos de Variveis

char

byte

int

unsigned int

long

unsigned long

float

double

Escopo das Variveis


Variveis na linguagem C, que o Arduino usa, tem uma caracterstica conhecida
por escopo. Isto um contraste com linguagens como BASIC que qualquer varivel
uma varivelglobal.
Uma varivel global uma que pode ser vista por qualquer funo dentro de um
programa. Variveis locais so apenas visveis para a funo na qual foram
declaradas. No ambiente do Arduino, qualquer varivel declarada fora de uma
funo (ex. setup, loop, etc.), considerada uma varivel global.
Quando programas comeam a ficar grandes e mais complexos, variveis locais so
teis para garantir que apenas uma funo ter acesso apenas as suas prprias
variveis. Isso evita erros de programao quando uma funo inadvertidamente,
modifica o valor de variveis utilizadas por outra funo.
Algumas vezes til declarar e iniciar uma varivel interna para um lao (loop).
Assim criamos uma varivel que possa apenas ser acessada na parte interna das
chaves {} do lao-for.

Exemplo:
int gPWMval;

// qualquer funo acessa essa varivel

void setup()
{
// ...
}
void loop()
{
int i;
// "i" apenas "visvel" dentro da funo "loop"
float f; // "f" apenas "visvel" dentro da funo "loop"
// ...
for (int j = 0; j <100; j++){
// varivel j pode ser apenas
// acessada dentro das chaves do lao-for
}
}
Traduo: Renato Aloi
Original em Ingls:http://arduino.cc/en/Reference/VariableDeclaration
http://arduino.cc/en/Reference/scope

Postado por Renato Aloi s 15:44 3 comentrios:


Marcadores: Curso Arduino Grtis Robtica Automao Robot Micro Controlador ATMega Variveis
Funes C

quinta-feira, 3 de novembro de 2011

Funes do Arduino
Segmentar o cdigo em funes possibilita ao programador criar partes modulares,
que desempenham tarefas bem definidas, e ento retornam para a rea do cdigo
a partir de onde foram chamadas. O caso tpico de criao de uma funo quando
existe a necessidade de executar a mesma tarefa diversas vezes durante um
programa.
Para programadores acostumados ao BASIC, funes do Arduino fornecem (e
estendem) a utilidade do uso das subrotinas (GOSUB em BASIC).
Padronizar fragmentos de cdigo em funes tem vrias vantagens:

Funes ajudam o programador permanecer organizado, muitas vezes, isso


ajuda a montar o conceito do programa.

Funes codificam a tarefa em um nico lugar, para que a funcionalidade


seja pensada e depurada uma nica vez.

As chances de erros em modificaes reduzem drasticamente, no caso do


cdigo precisar ser alterado.

Funes reduzem o tamanho dos Sketches (projetos criados na IDE do


Arduino, do ingls: rascunhos), pois sees de cdigo podem ser reutilizadas
diversas vezes.

Elas tambm tornam mais fcil reutilizar cdigo, tornando-o mais modular, e
com um efeito colateral benfico: fica mais agradvel de ler o cdigo.
Existem duas funes mandatrias nos Sketches do Arduino: setup() e loop().
Outras funes podem ser criadas fora das chaves ({}) dessas duas funes. Como
um exemplo, vamos criar uma funo simples para multiplicar dois valores.

Exemplo

Para chamar nossa funo simples de multiplicao, ns passamos os parmetros


do tipo de dados que a funo est esperando:
void loop{
int i = 2;
int j = 3;
int k;
k = myMultiplyFunction(i, j); // k now contains 6
}
Nossa funo precisa ser declarada fora de qualquer outra funo, ento
MinhaFuncaoMultiplicar() pode ficar tanto acima quanto abaixo da funo principal
loop().
O cdigo completo deve ficar parecido com isto:
void setup(){
Serial.begin(9600);
}
void loop() {
int i = 2;
int j = 3;
int k;
k = myMultiplyFunction(i, j); // k now contains 6
Serial.println(k);
delay(500);
}
int myMultiplyFunction(int x, int y){
int result;
result = x * y;
return result;
}

Outro exemplo
Esta funo abaixo far a leitura de um sensor, cinco vezes, utilizando a funo
analogRead(); calculando a mdia das cinco leituras. Ela tambm converte os dados
da leitura para 8 bits (0-255), e a inverte, invertendo assim a sada.
int ReadSens_and_Condition(){
int i;
int sval = 0;
for (i = 0; i < 5; i++){
sval = sval + analogRead(0);
}
sval = sval / 5;

// mdia

// sensor na porta analgica 0

sval = sval / 4;
sval = 255 - sval;
return sval;

// converte para 8 bits (0 - 255)


// inverte a sada

}
Para chamar a funo, ns apenas fazemos a atribuio para uma varivel.
int sens;
sens = ReadSens_and_Condition();

Você também pode gostar