Você está na página 1de 23

Joo Alexandre da Silveira

ARDUINO
Cartilha para Programao em C
Para Interfaces Simples
de Hardware - Edio 1.0

Pinos Digitais

usados para deteo


ou transmisso de
controles digitais
pinMode( )
digitalRead( )
digitalWrite( )
analogWrite( )
attachInterrupt( )
pulseIn( )

Porta USB - usada


para comunicao serial
com um computador
Pinos analgicos
begin( )
end( )
available( )
read( )
print( )
println( )

usados para leitura de


sinais de sensores

Pinos de Alimentao

usados para alimentao de


circuitos externos e reset
do Arduino

analogRead( )

Esse material de domnio pblico e pode ser livremente distribudo e impresso

www.revistadoarduino.com.br
www.revistadoarduino.com.br

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina II

Cartilha de Programao em C para o ARDUINO


Escrita e produzida por Joo Alexandre da Silveira

Arduino Programming Notebook - Brian W. Evans


Experimentos com o ARDUINO - Joo Alexandre da Silveira
Programming Interactivity - Josua Noble
The C Programming Language - Kernighan and Ritche
Let Us C - Yashavant Kanetkar
C for Engineers and Scientists - Gary Bronson
www.arduino.cc
www.revistadoarduino.com.br

Edio 1.0 - janeiro de 2012

Esse material de domnio pblico e pode ser livremente distribudo

www.revistadoarduino.com.br

Joo Alexandre da Silveira

pgina III

PREFCIO

Este livreto de pouco mais de 20 pginas um guia de consulta rpida para os iniciantes em programao do ARDUINO para criao de interfaces simples de hardware.
fsicas de entrada e de sada do ARDUINO e os principais comandos da sua linguagem
de programao. A idia foi reunir em um pequeno guia de bancada a descrio de cada

programao, e uma que trata do hardware controlado por essa programao. Nessa
primeira parte apresentada a estrutura bsica da linguagem com as suas duas prinda linguagem C/C++. Na segunda parte as portas de entrada e sada (pinos) digitais, as
portas analgicas e a porta serial do ARDUINO so descritas junto com as suas funPara aqueles leitores interessados em se aprofundar mais no mundo do ARDUINO
e na linguagem C sugerimos os livros e sites web que aparecem na pgina II deste
-

tilha.

Joo Alexandre da Silveira


janeiro de 2012

www.revistadoarduino.com.br

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina IV

NDICE
MAPA DAS ENTRADAS E SADAS DO ARDUINO

A - A ESTRUTURA DA LINGUAGEM DO ARDUINO


A Estrutura Bsica

setup( )
loop( )
Os smbolos
{}
//
/*...*/
A.1 - CONSTANTES E VARIVEIS
TRUE/FALSE
HIGH/LOW
INPUT/OUPUT
Escopo da Varivel
Declarao da Varivel
Tipos de variveis

A.2 - MATRIZES
Declarao de uma Matriz
Escrever/Ler uma Matriz

A.3 - LGICA E ARITMTICA


Smbolos compostos
Operadores de comparao
Operadores lgicos

A.4 - FUNES MATEMTICAS E DE TEMPO


delay( )
delayMicroseconds( )
millis( )
random( )
abs( )
map( )

A.5 - FUNES PARA CONTROLE DE FLUXO


if
if...else
if...else...if

www.revistadoarduino.com.br

Joo Alexandre da Silveira

pgina V

while
do...while
for
switch...case
B- AS PORTAS DE E/S DO ARDUINO E SUAS FUNES EM C

13

B.1 - OS PINOS DIGITAIS


pinMode( )
digitalRead( )
digitalWrite( )
analogWrite( )
attachInterrupt( )
pulseIn( )

13

B.2 - OS PINOS ANALGICOS


analogRead( )

15

B.3 - A PORTA SERIAL DO ARDUINO


Serial.begin( )
Serial.end( )
Serial.available( )
Serial.read( )
Serial.print( )
Serial.println( )

16

B.4 - OS PINOS DE ALIMENTAO

17

www.revistadoarduino.com.br

www.revistadoarduino.com.br

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina 2

A - A ESTRUTURA DA LINGUAGEM DO ARDUINO


A estrutura
setup( )

Funes em linguagens de programao


so pequenos blocos de programas usados para montar o programa principal.
Elas so escritas pelo programador para
realizar tarefas repetitivas, ou podem ser
importadas prontas para o programa em
forma de bibliotecas.

setup( ) Essa a primeira funo a

ser chamada quando o programa inicia.


E executada apenas nessa primeira
ela dita o comportamento dos pinos do
Arduino e inicializa a porta serial.

loop( ).

Declarao da Funo toda fun-

o deve ser declarada antes de ser


chamada atribuindo-lhe um tipo e um
nome seguido de parnteses, onde sero
colocados os parmetros de passagem
entre as chaves { e } os procedimentos que a funo vai executar.

loop( ) A funo loop( ) chamada

cadas nela so repetidamente executado Arduino e comandando os pinos de


sada e a porta serial.

Os Smbolos
{ } - Dentro das chaves
; - O ponto-e-vrgula
// - comentrio de uma linha:
/*...*/ - comentrio em vrias linhas: qualquer texto colocado entre esses simbolos tambem
ignorado pelo programa.

www.revistadoarduino.com.br

Joo Alexandre da Silveira

pgina 3

Exemplo:
/*
Nesse cdigo a funo setup( ) ativa a porta serial em 9600 bits/s e a funo loop( )

*/
void setup( )

}
void loop( )

A.1 - CONSTANTES E VARIVEIS


CONSTANTES so
nunca podem ser alterados. Na linguagem C do
Arduino so 3 os grupos

TRUE/FALSE

Verdadeiro qualquer valor que no seja zero. Falso sempre o valor zero.

HIGH/LOW

INPUT/OUPUT so constantes programadas pela funo pinMode( )


componentes de cada
grupo sempre podem
ser representados pelos ser sadas (de controle).
nmeros binrios 1 e 0.
VARIVEIS so
programa do Arduino
marcadas com um nome
e o tipo de informao
que iro guardar. Essas

Escopo da Varivel o limite ou abrangncia da varivel. Uma variv-

el pode ser declarada em qualquer parte do programa. Se for declarada


logo no incio, antes da funo setup( ), ela tem o escopo de Varivel Global, e porisso ela pode ser vista e usada por qualquer funo no programa.
Se declarada dentro de uma funo ela tem o escopo de Varivel Local, e
s pode ser usada por essa funo.

Declarao da Varivel

vazias ou podem recedeclarada antes de ser chamada. Essa declarao consiste em atribuir
ber um valor inicial. Os previamente um tipo e um nome varivel.
valores das variveis podem ser alterados pelo
Tipos de variveis:
programa.
byte int long 32 bits.

variveis deste tipo podem armazenar nmeros fracionrios de at

www.revistadoarduino.com.br

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina 4

Exemplo:
/* Esse programa escrito em C do Arduino aumenta e diminui gradativamente o brilho de um LED
conectado no pino PWM 10 do Arduino. */
void setup( ) {
}
void loop( )

}
void ledOn( ) {

// funo que acende o led

A.2 - MATRIZES
Declarao de uma Matriz I As matrizes, como as variveis e

MATRIZES

de variveis do mesmo tipo,


memria de programa, com
endereos que podem ser
acessados por meio de um

int nomeMatriz [ ] = { 16,32,64,128, ... };

ndice. A primeira posio de


uma matriz sempre a de
ndice 0.

Declarao de uma Matriz II Pode-se tambem declarar


somente o tipo, o nome e o tamanho da matriz, deixando para o
matriz.
int nomeMatriz [ 10 ] ;

//nomeMatriz com dez 10


//posies para variveis inteiras

Escrever/Ler uma Matriz Para guardar o inteiro 16 na 4


posio da matriz nomeMatriz
nomeMatriz [3] = 16;

Para atribuir o valor armazenado na 5 posio de nomeMatriz


varivel x
int x = nomeMatriz[4];

www.revistadoarduino.com.br

Joo Alexandre da Silveira

pgina 5

A.3 - LGICA E ARITMTICA


Smbolos compostos so aqueles que combinam os smbolos aritOperaes Aritmticas
x ++
// x=x+1
e lgicas
x
-// x=x-1
aritmticas, diviso, multiplicao, adio e subtrao,
so representadas pelos
tivamente, separando os
operandos. E so 3 os operadores lgicos na linguagem do
Arduino que so usados para
retornar a constante TRUE/
FALSE.

x
x
x
x

+= y
-= y
*= y
/= y

// x=x+y
// x=x-y
// x=x*y
// x=x/y

Operadores de comparao comparam uma varivel com

uma constante, ou variveis entre si. So usados para testar se uma


condio verdadeira.
x == y
// x igual a y
x != y
// x no igual a y
x <y
// x menor que y
x >y
// x maior que y
x <= y
// x menor ou igual a y
x >= y
// x maior ou igual a y

Operadores lgicos

retornam 1 ou 0 (verdadeiro/falso).
&&
||
!
NOT porta lgica NO

www.revistadoarduino.com.br

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina 6

A.4 - FUNES MATEMTICAS E DE TEMPO


Funo

Exemplo

Notas

delay(ms)

delay(1000);

Durante o perodo em que


essa funo est ativa
qualquer outra funo no

Essa funo pausa o programa por um


perodo em milissegundos indicado pelo
parmetro entre parnteses.

Com esse parmetro o programa vai pausar durante 1


segundo (1000 ms).

equivalente ao HALT em
Assembly. Somente as
podem parar essa funo.

delayMicroseconds(us)

Essa funo pausa o programa por um


perodo em microssegundos indicado pelo
parmetro entre parnteses.

delayMicroseconds(1000);

Com esse parmetro o programa vai pausar durante 1


ms (1000 us).

acima para a funo


delay(ms) so vlidas aqui.

millis( )

long total = millis( );

Essa varivel vai ser resetada depois de aproximadamente 9 horas.

random(min,max)

int valor = random(100,400);

O parmetro min opcional e se excludo o limite


mnimo 0. No exemplo

Retorna o nmero de milissegundos desde


que o Arduino comeou a executar o programa corrente.

Gera nmeros pseudo-aleatrios entre


os limites min e max
parmetros.

Aqui a varivel inteira longa


dar o tempo em ms desde
que o Arduino foi inicializado.

atribuido um nmero inteiro


qualquer entre 100 e 400.

qualquer nmero inteiro


entre 0 e 400.

abs(x)

Retorna o mdulo ou valor absoluto do


nmero real passado como parmetro.

map(valor,min1,max1,min2,max2)

A funo map( ) converte uma faixa de


valores para outra faixa. O primeiro par-

o quarto e o quinto so os novos valores

atribudo o nmero em ponto

int valor = map(analog


Read(A0),0,1023,0,255));
- a leitura do nvel analgico
no pino A0 convertida da
faixa de 0-1023 para a faixa
0-255.

www.revistadoarduino.com.br

Com essa funo possvel reverter uma


faixa de valores, exint valor =
map(x,1,100,100,1);

Joo Alexandre da Silveira

pgina 7

A.5 - FUNES PARA CONTROLE DE FLUXO

if

{ e } so executadas somente se o resultado


tado, mesmo negativo, diferente de zero. Falso um resultado zero.
if (expresso) {
bloco de instrues; // se expresso
}

da instruo
anterior

O comando if

bloco de instrues

da instruo
anterior

O comando if...else

NO

NO

EXPRESSO
verdadeira?

EXPRESSO
verdadeira?

SIM

SIM
BLOCO DE
INSTRUES 1

BLOCO DE
INSTRUES

para a prxima
instruo

ELSE
BLOCO DE
INSTRUES 2

para a prxima
instruo

if...else Ao se acrescentar mais um bloco de instrues no loop do comando if pode-se criar o


comando if...else, para fazer um teste novo quando o resultado da expresso for falsa.
if (expresso) {
bloco de instrues1; // se expresso
}
else {
bloco de instrues2; // se expresso
}

bloco de instrues1
bloco de instrues2

www.revistadoarduino.com.br

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina 8

if...else if E de novo ao se acrescentar agora o comando if...else no loop do comando if podese criar mais um outro comando, o if...else if. No exemplo abaixo se expresso1
bloco de instrues1
expresso1
expresso2 for verdadeira bloco
de instrues2
expresso1 expresso2
bloco de instrues3
executado.
da instruo
anterior

O comando switch...case

da instruo
anterior

O comando if...else if

EXPRESSO
EXPRESSO 1
verdadeira?

NO

SIM
BLOCO DE
INSTRUES 1

1?

ELSE IF
EXPRESSO 2
verdadeira?

SIM

BLOCO DE
INSTRUES 1

NO

NO

2?
ELSE

BLOCO DE
INSTRUES 2

SIM

BLOCO DE
INSTRUES 3

SIM

BLOCO DE
INSTRUES 2

NO

3?

SIM

BLOCO DE
INSTRUES 3

NO
BLOCO DE
INSTRUES 4
(default)

para a prxima
instruo

para a prxima
instruo

if (expresso1) {
bloco de comandos1;
}
else if (expresso2) {
bloco de instrues2;
}
else {
}

bloco de comandos3;

switch (expresso) {
case 1: bloco de instrues1;
break;
case 2: bloco de instrues2;
break;
case 3: bloco de instrues3;
break;
default: bloco de instrues4;
}

switch...case possvel ir inserindo comandos if...else na posio do segundo bloco de

if...else e assim criar uma cadeia de comandos para testar dezenas

switch...
case. Esse comando permite comparar uma mesma varivel inteira, ou uma expresso que retorne um
inteiro, com vrios valores possveis.

www.revistadoarduino.com.br

Joo Alexandre da Silveira

pgina 9

while

while
while (expresso) {
bloco de instrues;
}
O bloco de instrues ser executado enquanto o parmetro expresso for verdadeiro.

da instruo
anterior

O comando while

LOOP

EXPRESSO
verdadeira?

BLOCO DE
INSTRUES

da instruo
anterior

BLOCO DE
INSTRUES

SIM
EXPRESSO
verdadeira?

NO

NO

para a prxima
instruo

O comando do...while

para a prxima
instruo

do...while
do {

bloco de instrues;
}
while (expresso);

www.revistadoarduino.com.br

LOOP

SIM

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina 10

for Inserindo-se no loop do comando while um contador que registre cada execuo do bloco de

instrues cria-se o comando for. Esse contador deve ter uma varivel de controle que deve ser previafor (varivel; expresso;incremento) {
bloco de instrues;
}
A varivel

expresso deve conter o valor mximo


incremento o valor que ser incrementado (ou decremen-

parnteses separado por ponto e vrgula.

da instruo
anterior

O comando for

inicializao
VARIVEL
do contador

CONTADOR
LOOP
BLOCO DE
INSTRUES

EXPRESSO
verdadeira?

SIM

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


println (contador);
delay(1000);
}
Nesse exemplo a varivel de controle i do contador inicializada
valor nele acumulado for menor
que 10 seu valor enviado para o
Terminal, e depois de 1 segundo, o
contador incrementado e seu
novo valor testado novamente.

NO
para a prxima
instruo

www.revistadoarduino.com.br

Joo Alexandre da Silveira

pgina 11

if...else em C/
C++ com o operador condicional ?
expresso e se esta for vardadeira uma instruo executada, se a expresso for falsa uma outra
(expresso) ? instruo1 : instruo2;

int x = 8;
y = (x > 10) ? 15 : 20;
Aqui o valor de y

y
que 10, y seria 15. Essa mesma expresso com o comando if...else
int x = 8;
if (x > 10) {
y = 15;
}
else
y = 20;

da instruo
anterior

O operador ternrio

EXPRESSO

verdadeira ?

SIM

NO
INSTRUO 2

INSTRUO 1

para a prxima
instruo

www.revistadoarduino.com.br

x vale 8,
x fosse maior

ARDUINO - Cartilha para Programao em C - Edio 1.0

MAPA DAS ENTRADAS E


SADAS DO ARDUINO

pgina 12

Pinos Digitais

usados para deteo


ou transmisso de
controles digitais
pinMode( )
digitalRead( )
digitalWrite( )
analogWrite( )
attachInterrupt( )
pulseIn( )

Porta USB - usada


para comunicao serial
com um computador
begin( )
end( )
available( )
read( )
print( )
println( )

Pinos de Alimentao

Pinos analgicos

usados para leitura de


sinais de sensores

usados para alimentao de


circuitos externos e reset
do Arduino

www.revistadoarduino.com.br

analogRead( )

Joo Alexandre da Silveira

pgina 13

B - AS PORTAS DE E/S DO ARDUINO E SUAS FUNES


B.1 - OS PINOS DIGITAIS

So 14 pinos marcados com o nome DIGITAL logo abaixo


dos pela funo pinMode( ) para detetarem ou transmitirem nveis lgicos digitais (verdadeiro/falso,
1/0 ou HIGH/LOW).

Pinos 3, 5 e 6 e 9 a11 (PWM)

Pinos AREF e GND

6 pinos dos 14 pinos digitais podem ser


usados para gerar sinais analgicos com a
funo analogWrite( ) utilizando a tcnica
de Modulao por Largura de Pulso (PWM).

AREF a entrada de tenso de


referncia para o conversor
o terra, comum a todos os
outros pinos.

Pinos 0 e 1

digitais so conectados a USART do


microcontrolador do Arduino para co
municao serial com um computador.

Pinos 2 e 3

ISR (Interrupt Service Routine) para


tratar uma interrupo com a funo
attachInterrupt( ) nesses pinos.

Funo

Exemplo

Notas

pinMode(pino,modo)

pinMode(2,OUTPUT);

pinos digitais. Dois parmetros devem


esse pino vai ser entrada ou se vai ser

para um circuito externo qualquer.


trada, o segundo parmetro dessa
funo deve ser INPUT.

Essa funo sempre


escrita dentro da
funo setup( ).

digitalRead(pino)

int chave = digitalRead(3);

como entrada com a funo pinMode( ),


a informao presente nesse pino pode
ser lida com a funo digitalRead( ) e
armazenada numa varivel qualquer.

(verdadeiro/falso) presente no
pino digital 3.

Serve para estabelecer a direo do

digitalWrite(pino,valor)

Para enviar um nvel lgico para qualquer


pino digital do Arduino utiliza-se essa
funo. Dois parmetros so requeri(HIGH/LOW ) em que esse pino deve
permanecer.

Aqui o pino 2 selecionado para

Nesse exemplo a varivel inteira

digitalWrite(2,HIGH);

Aqui uma tenso de 5 volts colocada no pino 2. Para enviar terra


para esse pino o segundo parmetro dever ser LOW.

www.revistadoarduino.com.br

necessrio conpino como sada com a


funo pinMode( ).

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina 14

uma chave normalmente aberta no pino 3 for pressionada.


void setup()

}
void loop()

void loop()

Funo

Exemplo

Notas

analogWrite(pino,valor)

analogWrite(10,128);

Modulao por Largura de Pulsos, ou PWM


(Pulse Width Modulation) na lingua inglesa,
uma tcnica usada

determina a amplitude dessa tenso, e


deve ter valores entre 0 (para 0 volt) e
255 (para 5 volts).

PWM como sada com a funo


analgicas a partir de
pinMode( ) quando se chama
uma sequncia de pulsos
funo analogWrite( ).
digitais.

Com esses parmetros uma


em 6 de seus 14 pinos digitais com a funo tenso analgica de 2,5 volts
analogWrite( ). Dois parmetros devem
vai aparecer no pino 10. No

attachInterrupt(pino,funo,modo) attachInterrupt(0,conta LOW - dispara a interrupo quando o pino


Essa funo uma rotina de servio de
dor,RISING);
interrupo, ou ISR (Interrupt Service
Routine) em ingls. Toda vez que ocorrer
uma interrupo por hardware no pino digital 2 ou no 3 do Arduino uma outra funo,
criada pelo programador, vai ser chamada.
O terceiro parmetro, modo, informa
como a interrupo vai ser disparada, se
na borda de subida do pulso detetado no
pino do Arduino, se na borda de descida, se
quando o pulso for baixo ou se na mudana
de nvel desse pulso.

Nesse exemplo a funo

pulseIn(pino,valor,espera)

pulseIn(4,HIGH);

Essa funo mede a largura em microssegundos de um pulso em qualquer pino digitipo de pulso deve ser medido, se HIGH
opcional e se passado funo faz com que
a medida do pulso s comece aps o tempo

CHANGE - dispara semquando o Arduino detetar uma pre que o pino muda de
estado (de 0 para 1, ou
mudana do nvel LOW para
o nvel HIGH em seu pino 2.
RISING - somente
Nessa ISR o parmetro 0
monitora o pino 2, o parmet- quando o pino muda de 0
ro 1 monitora o pino 3.
FALLING - somente
quando o pino muda de 1
para 0.

Aqui essa funo vai monitorar o pino 4, e quando o nvel


nesse pino mudar de LOW
para HIGH a sua largura vai
ser medida at que seu nvel
volte para LOW. Se, por exemplo, for passado o valor 100
como terceiro parmetro, a
medida da largura do pulso s
ser disparada aps 100 uS.

www.revistadoarduino.com.br

Uma aplicao interessante para essas duas


ser vista no meu livro
Experimentos com o
Arduino, no captulo que
mostra como montar um
contador de dois dgitos
com mostradores de
7-segmentos.

Joo Alexandre da Silveira

pgina 15

B.2 - OS PINOS ANALGICOS

So 6 pinos em uma s barra com o nome ANALOG


IN, localizada no lado oposto s barras dos pinos digitais. So numerados de 0 a 5, agora da esquerda
para a direita. Esses pinos so usados para leitura de sinais analgicos de sensores conectados ao
Arduino, e podem ser de quaisquer valores entre zero a 5 volts. Os pinos de entradas analgicas no
pinMode( ).

Pinos 0 a 5
ao conversor A/D de 10 bits no microcon
trolador do Arduino. O pino AREF, numa
das barras de pinos digitais, a entrada
de tenso de referncia para esse conversor.

Funo

Exemplo

analogRead(pino)

int sensor = analogRead(A0); Os pinos analgicos so

Essa funo l o nvel analgico


presente no pino indicado pelo
parmetro entre parnteses e,
aps a converso para o seu equivalente em bits, o guarda em uma
varivel determinada pelo programador.

armazenar a tenso analgica convertida para digital presente no pino


A0. Essa informao vai ser um valor
inteiro entre 0 (para 0 volt no pino)
e 1023 (se 5 volts no pino). Uma tenso de 2,5 volts no pino A0 vai fazer
inteiro 512.

Notas
reconhecidos pela linguagem C do Arduino tanto
como A0 a A5 como 14
a 19. Assim, a mesma
expresso acima pode ser
escrita tambem da seint sensor
= analogRead(14);

tambem como pinos digitais pela funo pinMode( ), aumentando assim o nmero desses pinos para 20.
Assim, a expresso pinMode(14,OUTPUT); transforma o pino analgico A0 em pino de sada digital
como qualquer outro presente nas duas barras de pinos digitais.

O cdigo a seguir l uma tenso CC no pino analgico A5 (pino 19) e envia esse valor digitalizado para

void loop( )

www.revistadoarduino.com.br

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina 16

B.3 - A PORTA SERIAL DO ARDUINO E SUAS FUNES EM C


O conector USB:

por meio desse conector USB


fmea do tipo A que o Arduino se comunica atraves de
um cabo a um computador ou a outros dispositivos que tenham
tambem uma interface USB. tambem por esse conector que
o Arduino recebe 5 volts diretamente da fonte de alimentao do computador.

Funo

Exemplo

Notas

Serial.begin(taxa)

Serial.begin(9600);

em bits por segundo entre o computador e o Arduino.

taxa de comunicao em 9600 bps.


Os pinos digitais 0 e 1 no podem
ser utilizados como entrada ou
como sada de dados quando a porta
serial habilitada por essa funo.

Essa funo vai sempre dentro da funo


setup( ).

Essa funo habilita a porta serial e

Serial.end( )

Desabilita a porta serial para permitir o uso dos pinos digitais 0 e 1 para
entrada ou sada de dados.

Serial.available( )

int total = Serial.available( );

A funo Serial.available( ) retorna


o nmero de bytes disponveis para
leitura no buffer da porta serial.

Serial.read( )

guardar o nmero de caracteres


que esto disponveis para leitura
na porta serial.
int valor = Serial.read( );

A funo Serial.read( ) l o primeiro


byte que est no buffer da porta serial.

Serial.print(valor,formato)
Essa funo envia para a porta serial um caracter ASCII, que pode ser
capturado por um terminal de comuni-

guardar o primeiro byte (caracter)


disponvel na porta serial.

Serial.print(1.23456);
Serial.print(1.23456,3);
Serial.print(Al Mundo!);

sas decimais ou com que base numrica


vai ser o nmero transmitido.

Essa funo tambem


deve ser escrita dentro da funo setup( ).
O valor 0 retornado
quando no h nenhuma
informao para ser
resgatada na porta
serial.
O valor -1 retornado
quando no h nenhuma
informao para ser
resgatada na porta
serial.

// transmite 1.23 (default)


// transmite 1.234
// transmite a frase (string)
// transmite o caracter A
// transmite 01000001
// transmite o octal 101
// transmite o hexa 41
// transmite o decimal 65

Serial.println(valor,formato)

Como a anterior essa funo envia para a porta serial um caracter ASCII com os mesmos parmetros
Carriage Return (retorno
ao incio da linha) e o caracter New Line (mudana para a prxima linha).

www.revistadoarduino.com.br

Joo Alexandre da Silveira

pgina 17
-

void setup( ) {
}
void loop( )

}
O Terminal Serial do Arduino mostrar inicialmente todo segundo o retorno da funo available(
), que ser 0, e o da funo read( ), que ser -1. Isso ocorre porque nenhum dado est disponvel
na porta serial do computador. Entre no Terminal do Arduino e transmita, por exemplo, as letras
ABCDE
available( ) informa
read( ) mostra o
cdigo ASCII decimal 65 do primeiro deles, que corresponde letra A. Os outros caracteres vo
sendo enviados sequencialmente enquanto available( ) vai decrementando at 0 de novo.

B.4 - OS PINOS DE ALIMENTAO

Ficam na barra com 6 pinos, marcada


como POWER, localizada ao lado dos pinos analgicos. O primeiro pino dessa barra, RESET, quando
forado ao potencial de terra serve para resetar o Arduino. Do outro lado, Vin um pino que tambem
pode servir para alimentar o Arduino se nele for aplicada uma tenso entre 9 e 15 volts.

Pinos 3V3, 5V e Gnd

barra somente os quatro do meio servem para


alimentar um circuito externo conectado ao
essa tenso com uma corrente mxima de 50mA.

www.revistadoarduino.com.br

ARDUINO - Cartilha para Programao em C - Edio 1.0

pgina 18

Do mesmo autor dessa Cartilha de Programao em C

Veja no site abaixo o ndice e os primeiros captulos do livro.


www.revistadoarduino.com.br

Você também pode gostar