Você está na página 1de 25

Introdução à Programação em Arduino e

Tipos de Variáveis
Computação Física
 Computação física significa a construção de sistemas interativos físicos
mediante o uso de software e hardware.
 Para isso, microcontroladores obtêm sinais provenientes de sensores
conectados as suas portas de entradas de modo a realizarem ações
nas suas portas de saídas, ações estas determinadas pelo seu
algoritmo.

Exemplo de um Sistema Virtual Exemplo de um Sistema Físico Real


Tipos de Entradas/Saídas
Dispositivos de entrada (Sensores):
Elementos que emitem informações (sinais
elétricos) ao Arduino como:
botoeiras, chaves de fim-de-curso, sensores
de proximidade, sensores de nível,
pressostatos, termostatos etc.

Dispositivos de saída (Atuadores):


Elementos que recebem as informações
(sinais elétricos) enviadas Arduino com a
finalidade de auxiliar ou até mesmo realizar
diretamente um acionamento como:
relés, contatores, solenóides de válvulas,
inversores de frequência, soft-starters,
motores, lâmpadas, sonorizadores, entre
outros.

*Entradas e saídas digitais são aquelas que tem


somente dois estados possíveis: ligado/desligado
Partes de um Arduino
Placas de Arduino mais comuns

Dimensões: 101,5 mm x 53,3 mm


Preço: R$ 60,00 - Compatível

Dimensões: 68,6 mm x 53,4 mm


Preço: R$ 40,00 - Compatível

Dimensões: 45 mm x 18 mm
Preço: R$ 30,00 - Compatível
Placas de Arduino
 Há mais de 20 tipos, como se pode constatar em:
https://www.arduino.cc/en/Products/Compare
Placas de Arduino
 G
Programação do Arduino
 Parece C, mas é Arduino:
 Sintaxe similar ao ANSI C
 Particularidades do Arduino

 Programação controla o hardware:


 Portas de saída são controladas pelo código

 Máquinas de estado:
 Hardware mantém o último código
Programação do Arduino
Programação do Arduino
 Comentários:
// Comentários começam com
// duas barras por linha

/* as vezes comentários podem


aparecer com uma barra e um
asterisco no início e um asterisco e
uma barra no final */

 Linhas de código:
 Sempre tem ponto-e-vírgula no final.

 Sensível à caixa (alta ou baixa):


 LETRAS MAIÚSCULAS são diferentes de letras minúsculas.
Estrutura de um Código Arduino
void setup()
{
// aqui vai o código do setup
}
void loop()
{
// aqui vai o código do loop
}

 A função setup() é chamada quando o programa inicia, usada para


realizar configurações de funcionamento, como inicializar variáveis,
inicializar dispositivos conectados, modos dos pinos de entrada/saída
etc.
 A função setup() roda executa somente uma vez, após reset ou ligação
da placa Arduino.
 Depois da função setup() executar, a função loop() executa
repetitivamente, pois é um “While Loop”.
Ambiente de Programação
 Download do Arduino IDE:
 https://www.arduino.cc/en/Main/Software
Referência da Linguagem
 http://www.arduino.cc/en/Reference/HomePage
Alguns Simuladores de Arduino
 Ao invés de se utilizar um Arduino real, pode-se empregar alguns
simuladores:

 Virtual Breadboard for Arduino:


 http://www.virtualbreadboard.com/Main.aspx?TAB=Downloads

 Simulator for Arduino by Virtronics:


 http://virtronics.com.au/Simulator-for-Arduino.html

 CodeBlocks Arduino IDE with Simulator:


 https://sourceforge.net/projects/arduinodev/files/

 Simuino Arduino Simulator:


 https://code.google.com/p/simuino/downloads/list

 Tinkercad (Autodesk):
 https://www.tinkercad.com/
Exemplo de um Código Arduino
void setup()
{
// aqui vai o código do setup
}
void loop()
{
// aqui vai o código do loop
}

 Exemplo 01:
void setup() // Ponto de Entrada
{
pinMode(13, OUTPUT);
digitalWrite(13, 1); // Poderia se escrever “digitalWrite(13, HIGH)”
}
void loop()
Maioria dos Arduinos tem Led
{ /*nada*/ } de teste ligado à porta 13
Exemplo de um Código Arduino
Exemplo 02:
void setup()
{
pinMode(13, OUTPUT);
digitalWrite(13, 1); // Poderia se escrever “digitalWrite(13, HIGH)”
delay( 1000 );
digitalWrite(13, 0); // Poderia se escrever “digitalWrite(13, LOW)”
delay( 1000 );
digitalWrite(13, 1);
delay( 1000 );
digitalWrite(13, 0);
delay( 5000 );
}
void loop()
{
/*nada*/
}
Exemplo de um Código Arduino
Exemplo 03: Piscando um LED eternamente
void setup()
{
pinMode(13, OUTPUT);
digitalWrite(13, 1);
}

void loop()
{
delay( 1000 ); // espera 1 segundo
digitalWrite(13, 0); // apaga o LED
delay( 1000 ); // espera 1 segundo
digitalWrite(13, 1); // acende o LED
} // volta ao início da função loop
Exemplo de um Código Arduino
Exemplo 03: Piscando um LED eternamente (Scratch)
Variáveis
 A variável deve ser definida por um tamanho e tipo adequado ao dado.

 Declaração de uma variável:


Tipos de Variáveis
 http://www.arduino.cc/en/Reference/HomePage

corda/amarrar
Variáveis
 Escopo/contexto é onde a variável foi declarada.
 Uma variável não existe fora do seu contexto.
Variáveis
 Exemplo 04: Variável definida no escopo correto para o exemplo 3

int Porta = 13; // pode-se usar do tipo byte


void setup()
{
pinMode(Porta, OUTPUT);
digitalWrite(Porta, 1);
}
void loop()
{
delay(1000); // espera 1 segundo
digitalWrite(Porta, 0); // apaga o LED
delay(1000); // 1 segundo
digitalWrite(Porta, 1); // acende o LED
} // volta ao início da função loop
Variáveis
 Emprego de uma variável para definir a porta do LED do exemplo
3:

Variável não definida no


escopo correto
Exemplo anterior
void setup()
{
int Porta = 13;
pinMode(Porta, OUTPUT);
digitalWrite(Porta, 1);
}
void loop()
{
delay(1000); // espera 1 segundo
digitalWrite(Porta, 0); // apaga o LED
delay(1000); // 1 segundo
digitalWrite(Porta, 1); // acende o LED
} // volta ao início da função loop
Variáveis
 Vídeos:
 https://youtu.be/rCILKZPG0Kg
 https://youtu.be/l8wxl6xeljQ
 https://youtu.be/R6QmFzGIOBs
Bibliografia
Bibliografia Básica:
FARREL, Joyce. Lógica e design de programação: introdução. São Paulo:
Cengage Learning, 2010.
MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo de. Algoritmos: lógica
para desenvolvimento de programação de computadores. 8.ed. São Paulo:
Érica, 2000.
SOUZA, Marco Antonio Furlan de et al. Algoritmos e lógica de programação: um
texto introdutório para Engenharia. São Paulo: Cengage Learning, 2004.

Bibliografia Complementar:
DROZDEK, Adam. Estrutura de dados e algoritmos C++. São Paulo: Pioneira
Thomson Learning, 2002.
FORBELLONE, André Luiz Villar; EBERSPACHER, Henri Frederico. Lógica de
programação: a construção de algoritmos e estruturas de dados. 3. ed. São
Paulo: Pearson Prentice Hall, 2005.
PRESSMAN, Roger S. Engenharia de software: uma abordagem profissional. 6.
ed. São Paulo: McGraw-Hill, 2010.
SALVETTI, Dirceu Douglas; BARBOSA, Lisbete M. Algoritmos. São Paulo: Makron
Books, 1998.
TUCKER, Allen B.; NOONAN, Robert E. Linguagens de programação: princípios
e paradigmas. 2.ed. São Paulo: MacGraw Hill, 2008.

Você também pode gostar