Escolar Documentos
Profissional Documentos
Cultura Documentos
Parte 1
• Introdução – História do Arduino
• Hardware Arduino – Shields
• Aplicações e projetos
• Conceitos de micro controlador, pinos, portas,
interrupções
• Conceitos básicos de circuitos elétricos
• Diagramas conceituais e esquemas elétricos
• Sketch, simuladores Arduino e exemplos
Conteúdo
Parte 2
• Kits didáticos e simuladores de Arduino
• Onde comprar
• Apresentação da IDE do Arduino e ambiente de
desenvolvimento
• Linguagem de programação, boas práticas e exemplos
simples
• Projetos simples com automação residencial
A história do Arduino
• É open- source;
• Multiplataforma;
• Barato;
• Farta literatura;
• Comunidades;
Hardware Arduino
Hardware Arduino
Lilypad
Nano
Nano
XBee
Hardware Arduino - Shields
Aplicações com Arduino
Tweet-a-pot - Café
Aplicação com Arduino
https://www.youtube.com/watch?v=_Y-F9Zdk_qM
Robótica
Aplicação com Arduino
Microcontrolador
Conceito de circuito elétrico
Declaração de variáveis
Lista de dispositivos:
❖ Arduino Uno R3
❖ Protoboard
❖ 5 leds
❖ 7 resistores
❖ 2 push buttom
❖ Jumpers para ligação
Sketch: semáforo para
pedestres
const int button1Pin = 2; //definição da entrada que será utilizada pelo botão 1
const int button2Pin = 13; //definição da entrada que será utilizada pelo botão 2
int button1State = 0; //variavel para a leitura do estado do botão 1
int button2State = 0; //variavel para a leitura do estado do botão 2
byte ledG1 = 7;
byte ledG2 = 12;
byte ledR1 = 3;
byte ledR2 = 10;
byte ledY = 5;
void setup() {
pinMode (ledR1, OUTPUT); //definição do pino 3 com saída para o LED vermelho para veículos
pinMode (ledY, OUTPUT); //definição do pino 5 com saída para o LED amarelo para veículos
pinMode (ledG1, OUTPUT); //definição do pino 7 com saída para o LED verde para veículos
pinMode (ledG2, OUTPUT); //definição do pino 12 com saída para o LED verde para pedestres
pinMode (ledR2, OUTPUT); //definição do pino 10 com saída para o LED vermelho para pedestres
pinMode (button1Pin, INPUT); //definição do pino 2 como entrada que sera utilizada pelo Botão 1
pinMode (button2Pin, INPUT); //definição do pino 13 como entrada que sera utilizada pelo Botão 2
}
Sketch: semáforo para pedestres
void loop() {
button1State = digitalRead (button1Pin); //Leitura do estado do botão 1
button2State = digitalRead (button2Pin); //Leitura do estado do botão 2
digitalWrite (ledG1, HIGH); //Liga-se o LED verde para veículos
digitalWrite (ledR2, HIGH); //Liga-se o LED vermelho para pedestres
Parte 2
• Kits didáticos e simuladores de Arduino
• Onde comprar
• Apresentação da IDE do Arduino e ambiente de
desenvolvimento
• Linguagem de programação, boas práticas e exemplos
simples
• Projetos simples com automação residencial
Conjunto didático
Conjunto didático
Protoboard
Tipos de dados
• boolean: true ou false
• unsigned long: número inteiro de 16
• char: um caractere
bits sem sinal (0 a 4294967295)
• byte: sequência de 8 bits
• float: número real de precisão simples
• int: número inteiro de 16 bits com sinal (-
(ponto flutuante)
32768 a 32767)
• double: número real de precisão
• unsigned int: número inteiro de 16 bits
dupla (ponto flutuante)
sem sinal (0 a 65535)
• string: sequência de caracteres
• long: número inteiro de 16 bits com sinal
• void: tipo vazio (não tem tipo)
(-2147483648 a 2147483647)
Operadores
Um operador é um conjunto de um ou mais caracteres que serve para operar sobre
uma ou mais variáveis ou constantes. Um exemplo muito simples de operador é o
operador de adição, o +. Digamos que queremos somar dois números e atribuir a
uma variável x. Para isso, fazemos o seguinte: x = 2 + 3;
Uma função é, em linhas gerais, uma sequência de comandos que pode ser reutilizada
várias vezes ao longo de um programa. Para criar uma função e dizer o que ela faz,
nós precisamos fazer uma declaração de função. Veja como uma função é declarada
no nosso programa de exemplo:
void setup() {
pinMode(led, OUTPUT);
}
void loop() {
// Todas as linhas a seguir são chamadas de função com passagem de parâmetros
// As funções são executadas em sequência para fazer o LED acender e apagar
digitalWrite(led, HIGH); // Atribui nível lógico alto ao pino do LED, acendendo-o
delay(1000); // Espera 1000 milissegundos (um segundo)
digitalWrite(led, LOW); // Atribui nível lógico baixo ao pino do LED, apagando-o
delay(1000); // Espera 1000 milissegundos (um segundo)
Estrutura condicional If
Condicional If-Else
// Pisca o LED três vezes
Condicional If for(i = 0; i < 3; i++) {
int i = 0; if(i == 2) {
void loop() { digitalWrite(led, HIGH);
digitalWrite(led, HIGH); // acende delay(200);
delay(1000); //espera 1s digitalWrite(led, LOW
digitalWrite(led, LOW); //apaga delay(1800);
delay(1000); // espera 1s } else {
i++; // Incrementa a variável digitalWrite(led, HIGH);
if(i == 3) { //testa o valor da variável delay(1000);
delay(5000); //espera 5s digitalWrite(led, LOW);
i = 0; // Reinicia o contador delay(1000);
} }
} }
Estrutura de controle
Estruturas de controle são blocos de instruções que alteram
o fluxo de execução do código de um programa.
Instrução While Instrução For
// Pisca o LED três vezes // Pisca o LED três vezes
int i = 0; int i = 0;
... ...
while(i < 3) { for(i < 3) {
digitalWrite(led, HIGH); // acende digitalWrite(led, HIGH); // acende
delay(1000); // Espera 1s (1seg) delay(1000); // Espera 1s (1seg)
digitalWrite(led, LOW); // apaga digitalWrite(led, LOW); // apaga
delay(1000) // Espera 1s (1seg) delay(1000) // Espera 1s (1seg)
i = i + 1; // incrementa a variável i = i + 1; // incrementa a variável
} }
delay(500); //espera meio segundo delay(500); //espera meio segundo
Exercício para fixação
Sketch do exercício
http://migre.me/v4GOq
Agradecimentos e contatos
Wagner Cesar Vieira
wagner.vieira@etec.sp.gov.br
wagner.vieira@etecbebedouro.com.br