21
Gleykson Henrique Norte de Macedo A estrutura básica da linguagem de programação do Arduino é bastante simples; ela é formada por dois blocos de funções que carregam outros blocos de funções escritas em linguagem C/C++. O primeiro bloco de funções forma a função setup( ) ; o segundo ,a função loop ( ). Funções: Em linguagens de programação são como sub-rotinas ou procedimentos; são pequenos blocos de programas usados para monta o programa principal. Elas são escritas pelo programador para realizar tarefas repetitivas, ou pode ser importadas prontas para o programa em forma de bibliotecas. setup ( ) : Essa é a primeira função a ser chamada quando o programa inicia. E é executada apenas nessa primeira vez. Esta é uma função de preparação: ela dita o comportamento dos pinos do Arduino e inicializa a porta serial. Loop ( ): A função é chamada logo a seguir e todas as funções embarcadas nela são repetidamente executadas. Ela fica lendo os pinos de entrada do Arduino e comanda os pinos de saída e a porta serial. Exemplo: // ações são realizadas nas funções "Setup" e "Loop" // Mas nenhuma informação é comunicada ao programa maior void setup () { // ... } void loop () { // ... }

Baja Arduino

Embed Size (px)

Citation preview

Gleykson Henrique Norte de Macedo

A estrutura básica da linguagem de programação do Arduino é bastante simples; ela é

formada por dois blocos de funções que carregam outros blocos de funções escritas em

linguagem C/C++.

O primeiro bloco de funções forma a função setup( ) ; o segundo ,a função loop ( ).

Funções: Em linguagens de programação são como sub-rotinas ou procedimentos; são

pequenos blocos de programas usados para monta o programa principal. Elas são

escritas pelo programador para realizar tarefas repetitivas, ou pode ser importadas

prontas para o programa em forma de bibliotecas.

setup ( ) : Essa é a primeira função a ser chamada quando o programa inicia. E é

executada apenas nessa primeira vez. Esta é uma função de preparação: ela dita o

comportamento dos pinos do Arduino e inicializa a porta serial.

Loop ( ): A função é chamada logo a seguir e todas as funções embarcadas nela são

repetidamente executadas. Ela fica lendo os pinos de entrada do Arduino e comanda os

pinos de saída e a porta serial.

Exemplo:

// ações são realizadas nas funções "Setup" e "Loop"

// Mas nenhuma informação é comunicada ao programa maior

void setup ()

{

// ...

}

void loop ()

{

// ...

}

Pinmode: Configura o pino especificado se comportar tanto como uma entrada ou uma

saída. Veja a descrição dos pinos digitais para obter detalhes sobre a funcionalidade dos

pinos.

A partir do Arduino 1.0.1, é possível ativar os resistores pull-up internas com a

INPUT_PULLUP modo. Além disso, o modo de entrada desativa explicitamente os pullups

internos.

Exemplo:

int ledPin = 13; // LED conectado ao pino digital 13

void setup ()

{

pinMode (ledPin, OUTPUT); // define o pino digital como saída

}

void loop ()

{

digitalWrite (ledPin, HIGH); // define o LED

atraso (1000); // aguarda uma segunda

digitalWrite (ledPin, LOW); // define o LED

atraso (1000); // aguarda uma segunda

}

Digitalread: Lê o valor de um pino digital especificado, ou ALTA ou BAIXA .

Exemplo:

Define o pino 13 para o mesmo valor que o pino 7, declarada como uma entrada.

int ledPin = 13; // LED conectado ao pino digital 13

int inPin = 7; // botão conectado ao pino digital 7

int val = 0; // variável para armazenar o valor lido

void setup ()

{

pinMode (ledPin, OUTPUT); // define o pino digital 13 como saída

pinMode (inPin, INPUT); // define o pino digital 7 como entrada

}

void loop ()

{

val = digitalRead (inPin); // ler o pino de entrada

digitalWrite (ledPin, val); // define o LED para o valor do botão

}

digitalwrite: Escreva uma ALTA ou BAIXA valor a um pino digital.

Se o pino foi configurado como uma saída com pinMode (), a tensão será definido como o

valor correspondente: 5V (ou em placas de 3.3V 3.3V) em alta, 0V (terra) para LOW.

Se o pino é configurado como um INPUT, digitalWrite () irá permitir (HIGH) ou desabilitar

(baixo) o pull-up interno no pino de entrada. Recomenda-se a definir o pinMode ()

para INPUT_PULLUP para habilitar o resistor de pull-up interno.

Exemplo

int ledPin = 13; // LED conectado ao pino digital 13

void setup ()

{

pinMode (ledPin, OUTPUT); // Ajusta o pino de saída digital como

}

void loop ()

{

digitalWrite (ledPin, HIGH); // Define o LED

delay (1000); // Aguarda uma segunda

digitalWrite (ledPin, LOW); // Define o LED

delay (1000); // Aguarda uma segunda

}

Analogreference: Configura a tensão de referência utilizada para a entrada analógico

(isto é, o valor utilizado como a parte superior do intervalo de entrada). As opções são:

PADRÃO: a referência analógica padrão de 5 volts (em placas de 5V do Arduino) ou 3,3

volts (em placas Arduino 3.3V)

INTERNO: um built-in de referência, igual a 1,1 volts no ATmega168 ou ATmega328 e

2,56 volts na ATmega8 (não disponível no Arduino mega)

INTERNAL1V1: uma referência 1.1V built-in (Arduino mega só)

INTERNAL2V56: um built-in 2.56V de referência (Arduino mega só)

EXTERNO: a tensão aplicada ao pino AREF (0 a apenas 5 V) é usado como a referência.

Analogread: Lê o valor do pino analógico especificado. A placa Arduino contém um 6 canais (8 canais no Mini e Nano, 16 na mega), 10-bit conversor analógico-digital. Isso sig-nifica que ele irá mapear tensões de entrada entre 0 e 5 volts em valores inteiros entre 0 e 1023 Isso gera uma resolução entre as leituras de: 5 volts / 1024 unidades, ou 0,0049 volts (4,9 mV) por unidade. O alcance ea resolução de entrada pode ser alterada utilizan-do analogReference ().

Demora cerca de 100 microssegundos (0,0001 s) para ler uma entrada analógica, então a

taxa máxima de leitura é de cerca de 10 mil vezes por segundo.

Exemplo:

int analogPin = 3; // do potenciômetro (terminal central) ligado ao pino analógico 3

// Exterior leva ao chão e + 5V

int val = 0; // variável para armazenar o valor lido

void setup ()

{

Serial começar (9600);. // Série de configuração

}

void loop ()

{

val = analogRead (analogPin); // ler o pino de entrada

. Serial println (val); // valor de depuração

}

Analogwrite : Grava um valor analógico ( onda PWM ) a um pino. Pode ser usado para

acender um LED em diferentes brilhos ou acionar um motor em várias velocidades. Após

uma chamada para analogWrite (), o pino irá gerar uma onda quadrada constante do ciclo

de trabalho especificado até a próxima chamada para analogWrite () (ou uma chamada

para digitalRead () oudigitalWrite () no mesmo pino). A frequência do sinal PWM na maio-

ria dos pinos é de aproximadamente 490 Hz. Nas placas Uno e similares, pinos 5 e 6 têm

uma freqüência de cerca de 980 Hz. Pinos 3 e 11 sobre o Leonardo também executar em

980 Hz.

Na maioria das placas Arduino (aqueles com os ATmega168 ou ATmega328), essa fun-

ção funciona nos pinos 3, 5, 6, 9, 10 e 11 No Arduino Mega, que funciona nos pinos 2-13

e 44 - 46 Older Arduino placas com um ATmega8 suportam apenas analogWrite () nos

pinos 9, 10 e 11.

O Arduino Devido suporta analogWrite () nos pinos 2 a 13, além de pi-

nos DAC0 e DAC1. Ao contrário dos pinos PWM,DAC0 e DAC1 são de digital para analó-

gico, e agir saídas analógicas como verdadeiros.

Você não precisa chamar pinMode () para definir o pino como uma saída antes de chamar

analogWrite ().

A função analogWrite não tem nada a ver com os pinos analógicos ou a fun-

ção analogRead.

Exemplo:

Define a saída para a proporcional LED para o valor lido do potenciômetro.

Int ledPin = 9; // LED conectado ao pino digital 9

int analogPin = 3; // potenciômetro conectado ao pino analógico 3

int val = 0; // variável para armazenar o valor lido

void setup ()

{

pinMode (ledPin, OUTPUT); // define o pino como saída

}

void loop ()

{

val = analogRead (analogPin); // ler o pino de entrada

analogWrite (ledPin, val / 4); // analogRead valores vão de 0 a 1023, os valores analo-

gWrite 0-255

}

Delay: Interrompe o programa para a quantidade de tempo (em milisegundos) especifica-

do como parâmetro. (Existem 1.000 milissegundos em um segundo.)

Exemplo:

int ledPin = 13; // LED conectado ao pino digital 13

void setup ()

{

pinMode (ledPin, OUTPUT); // define o pino digital como saída

}

void loop ()

{

digitalWrite (ledPin, HIGH); // define o LED

atraso (1000); // aguarda uma segunda

digitalWrite (ledPin, LOW); // define o LED

atraso (1000); // aguarda uma segunda

Mills ( ) : Retorna o número de milissegundos desde a placa Arduino começou a executar

o programa atual. Este número vai transbordar (voltar para zero), após cerca de 50 dias.

Exemplo

longo período de tempo sem assinatura;

void setup ()

{Serial.begin (9600);

}

Void loop () {

Serial.print ("Time:");

tempo = Millis (); // Imprime o tempo desde que o programa começou Serial.println (tem-

po); // Espere um segundo, de modo a não enviar grandes quantidades de dados delay

(1000); }

Bibliotecas : O ambiente Arduino pode ser estendido através da utilização de bibliotecas,

assim como a maioria das plataformas de programação. As bibliotecas proporcionam fun-

cionalidade extra para uso em esboços, por exemplo, trabalhar com hardware ou manipu-

lação de dados. Um número de bibliotecas vêm instalados com o IDE, mas você também

pode fazer o download ou criar o seu próprio. Veja as instruções para obter detalhes so-

bre a instalação de bibliotecas. Há também um tutorial sobre como escrever suas próprias

bibliotecas .

Consulte o Guia de Estilo API para obter informações sobre como fazer uma boa API Ar-

duino estilo para a sua biblioteca.

Para usar uma biblioteca em um esboço, selecione-o esboço> Import Library.

Bibliotecas Padrão

EEPROM - leitura e escrita para armazenamento "permanente"

Ethernet - para conexão com a internet usando o Arduino Ethernet Shield

Firmata - para se comunicar com os aplicativos no computador, utilizando um protocolo

serial padrão.

GSM - para conectar a uma rede / GRPS GSM com o escudo GSM.

LiquidCrystal - para controlar telas de cristal líquido (LCDs)

SD - para ler e escrever cartões SD

Servo - para controlar servo motores

SPI - para se comunicar com dispositivos que utilizam a Interface Periférica Serial (SPI)

Bus

SoftwareSerial - para comunicação serial em qualquer pinos digitais. Versão 1.0 e poste-

rior do Arduino incorporar Mikal Hartbiblioteca NewSoftSerial 's como SoftwareSerial.

Stepper - para controlar motores de passo

TFT - para o desenho de texto, imagens e formas na tela do Arduino TFT

WiFi - para se conectar à internet usando o escudo Arduino WiFi

Fio - Dois Fios Interface (TWI / I2C) para enviar e receber dados através de uma rede de

dispositivos ou sensores.

As bibliotecas de Matrix e Sprite não fazem mais parte da distribuição do núcleo.

# include : é usado para incluir bibliotecas externas em seu esboço. Isto dá o acesso

programador para um grande grupo de bibliotecas padrão C (grupos de funções pré-

fabricados), e também bibliotecas escrito especialmente para Arduino.

Exemplo:

Este exemplo inclui uma biblioteca que é utilizado para colocar os dados na memó-

ria flash espaço programa, em vez decarneiro. Isso economiza o espaço de memória

RAM para as necessidades de memória dinâmica e faz grandes tabelas de pesquisa mais

prática.

# include <avr / pgmspace.h>

myConstants prog_uint16_t [] PROGMEM = {0, 21140, 702, 9128, 0, 25764, 8456,

0,0,0,0,0,0,0,0,29810,8968,29762,29762,4500};

#define: É um componente útil C que permite que o programador para dar um nome a um

valor constante antes do programa ser compilado. Constantes definidas na arduino não

ocupam qualquer espaço de memória programa no chip.O compilador irá substituir as re-

ferências a essas constantes com o valor definido em tempo de compilação.

Isto pode ter alguns efeitos colaterais indesejados que, se, por exemplo, um nome cons-

tante que tinha sido #defined está incluído em qualquer outro nome constante ou variá-

vel. Nesse caso, o texto poderia ser substituído pelo número #defined (ou texto).

Em geral, o const palavra-chave é a preferida para as constantes que definem e deve ser

utilizado em vez de #define.

Arduino define têm a mesma sintaxe de C define:

Exemplo:

#define ledPin 3

// O compilador irá substituir qualquer menção de ledPin com o valor 3 em tempo de

compilação.

LiquidCrystal.h : Esta biblioteca permite que uma placa Arduino para controlar

exibe LiquidCrystal (LCD) com base na Hitachi HD44780(ou compatível) chipset, que é

encontrado na maioria dos LCDs baseadas em texto. A biblioteca funciona com no modo

de 4 ou 8 bits (isto é, usando quatro ou oito linhas de dados para além das rs, permitir, e,

opcionalmente, as linhas de controlo rw).

Variáveis: Uma variável é uma forma de nomear e guardar um valor para usar

depois pelo programa, como dados de um sensor, ou ainda, um valor intermediário

de um cálculo.

Declarando Variáveis

Antes de serem utilizadas, as variáveis devem ser declaradas. Declarar uma variável

significa definir seu tipo, e opcionalmente, configurar um valor inicial (iniciar a variável).

Variáveis não precisam ser iniciadas (conferidas um valor) quando estas são declaradas,

mas muitas vezes se faz útil.

int inputVariable1; // iniciando variável

int inputVariable2 = 0; // iniciando e atribuindo valor

Programadores devem considerar o tamanho dos números que desejam guardar,

escolhendo o tipo da variável. Variáveis sobrecarregam quando o valor excede o espaço

designado para guardá-lo. Veja abaixo por exemplo.

Escopo da Variável

Outra escolha importante que os programadores enfrentam é onde declarar as variáveis?

O lugar específico que as variáveis são declaradas influencia como várias funções do

programa aenxergarão. Isto é chamado de escopo.

Iniciando Variáveis

Variáveis devem ser iniciadas (designadas um valor) no momento que elas são

declaradas ou depois. É sempre uma boa prática de programação verificar que uma

variável tenha dados válido dentro dela, antes de ser utilizada.

Exemplo:

int calibrationVal = 17; // declara calibrationVal e configura seu valor

// inicial

Sobrecarga da Variável

Quando variáveis têm seu valor excedido pela capacidade máxima do seu tipo, elas

sobrecarregam e voltam para seu valor mínimo. Isto acontece em ambas direções.

int x

x = -32,768;

x = x - 1; // x contém 32,767 - sobrecarrega na direção negativa

x = 32,767;

x = x + 1; // x contém -32,768 – sobrecarrega

Usando Variáveis

Uma vez que variáveis tenham sido declaradas, elas podem ser usadas configurando a

variável para o valor que se deseja armazenar, através do operador de atribuição (um

sinal de igual). O operador de atribuição diz ao programa para atribuir o que estiver do

lado direito do sinal de igual, dentro da variável que deve ficar do lado esquerdo do sinal

de igual.

inputVariable1 = 7; // configura variável chamada inputVariable1

// atribuindo o valor 7

inputVariable2 = analogRead(2); // configura variável chamada inputVariable2

// atribuindo a voltagem lida de uma porta

// analógica 2

Exemplos:

int lightSensVal;

char currentLetter;

unsigned long speedOfLight = 186000UL;

char errorMessage = {"escolha outra impressão"}; // vide: string

Uma vez que a variável tenha sido configurada (conferida um valor), você pode testar seu

valor para verificar se atende determinada condição, ou usar seu valor diretamente. Por

exemplo, o código a seguir testa se o valor da variável inputVariable2 é menor que 100,

então configurando um atraso (delay) baseado no valor de inputVariable2, que é no

mínimo 100.

if (inputVariable2 < 100)

{

inputVariable2 = 100;

}

delay(inputVariable2);

Este exemplo mostra todas as três operações úteis que se pode fazer com variáveis. Ele

testa a variável (if (inputVariable2 < 100)), configura o valor 100 caso o teste tenha

passado(inputVariable2 = 100), e utiliza o valor armazenado na variável como parâmetro

de entrada na função delay(delay(inputVariable2)).

Escopo das Variáveis

Variáveis na linguagem C, que o Arduino usa, tem uma característica conhecida

por escopo. Isto é um contraste com linguagens como BASIC que qualquer variável é

uma variávelglobal.

Uma variável global é uma que pode ser vista por qualquer função dentro de um

programa. Variáveis locais são apenas visíveis para a função na qual foram declaradas.

No ambiente do Arduino, qualquer variável declarada fora de uma função (ex. setup, loop,

etc.), é considerada uma variável global.

Quando programas começam a ficar grandes e mais complexos, variáveis locais são úteis

para garantir que apenas uma função terá acesso apenas as suas próprias variáveis. Isso

evita erros de programação quando uma função inadvertidamente, modifica o valor de

variáveis utilizadas por outra função.

Algumas vezes é útil declarar e iniciar uma variável interna para umlaço (loop). Assim

criamos uma variável que possa apenas ser acessada na parte interna das chaves {}

do laço-for.

Exemplo:

int gPWMval; // qualquer função acessa essa variável

void setup()

{

// ...

}

void loop()

{

int i; // "i" é apenas "visível" dentro da função "loop"

float f; // "f" é apenas "visível" dentro da função "loop"

// ...

for (int j = 0; j <100; j++){

// variável “j” pode ser apenas

// acessada dentro das chaves do laço-for

Os operadores booleanos: Estes podem ser usados dentro da condição de um caso comunicado.

&& (AND lógico)

Verdadeiro somente se ambos os operandos são verdadeiros, por exemplo,

if (digitalRead (2) == ALTA && digitalRead (3) == HIGH) {// ler dois interruptores

// ...

}

é verdadeiro somente se ambas as entradas são altas.

|| (Ou lógico)

True se o operando é verdade, por exemplo,

se (x> 0 || y> 0) {

// ...

}

É verdade que ou x ou y é maior do que 0.

! (Não)

True se o operando é falso, por exemplo,

if (! x) {

// ...

}

é verdadeiro se x é falsa (ou seja, se x é igual a 0).

If: é sempre utilizado em conjunto com os operadores de comparação, ele testa se um

certa condição foi alcançada, como por exemplo se uma variável atingiu um certo valor. O

formato para testes com o (if) é o seguinte:

if (algumaVariavel > 50)

{

// faça algo aqui

}

O programa testa pra ver se algumaVariavel é maior do que 50. Se for, o programa exe-

cuta uma determinada ação. Ou seja, se o que estiver declarado nos parênteses for ver-

dadeiro, as instruções entre as chaves são executadas. Se não, o programa pula para a

próxima parte do código.

Caso você omitas as chaves após a declaração do if, apenas uma instrução será execu-

tada apos o teste condicional, veja os exemplos:

if (x > 120) digitalWrite(pinoLED, HIGH);

/*notem que não existe chaves, isto implica que caso a

condição x>120 for verdadeira, apenas o comando digitalWrite será executado */

if (x > 120)

digitalWrite(pinoLED, HIGH);

if (x > 120){ digitalWrite(pinoLED, HIGH); }

if (x > 120){

digitalWrite(LEDpino1, HIGH);

digitalWrite(LEDpino2, HIGH);

} // todas as formas estão corretas

As declarações que estão sendo verificadas dentro dos parênteses requerem o uso de um

ou mais operadores:

Operadores de comparação:

x == y (x é igual a y)

x != y (x não é igual a y)

x < y (x é menor que y)

x > y (x é maior que y)

x <= y (x é menor que ou igual a y)

x >= y (x é maior que ou igual a y)

For: A instrução for é usada para repetir um bloco de instruções definido entre as

chaves. Geralmente utiliza-se um contador para incrementar e finalizar o loop. A

instrução for é útil para quaisquer operações repetitivas.

for (inicialização; condição; incremento)

{

//instrução(ou instruções);

}

A inicialização ocorre primeiramente e somente uma vez. A cada interação do loop, acon-

dição é testada; se for verdadeira a instrução dentro do bloco e o incremento são execu-

tados, caso contrário , se a condição for falsa o loop é terminado.

Exemplo:

// Dimmer de um LED usando um pino PWM como saída

int pinoPWM = 10; // LED ligado em série com um resistor de 1k ao pino 10

void setup()

{

// não é necessário setup

}

void loop()

{

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

// a variável i é incrimentada até que valha 255,

//depois o loop é terminado

analogWrite(pinoPWM, i);

//o valor de i é escrito no pinoPWM

delay(10);

}

}

if : O que é usado em conjunção com um operador de comparação, os testes se uma de-

terminada condição tem sido alcançado, tal como uma entrada de estar acima de um cer-

to número de. O formato para um caso de teste é:

if (someVariable> 50)

{

// Fazer algo aqui

}

Os testes do programa para ver se someVariable é maior do que 50 Se for, o programa

toma uma acção específica. Dito de outra forma, se a declaração em parênteses é verda-

de, as instruções dentro dos colchetes são executados. Se não, o programa salta sobre o

código.

Os suportes podem ser omitidos após uma instrução if. Se isso for feito, a próxima linha

(definido pelo ponto e vírgula) torna-se a única declaração condicional.

if (x> 120) digitalWrite (ledPin, HIGH);

se (x> 120)

digitalWrite (ledPin, HIGH);

if (x> 120) {digitalWrite (ledPin, HIGH); }

se (x> 120) {

digitalWrite (LEDpin1, HIGH);

digitalWrite (LEDpin2, HIGH);

} // Todos estão corretos

As declarações a ser avaliado dentro dos parênteses requerem o uso de um ou mais ope-

radores:

if / else: Permite maior controle sobre o fluxo de código do que o básico se instrução,

permitindo que vários testes sejam agrupados. Por exemplo, uma entrada analógica, po-

dem ser testadas e uma acção feita se a entrada foi de menos de 500, e uma outra acção

feita se a entrada foi de 500 ou maior. O código ficaria assim:

if (pinFiveInput <500)

{

A ação //

}

mais

{

// Ação B

}

mais pode proceder de outra, se teste, de modo que várias, testes mutuamente exclusivos

pode ser executado ao mesmo tempo.

Cada teste vai avançar para a próxima até que um teste verdadeiro é encontrado. Quando

um teste verdadeiro é encontrado, seu bloco associado de código é executado, e em se-

guida, o programa salta para a linha seguinte à inteira if / else construção. Se nenhum

teste prova ser verdadeiro, o mais padrão do bloco é executado, se estiver presente, e

define o comportamento padrão.

Note-se que uma outra se o bloco pode ser usada com ou sem um outro bloco de termi-

nais e vice-versa. Um número ilimitado de tais else if ramos é permitido.

if (pinFiveInput <500)

{

// Fazer Coisa A

}

else if (pinFiveInput> = 1000)

{

// Faz coisa B

}

mais

{

// Faz coisa C

}

if / else: permite maior controle sobre o fluxo de código do que o básico se instrução,

permitindo que vários testes sejam agrupados. Por exemplo, uma entrada analógica, po-

dem ser testadas e uma acção feita se a entrada foi de menos de 500, e uma outra acção

feita se a entrada foi de 500 ou maior. O código ficaria assim:

if (pinFiveInput <500)

{

A ação //

}

mais

{

// Ação B

}

mais pode proceder de outra, se teste, de modo que várias, testes mutuamente exclusivos

pode ser executado ao mesmo tempo.

Cada teste vai avançar para a próxima até que um teste verdadeiro é encontrado. Quando

um teste verdadeiro é encontrado, seu bloco associado de código é executado, e em se-

guida, o programa salta para a linha seguinte à inteira if / else construção. Se nenhum

teste prova ser verdadeiro, o mais padrão do bloco é executado, se estiver presente, e

define o comportamento padrão.

Note-se que uma outra se o bloco pode ser usada com ou sem um outro bloco de termi-

nais e vice-versa. Um número ilimitado de tais else if ramos é permitido.

if (pinFiveInput <500)

{

// Fazer Coisa A

}

else if (pinFiveInput> = 1000)

{

// Faz coisa B

}

mais

{

// Faz coisa C

}

For: O comando for é usado para repetir um bloco de instruções entre chaves. Um conta-

dor de incremento é normalmente usado para aumentar e terminar o loop. O comando

for é útil para qualquer operação repetitiva, e é frequentemente usado em combinação

com matrizes para operar em coleções de dados / pinos.

Existem três partes para o cabeçalho para loop:

for ( initialization ; condition ; increment ) {

//statement(s);

}

A inicialização acontece primeiro e exatamente uma vez. Cada vez através do loop,

a condição é testada; se for verdade, o bloco de declaração, eo incremento é executada,

então a condição é testada novamente. Quando a condição se torna falsa, o loop termina.

Exemplo

// Dim um LED usando um pino PWM

int PWMpin = 10; // LED em série com 470 ohm resistor no pino 10

void setup ()

{

// Nenhuma instalação necessária

}

void loop ()

{

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

analogWrite (PWMpin, i);

atraso (10);

}

}

Switch case: Controla o fluxo de programas, permitindo que programadores especificar

código diferente que deve ser executada em várias condições. Em particular, uma instru-

ção switch compara o valor de uma variável para os valores especificados nas declara-

ções de caso. Quando uma instrução case é encontrada cujo valor corresponde ao da

variável, o código em que a declaração caso é executado.

A palavra-chave break sai a instrução switch, e é normalmente usado no final de cada

caso. Sem uma instrução break, o switch irá continuar a executar as seguintes expres-

sões ("cair-through"), até que uma pausa, ou o fim da instrução switch é atingido.

Exemplo:

switch (var) {

case 1:

// Fazer algo quando var é igual a 1

break;

case 2:

// Fazer algo quando var é igual a 2

break;

default:

// Se nada mais partidas, faça o padrão

// Default é opcional

}

While: Irá repetir continuamente e infinitamente, até que a expressão dentro dos parênte-

ses, () torna-se falsa. Algo precisa mudar a variável testada, ou o loop while nunca vai

sair. Este poderia ser o seu código, como uma variável incrementado, ou uma condição

externa, tais como teste de um sensor.

Exemplo:

var = 0;

enquanto (var <200) {

// fazer algo repetitivas 200 vezes

var ++;

}

do-while: A fazer obras circular da mesma maneira como o laço enquanto, com a excep-

ção de que a condição é testada no final do ciclo, de modo a fazer circular

irá sempre executar, pelo menos, uma vez.

fazer

{

// Bloco de declaração

} Enquanto (condição de teste);

Exemplo

fazer

{

atraso (50); // Esperar para sensores para estabilizar

x = readSensors (); // Verificar os sensores

} while (x <100);

Referência: http://renatoaloi.blogspot.com.br/2011/11/variaveis-do-arduino.html http://arduino.cc/en/