Está en la página 1de 70

Y

Y

Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c 

u
  
Y
Y



Y Operadores de bits
6Y Y Y Y Y'($$Y
6Y d Y
YY
6Y pY Y Y Y)*$$Y
6Y d YYY
6Y ]Y Y Y Y+)*$$Y
Y
Estruturas de controle 6Y mY Y Y Y'),$-Y
6Y Y d Y.Y&
 $Y
6Y Y
6Y Y d Y.Y  $Y
6Y Y
6Y - Y YY'($Y
6Y Y
6Y p- Y YY)*$Y
6Y  Y Y
6Y  !"Y
Operadores compostos
6Y Y !"Y
6Y DDY  $Y
6Y # Y
6Y [[Y  $Y
6Y  
!!Y
6Y D-Y Y$Y
6Y 
 !!Y
6Y [-Y
Y$Y
6Y !$Y
6Y -Y
  Y$Y
6Y -Y d Y$Y
Elementos de sintaxe Y
6Y GY YYd 
!%Y Y
6Y Yd!%Y Y
Y
6Y Y Y Y   !Y Y
6Y Y YY Y   !Y Y
6Y  !Y Y
Y
6Y 
!Y
Y
Y
Operadores aritmticos Y
Y
6Y -Y 
  !Y
Y
6Y DY !Y Y
6Y [Y
!Y Y
Y
6Y Y
  !Y
Y
6Y Y d !Y Y
6Y rYY Y d ! Y Y
Y
Y
Operadores de comparao Y
6Y --Y 
Y$"Y Y
6Y -Y  Y $"Y Y
Y
6Y Y Y&
$"Y Y
6Y Y Y&
$"Y Y
6Y -Y Y
Y 
Y$"Y Y
Y
6Y -Y Y
Y 
Y$"Y
Y
Y
Operadores booleanos Y
Y
6Y Y$!Y
Y
6Y ppY
$!Y Y
6Y Y $!Y Y
Y

c 

 d Y
 d YY/0Y&
Yd1Y Y
YY
YY2 YdYYY
 
Y Y
Y YY
Y Y 3 Y

Constantes
*  YYdY 
YY
    Y  Y
6Y A AYpY4)5$ Y
6Y ' 6,YpY)6, 6,$ Y
6Y 
YpY$ Y
6Y *  Y  %!Y

Tipos de dados
 d Y YY Yd  Y Y
6Y  %$Y
6Y %$Y
6Y %%Y
6Y %%Y
6Y
   Y %-Y
6Y  %-Y
6Y
   Y %Y
6Y %Y
6Y 
%Y
6Y  %Y
6Y % Y
6Y d -"Y

Converso
6Y -!Y
6Y -!Y
6Y -!Y
6Y  -!Y
6Y -$Y

Referncia
6Y ,Yu* -$Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c  


0Y
Entrada e sada digitalY
6Y  7 Y 8Y -%Y Comunicao serialY
6Y  5 Y 8Yd
--Y 6 YY
Y YYY
YY
6Y Y  * Y -Y
Y
 Y
Y
Y   dYY

YYdY Y Y
Entrada e sada analgicaY  Y
Y6uY YY
YY Y Y
6Y Y * Y -Y   Y"Y*+YY!Y,+Y 8YYd1Y
  2Y
6Y  5 Y 8Yd
Y9Y 57-Y Y
0Y Y  Y
  2YY Y"YY!Y
Y  YY Y  Y
Entrada e sada avanadaY 6Y u  Y $Y
6Y  )
Y  8Y# 8Y ) 8Yd
:-Y 6Y Yu d Y::::::::::::::%Y
6Y
   Y Y
 Y 8Yd
::::::- Y 6Y Yu  Y::::::::::::::::-Y
6Y u 
Y:::::::::::::::::Y
TempoY 6Y u  Y Y
6Y
   Y Y  "Y 6Y u   Y Y
Y
6Y
   Y Y ::::::::::::"Y
Y
6Y :::::::::::::::::::!Y Y
6Y 7  ; :::::::::::: Y
Y
$Y
Y
Y
MatemticaY Y
6Y  Y/8Y-Y Y
Y
6Y /Y/8Y:::::::::::::::::::Y Y
6Y Y/Y Y
6Y   Y/8Y8YY Y
Y
6Y Yd
8Y48YA 8Y48YA ::::Y Y
6Y Y8Y/  Y Y
6Y &Y/:::::::::::::::::::::Y Y
Y
6Y &Y/Y Y
Y
TrigonometriaY Y
Y
6Y  Y  Y
Y
6Y Y  Y Y
6Y  Y  Y Y
Y
Y
Nmeros aleatriosY Y
6Y  u Y ::::::::::::::"Y Y
6Y  Y Y/!Y Y
Y
6Y  Y Y 8Y/:::::::::::!Y Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c 


Y
setup()
Y
Y
YY Y&
 Y
YYYY Y6YY
YY   2YY
Y
d d 8YY Y Y 8Y YY
Y Y d 8YYY
Y Y/
 Y Y
Y
d2Y3YYY
YY  Y
Y Y

Exemplo
Y
 Y-Y%GY
Y
d Y
Y
Y
YYu   ""GY
YY 7 
 8Y ' 6,GY
Y
Y
d YY
Y
YYYY
Y
Y
Y
loop()
Y
3Y Y
Y
Y
Y&
Y YYdY   8YY
YY2Y/ YY&
Y
Y
Y
8Y YY Y/
YYYYY Y3 8Y  YY
YY
2Y
 YY Y6YY
YY Y d YYY
Y
ExemploY
Y
 Y-Y%GY
Y
Y
Yinicializa o serialYYY Y Y
 YY
d Y
Y
Y
YY u  ""GY
YY 7 
 8Y ' 6,GY
Y
Y
YYYYYY Yd28Y
YY d YY YYYY   Y
d YY
Y
YY Y  * 
 Y--YA AY
YYYY 5 <A<GY
YYY
YYYY 5 <4<GY
Y
YY !"""GY

c  

if (condicional) e ==, !=, <, > (operadores de
comparao)
if8Y&
YY
 Y=
 YY
Y Y Y8Yd  Y&
 Y
Y YY  8Y
YY/Y
Y 
Y Y Y
Y   YdY)YYY
Yd  Y YY

if (algumaVariavel > 50)


{
// faa alguma coisa
}

)YYYY
 dYY YY Y Yd d Y YY
YY  YY
 Y&
Y"YuY8YYY 2Y
YY  Y* Y Y
Y  YYY  Y
&
Y Y  Y Y1  YYd   YY3 Y&
Y Y  Y YdY GYY   YY
YYYY Y3 Y

YdY YY  Y3Y


Y  Y YY3Y
dY
Y> Y Y Y3 Y  YY
 YYd 
Y&
Y Y/
 Y Y Y   Y

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

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

if (x > 120) {digitalWrite(LEDpin, HIGH);} // todos so corretos

Y  Y&
Y Y Yd   Y  YY
Y YY Y
Y Y Y

Operadores de comparao:
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)Y

Cuidado:
, Y
YYY
Y  Y Y Y
Y Y Y 
YY Y/Y-Y!"YY)Y Y Y 
Y
 YY
Y Y Y   YYYYdY!"Y Yd dY/YY   YY Y Y Y
Y
Y Y/Y--Y!"Y8Y&
YY
Y Y Y8Yd  YY/YY 
YY!"Y
Y YY> Y Y
3YYd   YY/YY 
YY!"8YYY  YY Yd  Y
YYY&
YY 
Y*Y Y&
YY
YY Y 
Y
YdY.Y  Y/-!"Y Y

Y Y!"YY Y Yd dY/YYY Y Y 
Y YY
Y Y Y
  8Y Y/YY Y!"Y YY   Y< <Y 
Y
YdYY!"8Y&
Y YY
d   Y,*68Y  Y&
Y >Y  Y Y2YYY&
 Y.Yd   Y
* &
  8Y Y/Y-Y!"Y YYd   8Y&
Y YYY&
Y Y&
 Y
Y

Y< <Y    YYdY!"Y Y


  Y Yd dY/Y&
YY YYY&
Y Y
ifYY YY
 YYY Y
Y

Y Y Y   YdY Y
 
Y Y
Y

c  


if/elseY Y
Y Y YYY
/Y Y3 Y Y&
YY  YifY  8Y  Y dY
&
Y> YY=Y
 Y Y/8Y
Y  Y 3 Y  YYd   YY
Y
Y  Y Y YYYdY Y 
YY Y&
Y""YY
YY Y YYY

YY""Y
Y Y)Y3 Y Y Y

if (pinFiveInput < 500)


{
// ao A
}
else
{
// ao B
}

elseY Y Y


YYifY8YY Y Y8Y

 Y/
 d8Y YY 2 Y
YYY

* YY YY3/ YY&


Y
YYYddYd   YY   Y?
 Y
YY
YdYd   YY   YY
YY Y3 Y  YY/
 YY YYYY
YY&
  Y3Y YYY YuYY  
YYY 
YYdYd   YYY&
Y
 dY YY2 YY/
 8YY
dY
Y

'Y&
Y
YYelse ifY YY
 YY
YY
YYelseY Y6Y >Y    Y Y
Yelse ifYY  Y

if (pinFiveInput < 500)


{
// faa a coisa A
}
else if (pinFiveInput >= 1000)
{
// faa a coisa B
}
else
{
// faa a coisa C
}

)
Y Y Y2YY Y  0Y

 Y/
 dYYdY Y  Y YY
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c  

 

Descrio

Y  YforYY
  2 YY Y
YY Y3 Y    YYdY6Y  YY
 Y  YY
 YY YY  2YYYY  YforYY
 YY&
 &
Y
Y  d8YYY&
  Y
 YYYYYY =
Y Y  Y
Y Y
 Y

A Y1YY YY YforY

forYinicializaoG condioG incrementoYY


  GY
Y

YinicializaoYY  YY Y


Yd2Y* Yd2Y&
YY 
YY/
 YYcondioYY
d   GYYYd   YYY Y3 YYYincrementoYY/
 8YY YYcondioYY
 Y d Y?
 YY YY YYY 
Y Y

Exemplo
// Aumentar o brilho de um LED usando um pino PWM
int PWMpin = 10; // um LED em srie com um resisotr de 1k no pino 10

void setup()
{
// nenhum setup necessrio
}

void loop()
{
for (int i=0; i <= 255; i++){
analogWrite(PWMpin, i);
delay(10);
}
}

Dica de programao

'Y 
Y*YY 
YforYY
Y Y/ dY&
YY 
YY   YY
Y
Y
 
 Y Y8Y 
Yu *Y?
&
Y Y Y YY YY  8Y
YY@G@Y=Y   Y?
&
Y Y YY YY
 
YY
&
&
Y  Yd  YY*YYd d Y YYY Y Y

 Y Y  YforYY
d2Y YYY
YY
YYY YY

Y
Y
Y
Y
Y
Y
Y
Y

c 

    
Y

(YY Y&
YY  Yif8YYswitch / caseY YY
/Y Y
YSwitch/caseY YY Y 
Y
Y Y Y@@Y  Y Y
YY
   YYdY)YYY YYYYd dY YYY/
YY3 YY
  Y
YdY 1  Y

Switch / caseYY
Y
Y Y/ dY&
Y
Y

Yif/elseY Y Y&
YY Y Y
 YYY

YswitchY dY 
Y YYdY 1  Y Y Y Y@@Y
3Y  Y
YdY 1  YuYY  YbreakY YY   Y3YY/
Y YY Y
3 Y   YY
Y Y@@8Y YYYd Y 
YYYY YdY
1  Y YY@@Y YuY
Y  YbreakYY   YY3 Y Y Y

Y Y
Y Y&
YY
Y 
Yif/else ifY

Parmetros
6Y dY[YYd dYYY&
Yd1Y
YdY 1  Y
6Y 
Y[YY  
Y
Y YY  YY3 Y&
Y Y Y 
YY/
 Y
6Y #Y[YYY#YY  YswitchYd Y 
Y YY
Y  YcaseYY&
 &
Y

Y dYdY 1  YuY
YY   Y Y/
 Y YY 8YY&
Y Y Y
YY&
Yd1Y =Y#Y YY YYY Y
YY
YdY 1  YY Y Y
  Y Y
Exemplo
switch (var) {
case 1:
//faa alguma coisa quando var == 1
break;
// break is optional
case 2:
//faa alguma coisa quando == 2
break;
default:
// se nenhum valor for idntico, faa o default
// default opcional
}
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c 


DescrioY

whileY YY&
YYY Y3 Y YdYY Y 
YY   YY&
YY
/Y Y  YY YYYY&
YdY
Y
 Y YdY Yd dY&
Y
 Y Yd   Y
YY3 Yd YY Y  YdY  Y YwhileY Y  YYY
 Y Y
Yd dY
Y
Y Y/ YYYY Y
Y Y

Syntax
while(expresso){
// cdigo
}
Parmetros

/Y[Y
Y  Y YY*Y&
YYYd   YYd   Y
YY

Exemplo
var = 0;
while(var < 200){
// algum cdigo que se repete 200 vezes
var++;
}
Y
Y

 
)YdoY
  Y YY  Y&
YYwhileY8YYY/Y Y&
YY YY Y Y Y
YY Y3 Y &
 Y Ywhile8YYY YY8YYY Y3 Y Y Y/
 8Y
YdoYYY Y/
 YY Y
Yd2Y

do
{
// bloco de cdigo
} while (condio);

Exemplo
do
{
delay(50); // espera para que os sensores se estabilizem
x = readSensors(); // verifica o sensor

} while (x < 100);

Y
Y
Y
Y
Y

c 



continueYY
 YYY0Y Y3 YYYdo8Yfor8Y
YwhileYYYY&
YY3 Y
d YYYY Y Y Y YY  Y

Exemplo
for (x = 0; x < 255; x ++)
{
if (x > 40 && x < 120){ // criar saltos de execuo
continue;
}

digitalWrite(PWMpin, x);
delay(50);
}
Y
 
 2Y
Y
YY Y
Yd8YY   Y

Sintaxe:


 GY


 YdGYYYYYd  Y

Parmetros

dY
Yd dY
Y  Y

Exemplos:

6Y
YYYYdY Y
Y YY
Y  Y

int checkSensor(){
if (analogRead(0) > 400) {
return 1;
else{
return 0;
}
}

Yd[dYreturnYY> YYY
YY Y3 YYY&
Y YY@   @Y

Y YY d Y  


YY Y3 Y

void loop(){

// aqui, uma brilhante idia de programao

return;

// restante do bloco de cdigo no funcional


// este cdigo nunca ser executado
}

c 




, YY
/Y YYY
Y
Y Y &
 Y

Sintaxe

Y

Y &
GYY d YY
/Y YYY &
Y

Dica

)Y
Y YYY  = YYY*YY 
 dY
Y
Y Y&
YYY
YY
 Y   8YY
 YY
Y Y   Y
YYY2YY&
Y

Y Y dY
Y
YY&
YYY
Y    YY  Y YY Y
Y
YY
Y
/Y  YY
Y   Y YY 
 Y

'Y  8Y YYY&


YYY YY> YY   YY3 Y6Y Y 
0YYdY

Y Y Y
Y
Y YY
  Y
Y YY3 Y YY
Y   Y Y

YY

Exemplo
for(byte r = 0; r < 255; r++){
for(byte g = 255; g > -1; g--){
for(byte b = 0; b < 255; b++){
if (analogRead(0) > 250){ goto bailout;}
// more statements ...
}
}
}
bailout:

Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c 

G

  
6 YY Y
Y  Y

Exemplo
int a = 13;

Dica

&
Y Y  2Y
Y YY YYd 
Y
Y
YY Y Y)Y/YYYY
 YY3d YYY YY
Y YYd 
Y 8Y
Y YuYY
YY Y Y
  dY
Y  Y 3 Y
Y Y  Y YYYY
Y YYd 
Y Y
Yd 2  8Y  YY Y  YY  Y

Y
 
*dYY
YY  Y Y 
Y YY*YYY
 YY
Y 
0Y
 8Y  Y /8YY Y Y
Yd2YY 
YY   Y

6YdY Y@@Y dYYY


YY
Y Y@ @Y&
  Y Y YY
Y YY&
  Y YYdYY (Y  Y d Y d   Y
Y  Y
Y  dd  Y  Y Y
Y 
Y
Y  Y  YYYY&
  Y Y
dY YYY  Y Y
YdY
Y Y Y Y   Y Y2YY&
Y

Y  Y3 Y=Y  Y

'Y Y YY  YY


Y
Y  
YYY (Y&
  Y   Y
  Y
YdYY
YY Y/Y&
Y Y Y  Y

 Y    YY Yd Y Y 


 Y*YY Yu *Y&
  Y
  YY
Y YdY 
Y
Y   Y YYYdY
 
YY  Y
*,6*'YY
Y
 
8YY  Y'( YY
Y   YYY  Y'+,YY
Y
)*Y

Y&
YY
Y YdYYYd  8YY
YY  Y YY  YY[dY@ @Y
Y3Y  YY[dY@@Y&
 Y dY2 Y
Y 
Y&
YY&
Y Y Y

Y@',*@Y YYdYYYY  YY3 Y Y Y
YdY
Y Y
&
  Y

*dY &
  Y
YY Y Y Y   YY&
Y YY   Y Y
YY
YY Y Y
Y Y
Y
Yd  8YYdYYY  d Y
 YYY /Y Y
YYYdY
YdY
Y
Y
Y Y YY
 YY
Y    Y

c  

Os principais usos das chaves
Funes
void myfunction(datatype argument){
sentena(s)
}
Loops
while (expresso booleana)
{
sentena(s)
}

do
{
sentena(s)
} while (expresso booleana);

for (inicializao; condio de trmino; expresso de incremento)


{
sentena(s)
}
Sentenas condicionais
if (expresso booleana)
{
sentena(s)
}

else if (expresso booleana)


{
sentena(s)
}
else
{
sentena(s)
}
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c 





*   YY Y YY&
YY
 YY YYd1YY
Y
YY
YY YYYYYYY   YY  YY YY/ YYY
 YY Y Y
YY3 Y Y Y,Y

)Y> Y3 Y Y   YY=


YY  Y
YYYYY
  YA Y
 Y Y  Y YY
Y YY
Y   Y

Exemplo
x = 5; // Esta uma linha simples de comentrio. Qualquer coisa depois das barras um
comentrio
// at o fim da linha

/* este um bloco de comentrio - usado para "comentar" blocos inteiros de cdigo

if (gwb == 0){ // no h problema em uma linha simples dentro de um bloco de comentrio


x = 3; /* mas outro bloco de comentrio invlido */
}
// no esquea de fechar o bloco de comentrio, eles tm que ser equilibrados
*/

DicaY

?
 Y dY/   YYY3 Y@ @YY YYY
Y Y d  Y Y
dY Y&
Y Y YYY  Y YY Y Y3 YYY
 YY   Y Y Y&
YY  YY  Y Y YY  Y> Y&
 Y
 Y 2Y
Y8Y
Y&
 Y
YY YY Y Y
=Y
/ 0YY
Y
Y > Y

c  

 
 YY
Y  Y
Y> Y Y 
Y*Y&
Y YY Y Y
Y YY
Y
  Y Y&
YYY=Y  Y*  Y  Y Y
Y Y
YYY
3 Y Y Y)Y  Y
 
Y1  YYY  YYdY  Y Y Y
Y Y

Y Y
Y
Y Y = d Y8YY/8Y
Y Y Y  Y&
Y Y Y
 YY
Y  YY 
YY
Y
Y  Y
Y Y Yd dY'YYY/Y
dYY
 
YYdY
Y/Y Y  Y

YY 8YYdYdY YY dYY  Y  YY dYY


 YY dY Y
 Y

YY /Y Y  Y Y 


Y
YYYY Y 
Y*Y

Sintaxe
 Y (*  YdY

  &
Y&
YYYY   Y

Exemplo
#define ledPin 3
// O compilador vai substituir quanquer meno a ledPin pelo valor 3 no momento da
compilao.
Dica

'Y Y YYd 


Y3YY Y  YuYd1Y 
Y
YY  Yd Y YY  Y
Y Y YY

#define ledPin 3; // isto um erro

(YY YY  Y YYY3YY  Y


dY
Y-Y

#define ledPin = 3 // isto tambm um erro




c  

 
#includeYY
 YY 
Y
Y  Y Y
YY Y YY YY

Y Y >Y Y  Y Y Y 


Y*Y
Y Y
0Y[  8YYY.Y
  Y  dd Y   YYY
Y

Y  Y  Y Y1  YYY  Y*Y*Y*YYY1  YY YY Y&


 YY

Y Y YY Y&
Y

  &
Y&
Y#include8Y Y Y  YY#define8Y YdY YYd 
Y Y Y

Exemplo

Y/Y 
Y
Y  Y&
YY
  2 YY2 Y  Y Y3 YYY dY Y Y
Y Y  2YY YYYY   Y Y3 Y A YY YY
Y Y Y
Y Y  Y

#include <avr/pgmspace.h>

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


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

-

 
  
2 YYdY Y&
Y Y.Y  Y Y Y Y 
Y Yd dY&
Y Y.Y&
 Y
)Y Y Y 
Y Y Y 
Y YY*YY Y Y Y   YYY
Y
    Y  Y &
Y
  2 YY 8Y Y&
Y Y
Y&
Y
Y 
  Y)Y Y
Y   Y YY   YY
YYdY Y/Y.Y  Y Y Y Y 
YY
2 YYdY Yd dY&
Y Y.Y&
 Y
Exemplo
int sensVal; // declera uma variavel do tipo inteiro com o nome de sensVal
senVal = analogRead(0); // armazena o valor da voltagem (digitalizado) no pino
analgico 0 em sensVal
Dicas de programao
Yd dY.Y&
 Y  YY2Y YYYdY&
YY&
Y2 YuYY YY YY

   YYdY2  Y YY Y
'Y 
YY Y Y   YBY-YCY Y Y 
Y YYY Y YYBY
--YCY Y Y 
Y
8Y&
Y
Y&
 Y
Y/0YY 
 Y
Y Y








c  

a
 
 


DescrioY
Y Y YY8Y  8Y
8Y
Y&
   d Y Y  Y Y
YYY Y
 YY Y Y  Y Y 8Y 8YY/Y -Y
YY$8Y  Y
&
Y YY-YY  Y YY   Y&
Y
YY Y/YYY
 YY Y
Y&
YY&
Y YY2  Y Y Y Y  YY    Y!YY
Y YYYdY Y%$Y

Y dY[%$YuYY YY Y Y Y  Y  YY Y YY
 Y Y
 
Y
uY
Y Y YY Y YY
Y Y Y 
8Y YY  Y Y Y

 Y Y

 YYY 
Y
Exemplos
y = y + 3;
x = x - 7;
i = j * 6;
r = r / 5;
Sintaxe
result = value1 + value2;
result = value1 - value2;
result = value1 * value2;
result = value1 / value2;
Parmetros:
d
!Y&
&
Yd dY
Y  Y
d
$Y&
&
Yd dY
Y  Y
Dicas de programao
6Y u Y&
YY  Y  YY   Y 8Y Y
Y 
YY  Y Y
/YY"Y Y!"""Y
 YY
Y >Y  dY
6Y Y Y Yd d Y&
Y=Y YY
   YYYY Y
 Y d Y
Y 
Y
6Y * YY YY&
Y
Yd dY Y@ YYd@YYYY&
YY Y  Y   Y
"Y[Y!Y
Y"Y[Y%$Y
6Y Y  Y&
Y  Y Y0Y
Yd d Y Y Y8YY YY Y
Y Y
 dY Y YY Yd  Y Y
Y
6Y 6YY Y Y YY dY  Y
Y Y Yd dYY
YY
 
Y


c 

r 
 

DescrioY
*
YYY Y d Y&
 Y
Y  YY d YY
YDY> YY Y
Yd dY  Y
Y
YY  YYY Y Y
YY
Sintaxe

 Y-Y d  YrY d Y
Parmetros
d  YY >Y&
Y Y d Y
d YY >YY d YY
Retorna
Y Y
Exemplo
x = 7 % 5; // x agora comtm 2
x = 9 % 5; // x agora comtm 4
x = 5 % 5; // x agora comtm 0
x = 4 % 5; // x agora comtm 4
Cdigo de exemplo
/* atualizar os valores de um array um de cada vez em um bloco */

int values[10];
int i = 0;

void setup() {}

void loop()
{
values[i] = analogRead(0);
i = (i + 1) % 10; // operador de resto de diviso atualiza a varivel
}
Dica
)Y Y YY Y d Y Y
  YYd d Y YY


c 



 ---



 

if8Y&
YY
 Y=
 YY
Y Y Y8Yd  Y&
 Y
Y YY  8Y
YY/Y
Y 
Y Y Y
Y   YdY)YYY
Yd  Y YY
if (algumaVariavel > 50)
{
// faa alguma coisa
}
)YYYY
 dYY YY Y Yd d Y YY
YY  YY
 Y&
Y"YuY8YYY 2Y
YY  Y* Y Y
Y  YYY  Y
&
Y Y  Y Y1  YYd   YY3 Y&
Y Y  Y YdY GYY   YY
YYYY Y3 Y
YdY YY  Y3Y
Y  Y YY3Y
dY
Y> Y Y Y3 Y  YY
 YYd 
Y&
Y Y/
 Y Y Y   Y
if (x > 120) digitalWrite(LEDpin, HIGH);

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

if (x > 120) {digitalWrite(LEDpin, HIGH);} // todos so corretos


Y  Y&
Y Y Yd   Y  YY
Y YY Y
Y Y Y
Operadores de comparao:
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)
Cuidado:
, Y
YYY
Y  Y Y Y
Y Y Y 
YY Y/Y-Y!"YY)Y Y Y 
Y
 YY
Y Y Y   YYYYdY!"Y Yd dY/YY   YY Y Y Y
Y
Y Y/Y--Y!"Y8Y&
YY
Y Y Y8Yd  YY/YY 
YY!"Y
Y YY> Y Y
3YYd   YY/YY 
YY!"8YYY  YY Yd  Y
YYY&
YY 
Y*Y Y&
YY
YY Y 
Y
YdY.Y  Y/-!"Y Y

Y Y!"YY Y Yd dY/YYY Y Y 
Y YY
Y Y Y
  8Y Y/YY Y!"Y YY   Y< <Y 
Y
YdYY!"8Y&
Y YY
d   Y,*68Y  Y&
Y >Y  Y Y2YYY&
 Y.Yd   Y
* &
  8Y Y/Y-Y!"Y YYd   8Y&
Y YYY&
Y Y&
 Y
Y

Y< <Y    YYdY!"Y Y


  Y Yd dY/Y&
YY YYY&
Y Y
ifYY YY
 YYY Y
Y

Y Y Y   YdY Y
 
Y Y


c 




 

Y Y YY
 Y  Y Y YY
Y  Y Y

&& ("E" lgico)


   Y YYY  Y YYd   8Y
Y=YY  Y Y@@YY
Y
Yd   8YY
if (digitalRead(2) == 1 && digitalRead(3) == 1) { // ler dois interruptores
// ...
}

verdadeiro apenas se os dois interruptores estiverem fechados.


YY
|| ("OU" lgico)
   YY
Y Y YYd   8Y
Y=YYY  Y@
@YY
Y YY
d   YY
if (x > 0 || y > 0) {
// ...
}
Yd   Y YY/Y
YYY Y&
Y"Y

! (negao)
   Y YYY YYYY
if (!x) {
// ...
}
Yd   Y YY/YYY YY/YY 
YY"Y
Cuidado
*  &
[Y Y Y 
YY Y Y@@Y  YY@@YYY Y3 Y Y Y
@@Y  Y YY@@YYY  Y Y  Y
(YY Y Y 
YY Y@)6@Y  YY@pp@YYY Y3 Y Y Y@p@Y
)Y Y3 Y Y Y@'E)@Y  YY
Y@m@Y YYYYY Y Y@@8Y
YY Y Y2Y YY
 YY&
Yd1Y =Y
Exemplos
if (a >= 10 && a <= 20){} // verdadeiro se a estiver entre 10 e 20


c 


a  !"#
Operadores de bits
)Y Y Y Y 2Y 
YY dY Y Y Yd d YY=
YdY
Y Y
&
   Y YY YY7
Y Y Y /YY Y
Y/ Y
 YYY
Y&
Y YY   Y&
Y

Operador de bits AND (&)


)Y Y Y Y'(YYY*DDYY
Y YY
 Y Y
Y
Y/0Y  YY
 2Y
YY Y Y Y Y Y
Y Y/0Y Y YYY
YYYY
 Y Y Y  YY!YY
 Y YYYY!8YY   YY"Y)
Y Y Y
/YYYY
0 0 1 1 operando1
0 1 0 1 operando2
----------
0 0 0 1 (operando1 & operando2) - resultado de retorno
Y
YY Y Y  YY
YdY Y!Y 8Y Y
 YY Y
Y/0Y Y2YY
&
YY!Y0Y'(Y 
A YY
Y Y Y3 Y
int a = 92; // em binario: 0000000001011100
int b = 101; // em binario: 0000000001100101
int c = a & b; // resultado: 0000000001000100, ou 68 em decimal.
* Y
Y Y!Y YYY'(YYY Y
 YY 8YY YY!Y Y
 Y
Y2  YYY
 YYdY"""""""""!"""!""8Y&
YYY Y Y  Y
6Y Y
Y Y
Y Y Y Y Y'(YY  Y
Y Y Y
YdY  8Y
&F  Y Y Y Y=YY/Y /YY
Y/Y

Operador de bits OR (|)


)Y Y Y Y)*Y
YY*DDYYY Y YYd 8YpY*YY YYY 2Y
 
YY Y Y Y
Y/0Y
YY
YYY
 Y YYY!YY
Y
Y Y Y  YY!8YY   YY"YY
YdY
0 0 1 1 operando1
0 1 0 1 operando2
----------
0 1 1 1 (operando1 | operando2) - resultado de retorno
Y
Y Y Y3 Y
int a = 92; // in binario: 0000000001011100
int b = 101; // in binario: 0000000001100101
int c = a | b; // resultado: 0000000001111101, ou 125 em decimal.
Programa de Exemplo
6Y
Y
YYY Y Y Y'(YY)*YYY&
YY YY4[7  [
dYY
YYY   Y
YYY
Y >Y YY Y&
Y YY
YY Y Y Yd YY
Y Y YY YY Y Y
Yd2Y
)*,(YY
Y  Y[ 
Y&
YYYY Y Y Y Y Y   Y
"8!8$8%8-888YuY Y
Y!YY
Y Y 8Y YY Y YYA AYY Y Y Y
Y  YY Y Y YY Y 7 Y(Y YYdY )*,(Y-Y
""!!"""!GYY&
Y2YYYY Y$8%YYYYA AY6Y YYY&
Y
YY
 Y Y Y"YY!Y&
YY
 YY
Y Y
Y 8Y
Y=8Y  Y Y

Y
YY

c 

'Y YYYY dY
6Y 4YY )*,(YY Y YY Y&
Y&
Y YYY Y'(Y
6Y * YYdY   Y Y )*,(YYY dYdY Y Y&
Y&
Y YYY
 Y)*Y
int i; // varivel do contador
int j;

void setup(){
DDRD = DDRD | B11111100; // marca a direcao dos bits para os pinos 2 a 7 deixando o 0 e o
1 intocados (xx | 00 == xx)
// o mesmo que pinMode(pin, OUTPUT) para os pinos 2 a 7
Serial.begin(9600);
}

void loop(){
for (i=0; i<64; i++){

PORTD = PORTD & B00000011; // limpa os bits de 2 - 7, deixa os pinos 0 e 1 intocados (xx &
11 == xx)
j = (i << 2); // desvia os bits da variavel 2 bits para a esquerda para evitar os pino 0
e1
PORTD = PORTD | j; // combina a informao da porta com a nova informao para os
pinos dos LEDs
Serial.println(PORTD, BIN); // debug para verificar a mscara
delay(100);
}
}

Operador de bits XOR (^)


A Y
Y Y
Y
YYY*DDY Y+*46u Y)*Y
Y/
 dYY  YY
+)*YY 1YY
 Y@&
[@YY YY YYY Y Y Y 
/Y]Y
)Y
 Y YYY!YYY  Y Y Y  YY  8YY   Y Y"Y
0 0 1 1 operando1
0 1 0 1 operando2
----------
0 1 1 0 (operando1 ^ operando2) - resultado de retorno
6Y Y3 Y Y/Y
int x = 12; // binario: 1100
int y = 10; // binario: 1010
int z = x ^ y; // binario: 0110, or decimal 6
)Y Y+)*YY&F  Y
  2 YY dY
Y Y Y Y
Y/Y  Y'Y
 Y Y YY Y
Y!YY Y  YY d 8YY Y
Y2YY YY  YY
 Y /Y Y
YYY YY Y  YY
// Piscar_Pino_5
// demonstrao para o Exclusive OR
void setup(){
DDRD = DDRD | B00100000; // marca o pino digital 5 como saida.
Serial.begin(9600);
}

c  

void loop(){
PORTD = PORTD ^ B00100000; // inverte o bit 5 (digital pino 5), mantem os demais
intocados.
delay(100);
}



 $
)Y Y Y Y'),Y YY*DDYYY Y Y Y

1YmY(  Y Y YYYpYY
 YY  YY Y!Y YY YYdY dY Y Y Y Y/Y
YY
0 1 operando1
----------
1 0 ~ operando1
int a = 103; // binario: 0000000001100111
int b = ~a; // binario: 1111111110011000 = -104
,d2Yd1YY
 YYdY
Y >Y  dYY
 Y YY YYY
&
YY Y Yd YY
Yd dY YY Y Y Y Y YuYY YY!YY >YY  dY
Y Y Y  Y  dYY  dYY Y Y YY  Y7 Y 0Y
Y5 #  Y
(Y Y 8YY  Y Y&
YY&
&
Y  Y/8Ym/YYYY&
Y[/[!Y
Yd28YY Y Y YY
Y/Y  Y Y
Y
Y
Y = Y


c 



  %     

A Y  Y Y Y d Y Y YY*DDYY Y d YYY&
 YYYYYY  YY
Y Y2YY&
YY Y Y Y Y&
 Y=Y d  YY >Y   Y
Y Y Y Y Y  Y
Sintaxe
d dYY
G G Y
d dYY
G G Y
Parmetros
d dY[Y8Y 8Y Y

G G Y  Y-Y%$Y
Exemplo:
int a = 5; // binario: 0000000000000101
int b = a << 3; // binario: 0000000000101000, ou 40 em decimal
int c = b >> 3; // binario: 0000000000000101, ou de volta ao 5 como no inicio
?
 Yd1Y d YYY&
 Y
YdY/Y
YY >Y Y Y/YY Y YY&
 YY
/YY Y
int a = 5; // binario: 0000000000000101
int b = a << 14; // binario: 0100000000000000 - o primeiro 1 em 101 descartado
uYd1YY2Y Y&
Y  
Y Y!YY
YdYd YY d  YYY YY8Y
Y Y
 Y Y Y Y YYY&
 YY&
YY
  YY Y Y  YY$Yd Y
Y Y Y&
 Y Y/YYY1  Y Y$YY Y/0Y YY

  2 Y
1 << 0 == 1
1 << 1 == 2
1 << 2 == 4
1 << 3 == 8
...
1 << 8 == 256
1 << 9 == 512
1 << 10 == 1024
...
?
 Yd1Y d YYY  Y
YdY/Y
YY >Y Y Y/8YY Y  Y Y
 Y Y  Y Y/YuY/YY Y Y 8YY Y Yd YYY Y Y Y&
Y  YY/YY  dY
Y
Y'YYY Y Y YY  YYY Y  YY20Y 3 Y Y
int x = -16; // binario: 1111111111110000
int y = x >> 3; // binario: 1111111111111110
Y YY Y/ Y Y YY&F  Y YYY Y = Y
  8Yd1Y Y =Y d Y  YYYY2Y'YYd1Y dY
  2Y

YY Y Y Y  Y&


Y
Y
YY  YY  Y Y  Y
int x = -16; // binario: 1111111111110000
int y = (unsigned int)x >> 3; // binario: 0001111111111110
uYd1YY
YYd YY/ Y Y 8Yd1Y Y
YY Y Y d YYY  Y
YY
Y Y Y d Y
Y >YY1  Y Y$Y Y/Y
int x = 1000;
int y = x >> 3; // diviso inteira de 1000 por 8, resultado y=125.


c  






a  -!-
)Y Y Y YY 2Y
Y 
Y Y dY Y Y Yd d YuY&F  Y

  2 YY Y
YY Y  Y
=YY Y Y Y'(YYY Y Y Y)*pYY YY
Y
   Y
YY
operador de bits composto AND (&=)
Descrio
)Y Y Y YY'(Y-YY&F  Y
  2 Y Y
Yd dYY
Y  Y
YY&
Y
Y YY 
Y Yd dY=Y YY4)5YY"YY  Y
YY
 Y YYY@ 2@Y
Y@ @Y Y Y

Sintaxe:
x &= y; // equivalente a x = x & y;
Parmetros:
/Y
Yd dY Y Y8Y Y
Y Y
Y
Y  Y Y Y8Y 8Y
Y Y

Exemplo:
  8Y
Yd Y Y Y Y Y'(YY
0 0 1 1 operando1
0 1 0 1 operando2
----------
0 0 0 1 (operando1 & operando2) - resultado de retorno
Y
 Y&
YYY Y'(Y
Y Y"YY  YY"Y  YYYY
Y
d dY Y YYYY""""""""Y-Y"Y
 Y&
YYY Y'(YY
Y Y!YYYYY  YYY
!!!!!!!!Y-YY
YY
* &
  YY YYY2Y
YY Y Y Y
Yd dY  / YY  Y
YYY3Y
YY Y Y YY'(Y-YY
Y  YY/Y!!!!!!""Y
1 0 1 0 1 0 1 0 varivel
1 1 1 1 1 1 0 0 mscara
----------------------
1 0 1 0 1 0 0 0

varivel no modificada
bits limpos

&
Y YYY YYY Y Yd dY
 
YY Y/Y
x x x x x x x x varivel
1 1 1 1 1 1 0 0 mscara
----------------------
x x x x x x 0 0

c  

varivel no modificada
bits limpos

YY
myByte = 10101010;
myByte &= B1111100 == B10101000;
Y
operador de bits composto OR (|=)
Descrio
)Y Y Y YY)*Yp-YY&
  Y
  2 Y Y
Yd dYY
Y  Y
YY&
Y
Y YY 
Y=Y YY!Y
Sintaxe:
x |= y; // equivalente a x = x | y;
Parmetros
/Y
Yd dY Y Y8Y Y
Y Y
Y
Y  Y Y Y8Y 8Y
Y Y
Exemplo:
8YYd YYY  Y)*YpYY
0 0 1 1 operando1
0 1 0 1 operando2
----------
0 1 1 1 (operando1 | operando2) - resultado de retorno
 Y&
YYY Y)*YY
Y Y"YY  YY8Y YYYY

Yd dY Y8Y


YpY""""""""Y-YGY
Y&
YYY Y)*YY
Y Y!YY YY!Y
YY!!!!!!!!Y-Y!!!!!!!!GY
* &
  YYYY Y"YY!Y Y
Yd dY  / YY YY
 Y
YY
 Y Y YY)*Yp-YYY  Y""""""!!Y
1 0 1 0 1 0 1 0 varivel
0 0 0 0 0 0 1 1 mscara
----------------------
1 0 1 0 1 0 1 1

variivel no modificada
bits alterados

&
YYY YYYd d Y
 
YY Y/Y
x x x x x x x x varivel
0 0 0 0 0 0 1 1 mscara
----------------------
x x x x x x 1 1

variivel no modificada
bits alterados
uY Y
myByte = B10101010;
myByte |= B00000011 == B10101011;


c  

DD 
 

DescrioY
 Y
Y  Y
Yd dY   Y
Y
 Y!Y
Sintaxe
x++; // incrementa x em 1 e retorna o antigo valor de x
++x; // incrementa x em 1 e retorna o novo vaor de x

x-- ; // decrementa x em 1 e retorna o antigo valor de x


--x ; // decrementa x em 1 e retorna o novo valor de x
Parmetros
/Y
Yd dY Y Y Y
Y Y d Y Y  Y
Retornos
)Y  Y
Y  Y   YY   YdY Yd dY
Exemplos
x = 2;
y = ++x; // x agora contm 3, y contm 3
y = x--; // x contm 2 de novo, y ainda contm 3


D--&--
DescrioY
* 2Y
YY  YY
Yd dYY
Y  Y
Yd dY)Y YD-YYY

YY Yd 0Y  Y Y /Y/ Y  Y /Y
Sintaxe
x += y; // equivalente expresso x = x + y;
x -= y; // equivalente expresso x = x - y;
x *= y; // equivalente expresso x = x * y;
x /= y; // equivalente expresso x = x / y;
Parmetros
/Y&
&
Y Y Yd dY
Y&
&
Y Y Yd dY
Y  Y
Exemplos
x = 2;
x += 4; // x agora contm 6
x -= 3; // x agora contm 3
x *= 10; // x agora contm 30
x /= 2; // x agora contm 15











c 


 
*  YYd d Y[  Y Y 
Y
YYY
 YY YYY
 Y  Y d Y'3Y  YY  YY
Y

Definindo nveis lgicos, verdadeiro e falso (constantes booleanas)


A Y
Y  Y
 YY Yd  Y
Y  Y Y 
Y

YtrueYd   8YYfalseYY

false
YYY Y Y Y
YYY  YY"Y2Y

true

YY&
  Y  YY!8YY&
YY8YY
YY
Y  Y YY
?
&
Y  Y&
Y YY2YY,*68Y
Y Y Y 8Y[!8Y$YY[$""YY Y  Y
Y
Y
'Y&
Y
YYYY   YY >
Y  Y YA A8Y4)58Y ' 6,8YY)6, 6,Y

Definindo nveis de pinos, HIGH e LOW


?
 YY Y
Yd YY
Y Y  Y Y Y  YdY&
Y
Y Y Y
YHIGHYYYLOW /Y

HIGHY
)Y    Y YA AYY1  YY
Y Y Yd Y
Y
Y   YYY YY
Y
  Y ' 6,Y
Y Y)6, 6,Y?
 Y
Y YY  
 YY ' 6,YY 7 8YY Y
Y
Y  * 8YY   Y  YYA AYYYdYY Y%YdY
Y Y
6Y YY YY  
 YY
Y ' 6,YYY 7 8YY  YY
Y
A AYY
Y  5 8Y Yd Y@d @YY Y  Y Y$"H I Y&
Yd Y YY 
Y Y Y
YA AYY YY&
YY=Y YYYY
Y 
Y/ Y
?
 Y
Y YY  
 YY)6, 6,YYY 7 8YY YYA AYYY  5 8Y
Y YYYdY'Y YY Y d Y YYY/Y Y
Y4(Y&
Y Y
  YY
Y YY YY8Y
YY
Y Y  
 YY)6, 6,YY YY
4)5Y

LOWY
)Y    Y Y4)5YY Yd Y   Y Y YY YY ' 6,Y
Y)6, 6,Y
?6 Y
Y YY  
 YY
Y ' 6,YYY 7 8YY YYY  * 8YY
   Y  YY4)5YYYdYY Y$YdY
Y Y
?
 Y
Y YY  
 YY)6, 6,YY 7 8YY YY4)5YYY  5 8Y
Y YY"YdY'Y YY Y@  @Y YYY/YY Y
Y4(Y&
Y
 Y  YY
Y YY YYDYd8Y
YY
Y Y  
 YY)6, 6,YY
 YYA AY

Definindo pinos digitais, INPUT e OUTPUT


Y   Y YY Y YINPUTYY YOUTPUTY7
Y
Y Y Y ' 6,YY)6, 6,YY
 7 Y
Y   YY
Y Y Y
Pinos configurados como Inputs
)Y Y Y
YY  
 YYINPUTYY 7 YYY
Y Y YY
 A  Y6Y Y Y/ YY&
YY Y  
 YY ' 6,Y2Y  Y

c 

/ Y&
 YY 
Y Y&
YY Y8YYY
Y Y Y!""Y
7YY YYY Yu Y YY> YYY
Y YY YY  2Y
Y4(Y

Pinos configurados como outputs


Y  
 YYOUTPUTYY 7 YYY
Y Y Y /Y  A  Y Y   Y
&
YY Y Y Y&
   Y Y YY
Y 
Y)Y Y YY
 Y Y Y  dY
Y  Y Y  dYY-"YY  Y Y
Y
  dY
Y 
Y Y2YY&
YY=Y> YY  2Y
Y4(YY 
   YY
Y 
Y Y Y Y  
 YY

YY YY    Y
Y 
YY

[ 
YYYY
YY
Y Y YYdYY&
   Y Y Y  YY
Y
 Y YYY YY
   YY dY
Y1YYY8Y Y8Y
Y 
Y
Y Y Y   Y










c  


  
*  Y  YY >Y
 Y  Y Y3 Y Y YY >YY Y
Y <8YYd1Y YYY YYY   Y6YY4Yd=Y /Y
' Y  Y  YY Y YY!"Y  8YY Y  Y Y
Y
 YY Y >YY
YY
Base Exemplo Formatador Comentrio

10 (decimal) 123 nenhum

2 (binrio) B1111011 'B' inicial somente valores de 8 bits (0 a 255) caracteres vlidos 0-1

8 (octal) 0173 '0' inicial caractres vlidos: 0-7

16 (hexadecimal) 0x7B '0x' inicial caractres vlidos: 0-9 A-F, a-f


DecimalYY YY!"YYYY  Y Y Y
YYY&
Yd1Y Y
 Y
*  YY
Y /YY
 YY   Y
/Y
101 // o mesmo que 101 decimal ((1 * 10^2) + (0 * 10^1) + 1)
BinriosYY YY$Y YYY"YY!YYd  Y
/Y
B101 // o memso que 5 decimal ((1 * 2^2) + (0 * 2^1) + 1)
)Y Y  YY YYYY Y Y"Y"YYY$Y!!!!!!!!YuYY
 d  Y Y
Y >Y Y!Y Y YY  Yd1Y Y2Y Y
YY Y
 /Y
,Y YY Y#Y YYY Y Y"Y"Y Y$Y!!!!!!!!Y Y Y Y d  Y
Y 
Y Y Y!Y Y Y YY
Y Y Y YY[Y
Y
YY
myInt = B1100110010101010; // entrada invlida
myInt = (B11001100 * 256) + B10101010; // B11001100 o primeiro byte e B10101010 o
segundo
OctaisYY YY Y YY Y"YYYYd  YY YY  YY
 /Y@"@Y
/Y
0101 // o mesmo que 65 decimal ((1 * 8^2) + (0 * 8^1) + 1)
*
 Y
DY dYY
YY   Y Y  Y Y    Y 
Y
Y2Y.Y Y Y
Y
  YY&
Y YY&
YY  Y YYdYYY
Hexadecimais (ou hex)YY YY!Y*Yd  YY Y"YY YYYY YYYGYYdY!"8Y
YdY!!YYY&
YdY!YY/   YY  YY /Y@"/@Y'Y[Y YY
 Y YY

Y&
 YY >
Y[Y
/Y
0x101 // o mesmo que 257 decmal ((1 * 16^2) + (0 * 16^1) + 1)
Formatadores U e L
Y Y
Y  Y  YY YY
Y YYY  0Y  Y YdY Y
  Y
Y  Y  YY
Y Y Y  Y Y Y
6Y
Y<
<Y
Y<6<YYYY  YY Y Y Y  Y
   Y/Y%%
Y
6Y
Y<<Y
Y<4<YYYY  YY Y Y Y Y/Y!"""""4Y
6Y
Y<
<Y
Y<64<YYYY  YY Y Y Y Y  Y
   Y Y
/Y%$
Y

c  



  &
d d Y Y YY Y  YdYd   Y
YYYY
Exemplo
int LEDpin = 5; // LED no pino 5
int switchPin = 13; // interruptor no, outro lado conectado ao terra.

boolean running = false;

void setup()
{
pinMode(LEDpin, OUTPUT);
pinMode(switchPin, INPUT);
digitalWrite(switchPin, HIGH); // "levanta" o resistor
}

void loop()
{
if (digitalRead(switchPin) == LOW)
{ // interruptor pressionado - resistor se mantm "levantado"
delay(100); // espera para filtrar rudo da chave
running = !running; // inverte o valor da varivel running
digitalWrite(LEDpin, running) // indica via LED
}
}
Y Y YY YYY Y
Y
Y
Y
Y
 
Descrio
6Y Y Y  Y&
Y
Y!YY Y3 YY2 YYdY Y
YY*Y  Y
Y Y Y<Y<YY 1YYYYY Y&
8Y Y  Y  YY
YYY

1YYY<<YY  Y YY[Y Y[Y
YY@*@Y
  YYY2  YY >Y1Y YdYY3 Y  Y YY
u* Y Y   Y&
YY dY 2Y0Y  YY8Y Y&
 YYdYu* Y
YYY
  2 YY<<YDY!YdY8Y  Y&
YYdYu* Y YY

YYY=YY
  Y Yu   YY Y Y YYYYY
2 YY >Y
)Y Y Y  YYYY Y Y  8Y Y&
Y 2Y&
YY dY  Y >Y Y[!$Y
Y!$Y Y
Y Y Y  Y Y  Y Y!YYY Y
YY Y Y  YY
Exemplo
char myChar = 'A';
char myChar = 65; // ambos so equivalentes
Y
Y
Y
Y
Y

c  

'
DescrioY
6YY2 Y
Y >Y YY Y Y  8Y Y"YY$Y
Exemplo
byte b = B10010; // "B" o formatador binrio (B10010 = 18 decimal)
Y
Y
Y

DescrioY
 YYY  Y Y Y  YY2  Y
 Y2Y Y >Y Y$YY Y
 YY /Y Y[%$YY%$YdY Y Y[$]!YYdY / Y Y$]!Y[!Y
Y2 Y >Y  dYY
Y Y Y* YY  Y)Y Y Y8Y
Yd2Y Y Y Y Y@ @8YY  2YYY >YY  dY
Y  Y
)Y
Y
Y Y 
Y Y >Y  dYYd18Y YY0Y  Y

  Y Y Y  YY Y  Y YY
Y Y  Y Y
 
Y YY Y Y.Y  YY
Exemplo
int ledPin = 13;
Sintaxe
int var = val;
6Y dY[YY Y Yd dY Y
6Y dY[YYdY    YYYd dY
Dica de programao
?
 Y
Yd dY/ Y
YdY / Y Y&
YY2YY@  @YYdY Y Y&
YY
2Y'Y&
Y YY Y
Y 0Y
int x
x = -32,768;
x = x - 1; // x agora contm 32,767 - decaindo na direo negativa

x = 32,767;
x = x + 1; // x agora contm -32,768 - decaido
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c  


  

DescrioY
Y Y  Y  YY YYYY&
Y Y Y YY2 YdY Y$Y
Y  8YY dY Y2 Y >Y  d8Y2 Y YdY  dY
  YY /Y Y"YY%Y$]![!Y
Y  Y Y YY Y Y  Y Y Y YYY Y YYY  'Y
Y
Y Y Y&
YY  8YYY Y Yd YY!8YY >YY  YY  dY
Exemplo
unsigned int ledPin = 13;
Sintaxe
unsigned int var = val;
6Y dY[Y Y Yd dY Y Y Y Y  Y
6Y dY[YYdY    YYYd dY
Dica de programao
?
 Yd d Y/ Y
Y  Y / YY@ @YYYdY Y
Y  Y Y
'Y&
Y YY Y
Y 0Y
unsigned int x
x = 0;
x = x - 1; // x agora contm 65535 - decaindo na direo negatica
x = x + 1; // x now contains 0 - decaindo
Y
Y


DescrioY
 d Y Y Y4 Y1Y
Y Y  YY2  Y Y >8YYY2Y Y
2 Y%$Y Y-Y8Y Y[$!--%8-YY$!--%-Y
Exemplo
long speedOfLight = 186000L; // veja Constantes inteiras para a explicao do 'L'
Sintaxe
long var = val;
6Y dY[YY Y Yd dY Y Y Y
6Y dY[YYdY    YYYYd dY
Y
Y








Y
Y
Y

c 




  


DescrioY
4 Y Y  Y YY YYd d Y Y Y  YY2  Y

 Y(  Y YY Y 8YY Y  Y Y2 Y >Y  d8Y
  YY /Y Y"YY-$ - $ Y$]%$Y[Y!Y
Exemplo
unsigned long time;

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

void loop()
{
Serial.print("Time: ");
time = millis();
//imprime o tempo desde que o programa comeou a rodar
Serial.println(time);
// espera um segundo de modo que o programa no envie quantidades absurdas de dados
delay(1000);
}
Sintaxe
unsigned long var = val;
6Y dY[YY Y Y
Yd dY Y Y
6Y dY[YYdY    YYYd dY
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c  



DescrioY
, Y Y  YY >Y Y Y

 8Y
Y >Y&
YY
Y Y  Y'>Y Y
 Y

 YY&F  Y
 YY/ YdY YY 
Y&
Y1Y Y

Y&
YY  YYY'>Y Y Y

 Y YY /Y Y%8-"$$%D%YY[
%8-"$$%D%YYY2  YY%$Y Y-YY Y Y
'>Y Y Y

 Y YY/YY YY
 Y Y&
 Y Y Y
/Y"YY%"Y Y YY 
YY$"Y1Y d8YYd2Y 8Yd  Y&
YYdY
Y Y
 Y YY >YY Y&
Y
YdY&
 Y[   Y
Y  Y Y Y

 YYY
Y Y Y&
YY Y  Y Y 2Y Y 
8Y
dY YYd  Y8YY/8Y
YYY&
Y YYd  Y / YY
Y
Y
Y&
YYYY< Y  Y&F  YYYY dY 
YY Y


 YY  Y Y  YY
 YYd  Y
Exemplos
float myfloat;
float sensorCalbrate = 1.117;
Sintaxe
float var = val;
6Y dY[YY Y Y
Yd dY Y Y

 Y
6Y dY[YYdY    YYYd dY
Cdigo de exemplo
int x;
int y;
float z;

x = 1;
y = x / 2; // y agora contm 0, inteiros no suportam fraes
z = (float)x / 2.0; // z agora contm .5 (voce deve usar 2.0, no 2)
Dica de programao
u   Y
YYY 2YY0YY  Y&
 Y d  Y
Y Y
7
  &
YY1  Y Y!"YYdYY
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c  



DescrioY
'>Y Y Y

 Y Y Y
Y)
Y-YY
Y  Y Y 
Y Y
YY
 Y/ YYY Y8YY Y Y
 Y
Dica
6
 Y&
Y
  2Y3 Y Y
Y Y&
Y 
Yd d Y Y Y 
Y dY/ YY
3 YYYd  YYY Y   YY  Y &
Y Y  YY
Y
Y
Y
 
DescrioY
u YY  YYY Y Y Y  YYY  YY
Y
Y
Exemplos
, YY
YY 0Yd  Y Y Y
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 de declarao de stringsY
6Y (Y
YY YYY   2YYYu!Y
6Y (Y
YY YYY
YYY YYY  Yd Y   YYY
Y   Y
YYu$Y
6Y    Y/   YYY
YYYu%Y
6Y   2YY
Y Y  Y YGYY  Y  YY Y Y YY
2 YY YYYY
Y YYYu-Y
6Y   2YYYY
Y Y  YYY Y/  YYYuY
6Y   2YYY  / YY/YY
Y Y YYYuY
Terminao em NullY
 Y YY  YYYY
Y3 Yu* Y"Y Y Y.Y
0YY
u  YY Y YY Y Y Y(Y
Y YY 
 Y YYY

&
 Y Y3 Y&
Y YY Y Y.Y Y
Y   Y&
Y
Y Y dYYYY
YYY Y Y&
YY/Y&
YY YDY
Y Y&
Yu$YYuY YYY8YY@
@Y Y YY[YY> Y YY

  Y  YYYY
Yu-Y YY Y   Y
  Y
YY8Y
Y/YYY
Y'Yu%Y 3Y 
Y/   YYY
Y Y
Y<J"<Y
'Y&
YY dYY
Y YYYY Y
YYYd1Y dY   YY Y
Yu$YYYY dY Y Y Yd Y   YY  Y Y
0Y&
Y
Y 8Y Y
d1Y Y dY2Y Y     Y  YYd1Y YYY Y Y  Y
 Y0YYY&
Y Y Y.Y YY  YYYY
Aspas ou apstrofos?Y
u YYY  YYY@@YYYY  YY3<<Y
Envolvendo strings longasY
1Y Y ddY Y Y Y Y

c  

char myString[] = "This is the first line"
" this is the second line"
" etcetera";
Arrays de stringsY
&F  YY d  8Y&
 YY Y YY Y&
   Y Y/8YYY

Y=YY
Y Y Y4*(8Y  
Y
YY Y Y(d YYY YY YY
YY8YYY YY
Y/Y Y
YY [    Y
'Y3 Y /YY Y3YY Y Y  YY@ @Y Y&
YYY Y
YY Y
@  @Y, YY Y YYY YY  8YY YY&
 YYY  
Y
Y
Y YY   YY
Y YY Y Y Y 
Y*Y&
YY    Y1Y
&
Y  8YYY   Y  YY  YY YY2Y
Y
Y dY Y Y
Y
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);
}
}
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c  

a '
6YYY
YY Yd d Y&
YY YY
Y Y
 YY Y 
Y Y
Y*8Y Y&
YY
YY 8Y YY  8YYY
Y YY YY
 d Y   2 dY
Criando (Declarando) um Array
, YY Y /YY Yd  YY Y Y
YY
int myInts[6];
int myPins[] = {2, 4, 8, 3, 6};
int mySensVals[6] = {2, 4, -8, 3, 2};
char message[6] = "hello";
1Y Y Y
YYY   2YYY Y
Y Y Y
YYYY/   Y
Y Y)Y  Y YY
 YY YYY Y Y  Y
 8Yd1Y Y   2YY  YY Y YYYYu Y'Y&
Y
&
 Y Y
YY Y Y8Y
Y YY YY   YY2 YYY
Y
Y  2Y
Acessando um Array
YY / YY Y Y28Y
Y=8Y2 Y1  Y.Y   2Y YY 8YY
  Y Y YY Y Y Y"8Y Y
mySensVals[0] == 2, mySensVals[1] == 4,
Y YY  Y
YY
YY   Y&
YY
YY Y!"Y YY Y Y> Y YY 8Y Y
int myArray[10]={9,3,2,4,3,2,7,8,9,11};
// myArray[9] contm 11
// myArray[10] invlido e contm informao aleatria (outro endereo de memria)
YY2Yd1Y dYYY
  YY
YY3YY
Y Y
 Y
Y
Y Y Y&
YY  YYY
Y /Y Y3 Y&
Y Y Y
  2 YY
Y
3 Y4Y Y Ydd Y Yd YY  YY Y  Y d  YdYY
 Y Y3 Y3 Y   Y YY
YY  8YYdd Y
2  YY
Y

 YY
   Y
Yd Y YY YY YY
Y
Y   Y Y
Y
(  Y Y
Yd0Y Yu *8YY  Y*Y YYYdYY
YYY
YY Y
 Y Y Y Y Y YY&
YYY Y  Y
Designar um valor para um array:
mySensVals[0] = 10;
Recuperar um valor de um array:
x = mySensVals[4];
Arrays e FOR
YY&F  Y 
 Y  Y Y  Yfor8Y Y&
 YY  YY
 YY Y
Y Y Y Y/8YY   YY Y Y
YYdY YY Yd1Y
  Y2Y
Y Y Y
int i;
for (i = 0; i < 5; i = i + 1) {
Serial.println(myPins[i]);
}
Y
Y

c  



Yd[dYd YY
 Y YY 0Y Y
0YY Y&
YY
Y Y dY d Y
 
Y Y Y Y.Y
Y&
YY
Y
Exemplo:
// aes so realizadas nas funes "setup" e "loop"
// mas nenuma informao enviada ao programa mais amplo

void setup()
{
// ...
}

void loop()
{
// ...
}

c 


 
DescrioY
* dY
YdYYY Y Y  YY
Sintaxe
/Y
Parmetros
/Y
YdY Y&
&
Y Y
Retorno
Y

'
DescrioY
* dY
YdYYY Y Y  YY
Sintaxe
/Y
Parmetros
/Y
YdY Y&
&
Y Y
Retorno
Y


DescrioY
* dY
YdYYY Y Y  Y Y
Sintaxe
/Y
Parmetros
/Y
YdY Y&
&
Y Y
Retorno
Y



DescrioY
* dY
YdYYY Y Y  Y Y
Sintaxe
 /Y
Parmetros
/Y
YdY Y&
&
Y Y
Retorno
 Y

c 




DescrioY
* dY
YdYYY Y Y  YY
Sintaxe
/Y
Parmetros
/Y
YdY Y&
&
Y Y
Retorno
Y

  a((
)Y3 YYu* Y  Yu  Y* YY   Y  Y YY
Y  YY  Y Y
! "YYYY Y YY  Y/Y
   Y
'Y&
YY  Y%$YY"[%!YYY Y   d 8YY Y Y
Y Y Y)YY Y  YY  Y YY /Y
Valor Caractere Valor Caractere Valor Caractere Valor Caractere
Decimal Decimal Decimal Decimal

0 null 32 espao 64 @ 96 `
1 33 ! 65 A 97 a
2 34 " 66 B 98 b
3 35 # 67 C 99 c
4 36 $ 68 D 100 d
5 37 % 69 E 101 e
6 38 & 70 F 102 f
7 39 ' 71 G 103 g
8 40 ( 72 H 104 h
9 tab 41 ) 73 I 105 i
10 line feed 42 * 74 J 106 j
11 43 + 75 K 107 k
12 44 , 76 L 108 l
13 carriage 45 - 77 M 109 m
return 46 . 78 N 110 n
14 47 / 79 O 111 o
15 48 0 80 P 112 p
16 49 1 81 Q 113 q
17 50 2 82 R 114 r
18 51 3 83 S 115 s
19 52 4 84 T 116 t
20 53 5 85 U 117 u
21 54 6 86 V 118 v
22 55 7 87 W 119 w
23 56 8 88 X 120 x
24 57 9 89 Y 121 y
25 58 : 90 Z 122 z
26 59 ; 91 [ 123 {
27 60 < 92 \ 124 |
28 61 = 93 ] 125 }
29 62 > 94 ^ 126 ~
30 63 ? 95 _ 127
31

Y'Y Y
Y)Y3 Yu* YY
Y YY  Y/Y
  YYY Y

Y A  Y 3 8YdY Y  d Y
 
YY 0Y YYYY6,8Y
Y
Y dYd  8YYY =
Y YYY  YY u)Y    Y
) 2  YYu  2  Y

c 


)

DescrioY
*  
YY Y   YY&
YYY
YY
Y  Y 
Y
Y
Y Y

Y
=YY  Y  Y   YYY Y Y
Sintaxe
 7  8Y Y
Parmetros
 YY >Y Y YY&
Yd1Y =Y  Y
 Y YY ' 6,Y
Y)6, 6,Y
Retorno
' 
Y
Exemplo
int ledPin = 13; // LED conectado ao pino digital 13

void setup()
{
pinMode(ledPin, OUTPUT); // predetermina o pino digital como uma sada
}

void loop()
{
digitalWrite(ledPin, HIGH); // acende o LED
delay(1000); // espera um segundo
digitalWrite(ledPin, LOW); // apaga o LED
delay(1000); // espera um segundo
}
Nota
)Y Y Y  Y 3 Y YY
 YY Y   YY dYY   YYY
>Y Y!-Y  Y 3 Y"YY! Y  Y 3 YY

c 


 * 
DescrioY
dY
YdYA AY
Y
Y4)5YY
Y Y  YuYY Y Y  
 YY
Y Y


YYY 7 8Y
YdY Y   YYdY  YY
Y%%Y Y
Y Y%%YYA A8Y"YYY4)5Y
uYY Y Y  
 YY
Y  Y 
YdY
YA AYd  YY Y  Y Y
$"H I Y
 Y Y YY   YdY
Y4)5Y / YY Y
Sintaxw
 5  8YdY
Parmetros
 YY >Y Y Y
dYA AYY4)5Y
Retorno
 
Y
Exemplo

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

void setup()
{
pinMode(ledPin, OUTPUT); // determia o pino digital como uma sada
}

void loop()
{
digitalWrite(ledPin, HIGH); // acende o LED
delay(1000); // espera um segundo
digitalWrite(ledPin, LOW); // apaga um led
delay(1000); // espera um segundo
}
Nota
)Y Y Y  Y 3 Y YY
 YY Y   YY dYY   YYY
>Y Y!-Y  Y 3 Y"YY! Y  Y 3 YY

c 



  
DescrioY
41YYdY Y
Y Y  Y   8YYA AY
Y4)5Y
Sintaxe
 *  Y
Parmetros
 YY >Y Y Y  Y&
Yd1Y&
YY Y
Retorno
A AY
Y4)5Y
Exemplo

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


int inPin = 7; // boto conectado ao pino digital 7
int val = 0; // varivel para armazenar o valor lido

void setup()
{
pinMode(ledPin, OUTPUT); // pr-determina o pino digital 13 como uma sada
pinMode(inPin, INPUT); // pr-determina o pino dgital 7 como uma entrada
}

void loop()
{
val = digitalRead(inPin); // l o pino de entrada
digitalWrite(ledPin, val); // acende ou apaga o LED de acordo com o pino de entrada
}
, YYY Y!%YYdY Y Y YY&
YY
Y  Y
Nota
uYY Y Y dY  YY  Y  * Y Y Y YA AYY4)5YY Y Y
d Y  Y
)Y Y Y  Y 3 Y YY
 YY Y   YY dYY   YYY
>Y Y!-Y  Y 3 Y"YY! Y  Y 3 YY

c 


 
 
DescrioY
41YYdY Y
Y Y 3 Y   YYY
Y Y
Y dY 3 [  Y Y
!"Y YYY  YY  Y Y7 YY Y' Y*Y YY YYd Y Y  Y Y
"YYYdYYdY  Y Y"YY!"$%Y Y Y
Y
Y Y 
Y YYdYY
!"$-Y
 Y
Y"8""- YdY- YYY
 Y
uY   Y/   Y!""Y; Y""""!YYYY
Y  Y 3 8Y YY
d  Y / Y Y 
YY Y/   Y!""""Yd2YY
Y
Sintaxe
 *  Y
Parmetros
 YY >Y Y Y 3 Y&
YY =YY"YYY Y  Y Y8Y"YYY Y7 YY Y' Y
Retorno
Y"YY!"$%Y
Note
uYY Y 3 Y Y dY  YY  YYdY Y Y Y * Yd Yd Y Y Y
Y
Y Y&
   Y YYYYdY Y
Y  Y 3 8YY A  Y Y
Y
Y.Y8YY'Y  YY
YdY3 Y
Exemplo

int analogPin = 3; // perna do meio de um potencimetro conectada ao pino analgico 3


// pernas externas conectadas ao terra e ao +5V
int val = 0; // varivel para armazenar o valor lido
void setup()
{
Serial.begin(9600); // inicial a comunicao serial
}

void loop()
{
val = analogRead(analogPin); // l o pino de entrada
Serial.println(val); // informa o valor lido
}

c 


 
* 
DescrioY
dY
YdY 3 Y Y 57YY
Y Y  YY
 YY Y
Y4(Yd  YY
 Y
Y Y
YYYd  Yd dY( Y Y 2Y
YanalogWrite()8YY Yd YY

Y Y&
  Y dYYY Y Y  Y   YY&
YY
3/ YanalogWrite()Y=Y 2 Y
Y&
Y=Y 2 Y
YdigitalRead()Y
digitalWrite()Y Y
Y YY&F1  Y Y Y 57YY Y/   Y- "A2Y
'Y dYY
Y 
YY7 YYY,YYY Y,!YY
YY   Y Y
 Y%888 8!"YY!!Y Y
Y Y  YY
Y,Y
YY 5 Y Y
Y Y 8!"YY!!Y
Sintaxe
 5  8YdY
Parmetros
 YY Y Y&
YY =YdY
dYY  Y Y Y Y"YY   YY$YY  Y
Retorno
 
Y
Notas e problemas conhecidos
'YY   Y 2Y
Y 7 YY[  YY Y Y YY Y Y
Y 2Y
Y 5 Y
Y Y 57Y YY YYYYY  Y Y Y Y Y Y YY dY.Y
0YYY
0Y  YY 8Y&
Y YYY 2 Y  Y
 YY
YY Y 57Y
Exemplo
, YY Y Y
Y4(Y  YYdY YY
Y  3Y

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


int analogPin = 3; // potentimetro conectado ao pino analgico 3
int val = 0; // varivel para armazenar o valor lido

void setup()
{
pinMode(ledPin, OUTPUT); // pr-determina o pino como sada
}

void loop()
{
val = analogRead(analogPin); // l o pino de entrada
analogWrite(ledPin, val / 4); // os valores do analogRead variam de 0 a 1023, os valores do
analogWrite variam de 0 a 255

c 


 
Descrio
 d Y
YYYY Y
Y Y Y Yd2Y  YY YY Y Y    dY Y.Y
&
 Y&
 YY Y    dY Y.Y  Y)Y YdY Y Y
Y Y Yd2Y
Y
 Y Y  8YY  YYY0Y Y
Y Y Y#Y&
Y Y&
YY3/ Y Y Y
 dY
YY  YYY Y K YYY
Y Y
 Y
 YY&
YY
   YY
&
YY YYY
Y   Y)Y  Y   dYY
 1Y  2 YYd  Y3/ Y Y / Y  Y&
YY YYY Y
Y#Y'YY  YY  Yu Y  Y Yu Y Y

 Y Y Y
YY
Sintaxe
 )
  8Y# 8Y ) 8Yd
Y
Parmetros
 YY Y Y&
Y YY Y Y Y Y Y
# YY Y&
YY Y&
 Y
Y dYdY Y d  YYdataPinY Y
 ) Y&
YYY Y Y d Y Y 8Y YYMSBFIRSTYLSBFIRSTY
7 Y    dY  Y
Y Y    dY  Y
d
YY YY d YYY YY
Retorno
' 
Y
Note
)YdataPinYYclockPinY dYY  
 YY

YY
Y 7 Y
Exemplo
YY 
Y Y1  Y Y/Yd=Y
 Y Y  YY-A* Y Y Y
//**************************************************************//
// Name : shiftOutCode, Hello World //
// Author : Carlyn Maw,Tom Igoe //
// Date : 25 Oct, 2006 //
// Version : 1.0 //
// Notes : Code for using a 74HC595 Shift Register //
// : to count from 0 to 255 //
//****************************************************************

//Pin connected to ST_CP of 74HC595


int latchPin = 8;
//Pin connected to SH_CP of 74HC595
int clockPin = 12;
////Pin connected to DS of 74HC595
int dataPin = 11;

void setup() {
//set pins to output because they are addressed in the main loop
pinMode(latchPin, OUTPUT);
pinMode(clockPin, OUTPUT);
pinMode(dataPin, OUTPUT);
}

c 


void loop() {
//count up routine
for (int j = 0; j < 256; j++) {
//ground latchPin and hold low for as long as you are transmitting
digitalWrite(latchPin, LOW);
shiftOut(dataPin, clockPin, LSBFIRST, j);
//return the latch pin high to signal chip that it
//no longer needs to listen for information
digitalWrite(latchPin, HIGH);
delay(1000);
}
}

c(
Descrio
41Y
Y
Y YA AYY4)5YY
Y Y Y/8YYvalorYYHIGH8YpulseIn()YY
&
YY Yd YHIGH8Y  YY 8YY YY&
YY Yd YYLOWYYYY
 Y* YY
Y Y
YY 
Y( YY Y"YY  
Y
Y
 Y  Y Y
YY   Y
)YY Y
Y Y   Y   YYdd Y  YYY
Y Y

  YY
Y Y!"Y 
YY%Y
Y
Syntaxe

  8YdYY

  8Yd8YY
Parameters
 YY >Y Y Y Y&
Yd1Y =YYY
Y Y
dY Y Y
YYY YA AYY4)5Y Y
Y  YY >Y Y 
YYYY&
YY
YGYY YY
Y

Y
   Y Y
Returno
Y
Y Y
YY 
Y
Y"YY 
Y
Y  Y Y YY   Y

   Y Y

Exemplo
int pin = 7;
unsigned long duration;

void setup()
{
pinMode(pin, INPUT);
}

void loop()
{
duration = pulseIn(pin, HIGH);
}

c 



Descrio
* YY >Y Y  
Y  Y&
YYY
Y
YY YYYY >Y
/ Yd YY2Y  Y Y/  Y"Y Y
Parmetros
' 
Y
Retorno
)Y >Y Y  
Y  Y&
YYY
YY YY
Y Y Y Y  Y
Exemplo
unsigned long time;

void setup(){
Serial.begin(9600);
}
void loop(){
Serial.print("Time: ");
time = millis();
//imprime o tempo desde que o programa comeou
Serial.println(time);
// espera um segundo para no ficar enviando quantidades absurdas de dados
delay(1000);
}
Dica:
  &
YY YYYmillisYY
Y Y Y  YY YYY
Y Y
 Y 2Y 
YY
Y Y Y  8YY  Y



DescrioY
* YY >Y Y 
Y  Y&
YYY
Y
YY YYYY
>Y/ Yd YY2Y  Y Y/  Y"Y
Y'YY
Y Y!Y7A2Y
Y(
  dYY' 8YY
YY
Y
Y Y-Y 
YYdY Y Y Y
Y
Y> Y Y-Y'YY
Y Y7A2YY4   8YY
YY
Y
Y YY
 
Y
'YY!Y  
Y Y!"""Y 
YY!""""""Y Y 
YY!Y
Y
AY
' 
Y
* Y
)Y >Y Y 
Y  Y&
YYY
YY YY
Y Y Y Y  Y

c  

Exempl0
unsigned long time;
void setup()
{
Serial.begin(9600);
}
void loop()
{
Serial.print("Time: ");
time = micros(); //imprime o tempo desde que o programa comeou a rodar
Serial.println(time); //espera um segundo para no ficar enviando quantidades absurdas de
dados
delay(1000);
}

 '
Descrio
u
 YY/
Y YYYYY  
Y   YYAYY
Y

Y Y!"""Y  
Y
Parmetros
Y
   Y YY >Y Y  
YY&
YYY  YYY/
YY
 Y
Retorno
 
Y
Exemplo
int ledPin = 13; // LED conectado ao pino digital 13

void setup()
{
pinMode(ledPin, OUTPUT); // marca o pino digital como sada
}

void loop()
{
digitalWrite(ledPin, HIGH); // acende o LED
delay(1000); // espera por um segundo
digitalWrite(ledPin, LOW); // apaga o LED
delay(1000); // espera por um segundo
}
Cuidado
Y=Y  Y Y
Y4(Y  YYY
Y 8YY
YY
Y dY
Y
YYYY Y Y
8YY
Y Y YY
YYYY  dY
 Y' 
Y 
Y Y 8Y 
Y  8Y
Y 
Y Y Y Y
Y

 YY/
Y Y
8Y Y
Y
Y
0Y YYY Y Y Y
Y  dYd=YY
Y  YYY
YY Y/Y  YY Y
   Y  Yd YY
Y Y YY Yd Y YY Y&
Y!"Y
  
8YY YY&
YYY=Y
Y Y

c  


Y Y YY 
Y  Y &
 YY
Y Y Y  YY Y
,Y&
YY 
0Y YY    YY
Y&
YY Y Y*+Y 
Y
 Yd YY YYY 
Y Y 57Y 5 YY  8YYY 
0Y 
Y

   Y
Y
Y
Y
 ')

+
Descrio
u
 YY/
Y YYYYY 
Y   YYAYY6Y!Y
  
Y Y!"""Y 
YYY!Y
Y Y!Y Y

 YY YdY&
Y
2  Y
Y
 Y YY!%%Y Y Y
YY
 
0Y

Y Y
Y Y
 0Y Y&
Y Y Y 
Yd1Y dY

  2YY
Y Y
Parmetros
; YY >Y Y 
Y Y
 Y
Retorno
' 
Y
Exemplo

int outPin = 8; // digital pino 8

void setup()
{
pinMode(outPin, OUTPUT); // marca o pino digital como sada
}

void loop()
{
digitalWrite(outPin, HIGH); // ativa o pino
delayMicroseconds(50); // suspeno de 50 microsegundos
digitalWrite(outPin, LOW); // desativa o pino
delayMicroseconds(50); // suspeno de 50 microsegundos
}
  
YY YYYYY
Y Y d Y
Y  Y Y Y
YY
Y  Y Y!""Y
 
Y
Cuidados e problemas conhecidos
Y
Y
  YY Y Y Y /Y Y%Y 
YY Y'Y Y Y

Y&
Y
  YY YYY Y
 Y Y
Y
Y
 0Y Y YY
Y   YY 
0Y
 Y
YY
Y   Y&
Y
Y YYY  Y Y 0Y  8Y
Y&
YY
 2Y Y
dY Y Y Y
Y YY Y
  Y(Y 8Yd1Y dY
YY
Y Y
Y
 0Y
8YY
Y YYY Y Y
7  "Y Y
Y
 Y
Y Y Y&
YY Ym!"$"Y ; YYYYY
AYY
Y >Y  dY
Y
Y
Y

c  

 ')

+
Descrio
u
 YY/
Y YYYYY 
Y   YYAYY6Y!Y
  
Y Y!"""Y 
YYY!Y
Y Y!Y Y

 YY YdY&
Y
2  Y
Y
 Y YY!%%Y Y Y
YY
 
0Y

Y Y
Y Y
 0Y Y&
Y Y Y 
Yd1Y dY

  2YY
Y Y
Parmetros
; YY >Y Y 
Y Y
 Y
Retorno
' 
Y
Exemplo

int outPin = 8; // digital pino 8

void setup()
{
pinMode(outPin, OUTPUT); // marca o pino digital como sada
}

void loop()
{
digitalWrite(outPin, HIGH); // ativa o pino
delayMicroseconds(50); // suspeno de 50 microsegundos
digitalWrite(outPin, LOW); // desativa o pino
delayMicroseconds(50); // suspeno de 50 microsegundos
}
  
YY YYYYY
Y Y d Y
Y  Y Y Y
YY
Y  Y Y!""Y
 
Y
Cuidados e problemas conhecidos
Y
Y
  YY Y Y Y /Y Y%Y 
YY Y'Y Y Y

Y&
Y
  YY YYY Y
 Y Y
Y
Y
 0Y Y YY
Y   YY 
0Y
 Y
YY
Y   Y&
Y
Y YYY  Y Y 0Y  8Y
Y&
YY
 2Y Y
dY Y Y Y
Y YY Y
  Y(Y 8Yd1Y dY
YY
Y Y
Y
 0Y
8YY
Y YYY Y Y
7  "Y Y
Y
 Y
Y Y Y&
YY Ym!"$"Y ; YYYYY
AYY
Y >Y  dY
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c  

,'
Descrio
*
YY Y Y  Y >Y
Parmetros
/YY  Y >8Y Y&
&
Y Y Y  Y
YY
Y >8Y Y&
&
Y Y Y  Y
Retorno
)Y Y Y  Y >Y
Exemplos
sensVal = min(sensVal, 100); // assinala varivel sensVal o mnimo entre seu prrio valor e
100
// assegurando que seu valor nunca seja menor que 100
Nota
,d28Y Y Y [ 
 d8Y/YY&
  Y
  2 YY  YYdY Y /Y Y
Y
d d8Y &
 Y YY
  2 YY  YYdY YY
Cuidado:
(d YY YYY
Y Y Y   Yd1Y dYd Y
  2Y
Y
0Y  Y
Y1 8Y Y YdYY
 Y Y
YY
min(a++, 100); // evite isso

a++;
min(a, 100); // usse isso, mantenha outros clculos fora da funo
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c 


 ,,'
Descrio
*
YY / Y Y  Y >Y
Parmetros
/YY  Y >8Y Y&
&
Y Y Y  Y
YY
Y >8Y Y&
&
Y Y Y  Y
Retorno
)Y Y Y  Y >Y
Exemplo
sensVal = max(senVal, 20); // assinala varivel sensVal o mximo entre seu prrio valor e
20
// assegurando que seu valor seja pelo menos 20
Nota
,d28Y Y Y [ 
 d8Y/YY&
  Y
  2 YY  YYdY Y /Y Y
Y
d d8Y &
 Y YY
  2 YY  YYdY YY
Cuidado
(d YY YYY
Y/Y Y   Yd1Y dYd Y
  2Y
Y
0Y  Y
Y1 8Y Y YdYY
 Y Y
max(a--, 0); // evite isso

a--; // use isso, mantenha outros clculos fora da funo


max(a, 0);
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y
Y

c  

,
Descrio
*
YYdY
Y Y
Y >Y
Parmetros
/YY >Y
Retorno
xYYxYY Y
Y 
YY"Y
-xYYxYY Y&
Y"Y
Cuidado
(d YY YYY
YY Y   Yd1Y dYd Y
  2Y
Y
0Y  Y Y
1 8Y Y YdYY
 Y Y
abs(a++); // evite isso

a++; // use isso, mantenha outros clculos fora da funo


abs(a);
Y
Y

 , 
Descrio
* Y
Y >Y  Y Y
Y /Y
Parmetros
/YY >YY  8Y YY Y Y  Y
YY/Y  Y Y /8Y YY Y Y  Y
YY/Y
 Y Y /8Y YY Y Y  Y
Retorno
xYYxY dY YaYYbY
aYYxYY Y&
YaY
bYYxYY Y&
YbY
Exemplo
sensVal = constrain(sensVal, 10, 150);
// limita o valor da varivel sensVal a valores entre 10 e 150
Y
Y
Y

c  

  
-

.
-

.
Descrio
YY
*[ Y
Y >Y Y
Y /Y YdYY
Y Y8Y
YdY Y4YY YY
48Y
YdYA YYA 8YYdY   Y Y  Y /YYY
Y /8Y
  [YYY YY
'Y YdY  Y Y /8Y&
YdY&
Y/Y YY> YY     YY

Y  Y YY
  2 Y Y YY  Y Y
YY  YYY /Y
Y   Y
  &
Y&
YY  Y  Y Y
Y /Y YY Y
Y Y&
YY  Y
 Y
(Y YY
YY YY
  2 YYYY YdY
Y /Y Yd8YY
Y/Y
Y-Y/8Y!8Y"8Y"8Y!GY
Y
YY Y
  2Y >Y  dYY Y/Y
Y-Y/8Y!8Y"8Y"8Y[!""GY
YY
Y
YY
  2Y >Y  YY YY0Y?
 YY
 YY   YY Y

 YY Y   Y
Parmetros
d
YY >YYY Y
4Y  Y  Y Y /Y
Y Yd
Y
A Y  Y
 Y Y /Y
Y Yd
Y
4Y  Y  Y Y /YYY&
YY&
YY
A Y  Y
 Y Y /YYY&
YY&
YY
Retorno
)YdY Y
Exemplo
/* Mapear uma entrada analgica de 10 bits para uma sada analgica de 8 bits (0 a 255) */
void setup() {}

void loop()
{
int val = analogRead(0);
val = map(val, 0, 1023, 0, 255);
analogWrite(9, val);
}
Apndice
Y&
YY  Y  Y&
Y YY
YY
 Y Y/8Y Y G 8Y Y G/8Y Y
G 8Y Y
G/Y
{
return (x - in_min) * (out_max - out_min) / (in_max - in_min) + out_min;
}

c  


 ,

Descrio
*
YYdY Y
Y >Yd YY
Y1  Y Y YY
  2 YY
Y1  Y
   YDY> YYY Y/    Y YdY
Y
dY
Parmetros
YY >Y
/ YY1  Y.Y&
YYYYd YY
Retorno
)
 Y Y/  Y 
Y
Exemplo
=YY
YY Y  Y Y3 Y

%,
Descrio
*
YY&
  Y Y
Y >Y)Y >Y
   YYYY
Parmetros
/YY >8Y&
&
Y Y Y  Y
Retorno
Y&
  Y Y >Y

% ,
Descrio
*
YY 2Y&
  Y Y
Y >Y
Parmetros
/YY >8Y&
&
Y Y Y  Y
Retorno

8YY 2Y&
  Y Y >Y












c  

 
Descrio
*
YY Y Y
YA 
YY  Y)Y
 Y Y Y[!YY!Y
Parmetros
 YYA 
YY  YY
Retorno
Y Y YA 
Y 
Y
Nota
u  YYu   Y
 Y Y
YY


 
Descrio
*
YY Y Y
YA 
YY  Y)Y
 Y Y Y[!YY!Y
Parmetros
 YYA 
YY  YY
Retorno
Y Y YA 
Y 
Y
Nota
u  YYu   Y
 Y Y
YY

  
Descrio
*
YY  Y Y
YA 
YY  Y
Parmetros
 YYA 
YY  YY
Retorno
Y  Y YA 
Y 
Y
Nota
u  YYu   Y
 Y Y
YY

c  



Descrio
 u Y   2Y
Y Y Y >Y
[3 8Y2 YY&
YY&F1  Y Y
YY
Y Y   Y Y
Y&F1  Y3 YY&F1  Y8YY
Y YY
3 8YYYYY
uYY  YY
Y&F1  Y YdY YY
Y YY  8YY Y
/
Y Y
Y8Y
Y u YY   2YY Y Y >Y3 YY Y Y

YdYY3 8YY
Y * Y Y
Y Y&
Y Y=Y  Y
(Y Y 8Y Y   YY> Y
Y&F1  Y
[3 Y&
YYY
/ YY Y/
Y Y
YY Y YY Yd2Y Y
Y u Y Y

Y >Y / 8Y Y YY  YY&F1  Y3 Y


Parmetros
 8Y Y[Y
Y >YYYY  Y Y&F1  Y
Retorno
 
Y
Exemplo
long randNumber;

void setup(){
Serial.begin(9600);
randomSeed(analogRead(0));
}

void loop(){
randNumber = random(300);
Serial.println(randNumber);

delay(50);
}


c  



Descrio
Y
Y YY >Y
[3 Y
Sintaxe
 Y /Y
 Y  8Y/Y
Parmetros
 Y[Y  Y  Y YdY3 8Y 
 dY  Y
/Y[Y  Y
 Y YdY3 8Y/
 dY
Retorno
 Y[Y
Y >Y3 Y Y YY/[!Y
Note:
uYY  YY
Y&F1  Y YdY YY
Y YY  8YY Y
/
Y Y
Y8Y
Y u YY   2YY Y Y >Y3 YY Y Y

YdYY3 8YY
Y * Y Y
Y Y&
Y Y=Y  Y
(Y Y 8Y Y   YY> Y
Y&F1  Y
[3 Y&
YYY
/ YY Y/
Y Y
YY Y YY Yd2Y Y
Y u Y Y

Y >Y / 8Y Y YY  YY&F1  Y3 Y


Exemplo
long randNumber;

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

// se o pino de entrada analgica 0 no estiver conectado, rudo analgico


// aleatrio far com que a funo randomSeed() gere
// diferente nmeros de incio cada vez que o programa for executado.
// randomSeed() ir embralhar a funo random.
randomSeed(analogRead(0));
}

void loop() {
// imprime um nmero aleatrio entre 0 e 299
randNumber = random(300);
Serial.println(randNumber);

// imprime um nmero aleatrio entre 10 e 19


randNumber = random(10, 20);
Serial.println(randNumber);

delay(50);
}


c  

 /

Descrio
=
YY/Y Y 1  YY YY
Y
YY  Y Y  YY Y Y
Y
YY
Y
 Y
Y
Y Y/Y%""8Y!$""8Y$-""8Y-""8Y ""8Y!--""8Y
! $""8Y$""8Y""8Y!!$""Y1Y 8Y  8Y  Y
Yd  YY/YY

YYdY Y Y"YY!YY
Y  Y&
Y&
Y
Y/Y  Y
Parameters
Yvelocidade8YY YY
Y
Y
Retorno
 
Y
Exemplo:
void setup() {
Serial.begin(9600); // abre a porta serial e ajusta a taxa de transferncia de dados
para 9600 bps
}

void loop() {}
Exemplo para o Arduino Mega:Y
// Arduino Mega usando as quatro portas seriais simultaneamente
// (Serial, Serial1, Serial2, Serial3),
// com diferentes taxas de transferncia:

void setup(){
Serial.begin(9600);
Serial1.begin(38400);
Serial2.begin(19200);
Serial3.begin(4800);

Serial.println("Hello Computer");
Serial1.println("Hello Serial 1");
Serial2.println("Hello Serial 2");
Serial3.println("Hello Serial 3");
}

void loop() {}


c  

 /   
Descrio
)YY >Y YYY  d YY 
YdY YY Y
Parmetros
' 
Y
Retorno
)Y >Y YY  d YY 
Y Y
Y Y)Y
Y Y Y2 YY!$YY
Exemplo
int incomingByte = 0; // para dados seriais que esto entrando

void setup() {
Serial.begin(9600); // abre a porta serial e ajusta a taxa de transferncia para
9600 bps
}

void loop() {

// envia dados apenas quando dados forem tambm recebidos:


if (Serial.available() > 0) {
// l o byte que est entrando:
incomingByte = Serial.read();

// diga o que voc recebeu:


Serial.print("Eu recebi : ");
Serial.println(incomingByte, DEC);
}
}
Exemplo para o Arduino Mega:Y
void setup() {
Serial.begin(9600);
Serial1.begin(9600);

void loop() {
// l na porta 0 e envia para a porta 1:
if (Serial.available()) {
int inByte = Serial.read();
Serial1.print(inByte, BYTE);

}
// l na porta 1 e envia para a porta 0:
if (Serial1.available()) {
int inByte = Serial1.read();
Serial.print(inByte, BYTE);
}
}


c  

 /  
Descrio
41Y  Y&
Y=Y  YYY Y
Parmetros
' 
Y
Retorno
Y  YY  dY Y  Y YY Y
Y[!YY YdY  Y  d Y Y
Exemplo
int incomingByte = 0; // para entrada serial

void setup() {
Serial.begin(9600); // abre a porta serial e ajusta a velocidade para 9600 bps
}

void loop() {

// envia dados apenas quando recebe dados:


if (Serial.available() > 0) {
// l o primeiro byte disponvel:
incomingByte = Serial.read();

// imprime na tela o byte recebido:


Serial.print("Eu recebi: ");
Serial.println(incomingByte, DEC);
}
}


c 


 / 
Descrio
d YY
Y Y  Y YY Y Y8Y&
&
Y Y.Yu  Y
Yu d Y
 Y Y  Y Y3YY> Y Y.Yu 
Y
Parmetros
 
Y
Returns
 
Y


 /   
u   Y
Descrio
 d Y  YYY Y
Parmetro
Y YY Y  Y 
YY
Sintaxe
Y Y Y
 Y dYY
Serial.print(b)YY  
YY   8Y  YYY
Y >Y  YY
Y Y
u* Y Y/Y
int b = 79;
Serial.print(b);
 YY Yu* Y@ @Y
Serial.print(b, DEC)Y  YYY
Y >Y  YY
Y Yu* Y Y/Y
int b = 79;
Serial.print(b, DEC);
 YY Yu* Y@ @Y
Serial.print(b, HEX)Y  YYY
Y >Y/  YY
Y Yu* Y Y/Y
int b = 79;
Serial.print(b, HEX);
 YY Y Y@-@Y
Serial.print(b, OCT)Y  YYY
Y >YYY
Y Yu* Y Y/Y
int b = 79;
Serial.print(b, OCT);
 YY Y@!!@Y
Serial.print(b, BIN)Y  YYY
Y >Y  YY
Y Yu* Y Y/Y
int b = 79;
Serial.print(b, BIN);
 YY Y@!""!!!!@Y
Serial.print(b, BYTE)Y  YYY
YY> Y Y/Y
int b = 79;
Serial.print(b, BYTE);
 YY Y@)@Y&
YYYYu* Y  YYdY Y Y Y 0Yd=Y
Y,Yu* Y
YY

c  

Serial.print(str)YYYY
Y Y
Y
YY YY  Y
Y Yu* Y Y/Y
Serial.print("Hello World!");
 YY Y@AY5 @Y
Parmetros
YYYY   8Y
Y
YY YY   Y
Retorno
'
Y
Exemplo:
/*
Usa um bloco FOR para dados e imprime um nmero em vrios formatos.
*/
int x = 0; // varivel

void setup() {
Serial.begin(9600); // abre a porta serial e ajusta a velocidade para 9600 bps
}

void loop() {
// imprime etiquetas
Serial.print("SEM FORMATO"); // imprime uma etiqueta
Serial.print("\t"); // imprime um tab

Serial.print("DEC");
Serial.print("\t");

Serial.print("HEX");
Serial.print("\t");

Serial.print("OCT");
Serial.print("\t");

Serial.print("BIN");
Serial.print("\t");

Serial.println("BYTE");

for(x=0; x< 64; x++){ // apenas parte da tabela ASCII

// imprime em vrios formatos


Serial.print(x); // imprime um ASCII decimal - o mesmo que "DEC"
Serial.print("\t"); // imprime um tab

Serial.print(x, DEC); // imprime um ASCII decimal


Serial.print("\t"); // imprime um tab

Serial.print(x, HEX); // imprime um ASCII hexadecimal


Serial.print("\t"); // imprime um tab

c  

Serial.print(x, OCT); // imprime um ASCII octal
Serial.print("\t"); // imprime um tab

Serial.print(x, BIN); // imprime um ASCII binario


Serial.print("\t"); // imprime um tab

Serial.println(x, BYTE); // imprime como um byte nico e adciona um "cariage return"


// com o "println"
delay(200); // espera 200 millisegundos
}
Serial.println(""); // imprime outro carriage return
}
Dicas de programao e problemas conhecidos
u  Y Y
  YY8Y Yd1Y Y2Y
Y dYY
Y Y  8Y
  YY Y YdY   YY
Y 
0YY> Y
  Y
YYY
Y
1  Y Y!"YYdYY YYYY Y   Y
u=Y
 YY2Y 
Y  Y Y1  YY
u  /[$8Y(*GY
)Y Y Y  Y
   Y8YYY YY
 Y YY
YYYY Y Y
Y  Y  Y
Y
Yu  Y d YY  YY
Y
YY Y&
Y
YY=Y d  Y Y Y

YYY3/ Y  YY
Y d YY Y Y Y d YY> YY































c  

 / 
D e s cr i o
 YY  YYYY YY dY/Yu* Y
YY
YY Y YY
u* Y!%8Y
Y<JY<YY
YY dY Yu* Y!"8Y
Y<JY <YY YYYYY
Yu  YY
Si n t a xe
u   YdYY
u   Yd8YY
Pa r me t r o s
dYYdYY Y[Y&
&
Y Y Y  Y
Y  YY >YYY Y Y  Y  Y
YY >Y YY   YY
 Y Y Y

 Y
R e t o rn a
' 
Y
E x a m pl e :
/*
Analog input

reads an analog input on analog in 0, prints the value out.

created 24 March 2006


by Tom Igoe
*/

int analogValue = 0; // variable to hold the analog value

void setup() {
// open the serial port at 9600 bps:
Serial.begin(9600);
}

void loop() {
// read the analog input on pin 0:
analogValue = analogRead(0);

// print it out in many formats:


Serial.println(analogValue); // print as an ASCII-encoded decimal
Serial.println(analogValue, DEC); // print as an ASCII-encoded decimal
Serial.println(analogValue, HEX); // print as an ASCII-encoded hexadecimal
Serial.println(analogValue, OCT); // print as an ASCII-encoded octal

c  

Serial.println(analogValue, BIN); // print as an ASCII-encoded binary
Serial.println(analogValue, BYTE); // print as a raw byte value

// delay 10 milliseconds before the next reading:


delay(10);
}





  0
breakYY
 YY Y Y
YYdo8Yfor8Y
Ywhile8YY Y.Y Y Y Yd  Y
,YY
 YY Y Y
Y  YswitchY
Examplo
for (x = 0; x < 255; x ++)
{
digitalWrite(PWMpin, x);
sens = analogRead(sensorPin);
if (sens > threshold){ // checar a deteco por um sensor
x = 0;
break;
}
delay(50);
}




























c  













 Y YY
 Y Y Y
Y Y Y Y Y  Y Y Y Y
  [*  Y&
Y Y YY
 Y

c  


También podría gustarte