Escolar Documentos
Profissional Documentos
Cultura Documentos
Componente Quantidade
Arduino uno com cabo USB 1
Jumpers macho-macho 2
Protoboard 400 furos 1
Led 1
Resistor 220 ohms 1
ANÁLISE DO HARDWARE
ARDUINO
É um pequeno computador capaz de lê entradas,
processar dados e programar saídas
PROTOBOARD
É um dispositivo reutilizável, sem solda, utilizado para
prototipar um circuito eletrônico ou para experimentar
projetos de circuitos.
RESISTOR
É um dispositivo projetado para provocar resistência à
passagem da corrente elétrica, causando uma queda na
voltagem em seus terminais
Seu valor é determinado por Neste caso, a função do resistor é Limitar a tensão e
meio de um código de cores que a corrente que o led ficará submetido.
fica gravado no seu corpo.
ANÁLISE DO HARDWARE
VR = R.iL R = 85,7 Ω
3 = R.35. 10-³ Como não existe resistor comercial com este
valor é escolhido uma resistência próxima
com um valor maior, no caso: 100 Ω
ANÁLISE DO HARDWARE
Acender o Led
Esperar 1 segundo
Apagar o led
Esperar 1 segundo
Vamos escrever o código?
// PROJETO 1 – LED PISCANTE Se o seu código estiver sendo lido por outra
pessoa, os comentários ajuda na compreensão.
Componente Quantidade
Arduino uno com cabo USB 1
Jumpers macho-macho 2
Protoboard 400 furos 1
Led 1
Resistor 220 ohms 1
ANÁLISE DO HARDWARE
ARDUINO RESISTOR
•1+1=2
•3-2=1
•2*4=8
•8/2=4
PROJETO 3
Apagar o verde
Acender o amarelo
Apagar o amarelo
Acender o vermelho
ESTADOS LÓGICOS
Um circuito lógico é um circuito para
emitir uma saída de ligado ou
desligado, representado pelos números
binários 1 e 0, respectivamente.
i
Desta forma é possível fazer com que o nível
lógico no pino quando o botão for pressionado
seja BAIXO(LOW – 1v) e quando estiver solto ALTO
(HIGH- 5V).
ANÁLISE DO HARDWARE
RESISTORES PULL-UP INTERNO DO ARDUINO
Início
Configurar parâmetros
Veja o tamanho e
tipo do dado a
ser armazenado
e depois escolha
o tipo de variável!
ANÁLISE DO CÓDIGO
millis() - changeTime
A função millis() é integrada à linguagem
Arduino ,e retorna o tempo em millisegundos
desde o início da execução do programa atual
VERDADEIRA
ANÁLISE DO CÓDIGO
Este é um exemplo de
chamada de função . O
programa sai da linha atual,
changeLights(); pula para a função desejada
e depois retorna ao ponto do
código logo após à chamada
. de funcão.
.
.
Função é tão somente um
bloco de código separado que
recebeu um nome .
changeLights{
Instrução 1;
Instrução 2;
Instrução 3; Elas podem receber ou retornar
Instrução 4 dados.
}
PROJETO 5
Início
Configurar parâmetros
Início
Incrementa o valor da
sequência dos LEDs
O LED já ficou o
tempo mínimo SIM
Está no INÍCIO
aceso? NÃO da sequência?
sentido
sequência:
NÃO
INÍCIO-> FIM
SIM Está no FIM da
Marca este momento que Direciona o programa para a sequência?
rotina(função) SIM
o led aceso foi alterado
de alteração dos leds sentido NÃO
sequência:
FIM -> INÍCIO
ANÁLISE DO CÓDIGO
Estes números
representam os
pinos a que os
Leds estão Este tipo de variável “byte” é do tipo
conectados array(vetor). Um array é um conjunto de
variáveis acessadas por meio de um índice.
Arrays são indexados a partir do zero, logo:
ledPin[0] possui o valor 4
ledPin[3] possui o valor 6
Elementos do array
Você deve declarar o tamanho o array se não inicializá-
lo com valores, por exemplo: ledPin[10];
Mas como você atribuiu valores ( 4 a 13), o compilador
0– 1– 2– 3– 4– 5 6 7 8 9 é capaz de contar e mensurar o tamanho array por
Índices do array conta própria.
PROJETO 5
Início
Configurar parâmetros
Início
Incrementa o valor da
sequência dos LEDs
O LED já ficou o
tempo mínimo SIM
Está no INÍCIO
aceso? NÃO da sequência?
sentido
sequência:
NÃO
INÍCIO-> FIM
SIM Está no FIM da
Marca este momento que Direciona o programa para a sequência?
rotina(função) SIM
o led aceso foi alterado
de alteração dos leds sentido NÃO
sequência:
FIM -> INÍCIO
ANÁLISE DO CÓDIGO
Estes números
representam os
pinos a que os
Leds estão Este tipo de variável “byte” é do tipo
conectados array(vetor). Um array é um conjunto de
variáveis acessadas por meio de um índice.
Arrays são indexados a partir do zero, logo:
ledPin[0] possui o valor 4
ledPin[3] possui o valor 6
Elementos do array
Você deve declarar o tamanho o array se não inicializá-
lo com valores, por exemplo: ledPin[10];
Mas como você atribuiu valores ( 4 a 13), o compilador
0– 1– 2– 3– 4– 5 6 7 8 9 é capaz de contar e mensurar o tamanho array por
Índices do array conta própria.
Gostou do conteúdo?
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 6
Potenciômetro
O potenciômetro é um resistor ajustável com um
alcance de zero a um valor definido
(vem gravado em seu corpo). Neste caso, seu valor é
de 4,7 KΩ, ou seja, pode variar de 0 a 4,7 K Ω (4700 Ω).
GND VCC
5v
ENTRADA
ANALÓGICA
ARDUINO
PROJETOS BÁSICOS
Esquemático de Montagem
ALGORITMO OU PASSO-A-PASSO
Início
Configurar parâmetros
O LED já ficou o
tempo mínimo SIM
Está no INÍCIO
aceso? NÃO da sequência?
sentido
sequência:
NÃO
INÍCIO-> FIM
SIM Está no FIM da
Marca este momento que Direciona o programa para a sequência?
rotina(função) SIM
o led aceso foi alterado
de alteração dos leds sentido NÃO
sequência:
FIM -> INÍCIO
ANÁLISE DO CÓDIGO
Os pinos
analógicos não
precisam ser Para ler o valor de um pino analógico, devemos
definidos como utilizar a função analogRead. Para isso,
entrada ou saída podemos utilizar qualquer um dos 6 pinos
analógicos (A0 a A5).
Cada entrada possui um conversos analógico-para-
digital de 10bits. Isso possibilita uma leitura de 0 a 5V,
utilizando valores inteiros de 0(0V) a 1023 (5V).
Resolução de 5V/1024 = 4,9mV/unidade
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 2
Protoboard 400 furos 1
Led vermelho 1
Resistor 220 ohms 1
ANÁLISE DO HARDWARE
Configurar parâmetros
Você precisa
transformar de
graus para Neste projeto você está criando uma onda
radiano. senoidal e fazendo com que o brilho do LED
acompanhe esta onda. Isto causa o efeito
pulsante no LED.
Valor enviado: 63
(25% do total de 255) – DT = 25% LED COM 25% DE INTENSIDADE
Tempo em que o LED fica aceso é 25% DO BRILHO
do período do pulso
Valor enviado: 127 (50% do total de 255) LED COM 50% DE INTENSIDADE
DT = 50% DO BRILHO
CICLO DE
TRABALHO
0%→ 0
100% -→ 255
PROJETO 8
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 4
Protoboard 400 furos 1
Led vermelho 1
Led verde 1
Led azul 1
Resistor 220 ohms 3
ANÁLISE DO HARDWARE
Configurar parâmetros
NÃO
ANÁLISE DO CÓDIGO
Afinal de contas, o que é RGB?
O objetivo desta
função dentro deste
projeto é evitar
números negativos, constrain é uma função que força os valores
como também aleatórios estarem dentro de um intervalo.
maiores que 255.
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 9
Lâmpadas
Teatro
Dioramas
Maquete de
ferromodelismo
Filmes
LISTA DE COMPONENTES
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 4
Protoboard 400 furos 1
Led vermelho 1
Led amarelo 2
Resistor 220 ohms 3
ANÁLISE DO HARDWARE E DO
CÓDIGO
Configura os parâmetros
Esperar um tempo
aleatório entre 0 e 99 ms
Gostou do conteúdo?
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 10
00111010
Configurar parâmetros...
Novo: Iniciar comunicação Serial
Foi enviado
algum dado
pela serial?
Não
Sim
Armazena os dados da Serial em
um buffer
Início
Envia o buffer preenchido para a
função de tratamento da informação
Define um ponteiro para o
números de caracteres Cria outra variável para acessar o buffer
FIM
ANÁLISE DO CÓDIGO
O QUE É UM PSEUDOCÓDIGO??
Buffer Limpo
Comunicação serial
ANÁLISE DO CÓDIGO
Comunicação serial
ANÁLISE DO CÓDIGO
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 11
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 4
Protoboard 400 furos 1
Sonorizador ou disco piezo (opcional) 1
Módulo buzzer 1
ANÁLISE DO HARDWARE
É um dispositivo feito de uma fina camada de
cerâmica, ligada a um disco metálico.
Configurar parâmetros
NÃO
ANÁLISE DO CÓDIGO
O comando tone() é utilizado para
gerar a freqüência do sonorizador
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 12
Início
Configurar parâmetros
Tocar melodia
Melodia
chegou ao
fim? NÃO
Sim
Aguardar 5 segundos
ANÁLISE DO CÓDIGO
# define... É uma diretiva que define
o valor e seu token correspondente.
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 13
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 4
Protoboard 400 furos 1
Sensor piezo ou módulo buzzer 1
Led vermelho 1
Resistor de 1 MΩ 1
ANÁLISE DO HARDWARE
Configurar parâmetros:
Decrementar o
Fazer a leitura do sinal do sensor
valor do brilho
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 14
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 4
Protoboard 400 furos 1
Módulo buzzer 1
Resistor de 1o kΩ 1
Sensor LDR 1
ANÁLISE DO HARDWARE
LDR
LUZ
Os valores de tensão lidos são analisados
como variação da luminosidade do ambiente
ANÁLISE DO HARDARE
ESQUEMÁTICO DE MONTAGEM
10 kΩ
ALGORITMO OU PASSO-A-PASSO
Início
Configurar parâmetros:
Emite um bip
Espera 25 ms
Interrompe o som
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 15
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 6
MOTOR CC 5V 1
Transistor TIP 1
Potenciômetro 10 kΩ 1
Diodo 1N4001
GND
M
ARDUINO
PINO PWM 9
FONTE DE
ALIMENTAÇÃO 5V
OU 3 pilhas AA
GND
ESQUEMÁTICO DE MONTAGEM
10 kΩ
TIP-122
Base-coletor-emissor
Verificar o
datasheet caso
seja outro
transistor
Diodo
1N4001
FONTE DE
ALIMENTAÇÃO 5V
OU 3 pilhas AA
ALGORITMO OU PASSO-A-PASSO
Início
Configurar parâmetros:
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 16
10 kΩ
5v
10 kΩ
FONTE DE
ALIMENTAÇÃO 5V a
12V OU 3 pilhas AA
Esquemático de montagem
Mapeamento de pinos
L293D
CHIP L293D CIRCUITO CIP L293D CIRCUITO
Enable 1 Pino 6 Arduino VSS 5V (Arduino)
Input1 Pino 3 Arduino Input3
Output1 Motor 1 Output3
GND GND GND GND
GND GND GND GND
Output2 Motor 1 Output4
Input 2 Pino 4 Arduino Input 4
VS (12V) Fonte Externa (+) Enable 2
ALGORITMO OU PASSO-A-PASSO
Início
Configurar parâmetros:
Não
Chave está em Gira o motor no sentido
nível lógico HIGH? anti- horário
Sim
Gira o motor no sentido horário
ANÁLISE DO CÓDIGO
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 17
=9
Objetivo: Fazer com 8 leds contem de forma binária. Na prática iremos controlar
8 leds utilizando apenas 3 pinos de saída do Arduino.
LISTA DE COMPONENTES
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 20
Protoboard 400 furos 1
Led vermelho 8
CI – Registrador de deslocamento 74HC595 1
Resistor 220 Ω 8
Sistema de números binários
11 Latch (portão)
12 Clock
14 10
Entrada de dados
1 0
1 0 1 0
1 0 01
HIGH
1 0 10
(bit 1)
1 01 0 1 1 1 1
0 0 00
1 0 1 0 LOW HIGH
0 0
0 0 LOW HIGH
1 0 1 0
ANÁLISE DO HARDWARE
SEQUÊNCIA DE EVENTOS
ESQUEMÁTICO DE MONTAGEM
Q7 Q6
3.3V
LED
LED
Mapeamento de pinos
CI74HC595
CI 74HC595 CIRCUITO CI 74HC595 Circuito
Q1 Led1 VCC 3.3V Arduino
Q2 Led2 Q0 Led0
Q3 Led3 DS Pino 11 Arduino
Q4 Led4 OE GND Arduino
Q5 Led5 ST_CP Pino 8 Arduino
Q6 Led6 SH_CP Pino 12 Arduino
Q7 Led7 MR 3.3V Arduino
GND GND Arduino Q7’
ALGORITMO OU PASSO-A-PASSO
Lógica de
Início programação
Configurar parâmetros:
Função dos 8 bits de saída
Operadores de deslocamento
movimentam os bits para a esquerda
ou para a direita, pelo número
posições no operando da direita.
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 18
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 20
Protoboard 400 furos 1
Led vermelho 8
CI – Registrador de deslocamento 74HC595 2
Resistor 220 Ω 16
Led verde 8
ANÁLISE DO HARDWARE E DO
CÓDIGO
ESQUEMÁTICO DE MONTAGEM – CI 595 (1)
Q7 Q6
3.3V
LED
LED
PINO 14 DO CI 2
ESQUEMÁTICO DE MONTAGEM – CI 595 (2)
Q7 Q6
PINO 9 DO CI 1
3.3V
LED
LED
Mapeamento de pinos
CI74HC595 (1)
CI 74HC595 CIRCUITO CI 74HC595 Circuito
Q1 Led1 VCC 3.3V Arduino
Q2 Led2 Q0 Led0
Q3 Led3 DS Pino 11 Arduino
Q4 Led4 OE GND Arduino
Q5 Led5 ST_CP Pino 8 Arduino
Q6 Led6 SH_CP Pino 12 Arduino
Q7 Led7 MR 3.3V Arduino
GND GND Arduino Q7’ Pino 14 CI 2
Mapeamento de pinos
CI74HC595 (2)
CI 74HC595 CIRCUITO CI 74HC595 Circuito
Q1 Led1 VCC 3.3V Arduino
Q2 Led2 Q0 Led 0
Q3 Led3 DS Pino 9 CI 1
Q4 Led4 OE GND Arduino
Q5 Led5 ST_CP Pino 8 Arduino
Q6 Led6 SH_CP Pino 12 Arduino
Q7 Led7 MR 3.3V Arduino
GND GND Arduino Q7’
ALGORITMO OU PASSO-A-PASSO
Lógica de
Início programação
Configurar parâmetros:
Função dos 8 bits de saída
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 19
Objetivo: Utilizar os dois CI’s 74HC595 conectados a uma matriz de pontos para
mostrar o funcionamento deste novo componente, e o efeito de multiplexação.
LISTA DE COMPONENTES
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 20
Protoboard 400 furos 1
Display de Matriz de pontos (8x8) (C+) 1
C+ :Catodo comum
(Veja o datasheet)
CI – Registrador de deslocamento 74HC595 2
Resistor 220 Ω 8
ANÁLISE DO HARDWARE
0V
MULTIPLEXAÇÃO
Configurar parâmetros:
Inicializar Timer e configurar função timer Envia o array de leds para as colunas
Exibe a imagem
Análise do código
Este projeto utiliza um recurso
do chip Atmega, conhecido
como Hardware Time.
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 20
0 1 0
1
1 0
0 1
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 20
Protoboard 400 furos 1
Display de Matriz de pontos (8x8) (C+) 1
C+ :Catodo comum
(Veja o datasheet)
CI – Registrador de deslocamento 74HC595 2
Resistor 220 Ω 8
ANÁLISE DO HARDWARE /
ESQUEMÁTICO DE MONTAGEM
ALGORITMO OU PASSO-A-PASSO
Lógica de
Início programação
Configurar parâmetros:
Inserir os quadros de uma animação
Exibiu 8 Não
Configurar parâmetros: quadros?
Inicializar Timer e configurar função timer
Sim
Rotaciona cada palavra binária nas Volta ao
linhas e colunas para dar a ideia de quadro(frame) inicial
movimento
Frame 1
2ª Linha
00111000 = 56
ANÁISE DO CÓDIGO
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO
PROJETO 21
Componente Quantidade
Arduino uno 1
Jumpers macho-macho 20
Protoboard 400 furos 1
Display de Matriz de pontos (8x8) (C-) 1
C- :Catodo comum
(Veja o datasheet)
CI – MAX7219 OU AS1107 1
Resistor 220 Ω 1
Esquemático de Montagem
Mapeamento de pinos
CIMAX7219 (1)
CI MAX7219 CIRCUITO CI MAX7219 Circuito
DIG1 PINO MATRIZ: 3 + 5V Arduino
DIG2 PINO MATRIZ: 4 DIG0 PINO MATRIZ: 13
DIG3 PINO MATRIZ: 10 DIN Pino 2 Arduino
DIG4 PINO MATRIZ: 6 OE GND Arduino
DIG5 PINO MATRIZ: 11 LOAD Pino 3 Arduino
DIG6 PINO MATRIZ: 15 CLK Pino 4 Arduino
DIG7 PINO MATRIZ: 16 SET RESISTOR 20K (se display
não acender tente outro
maior) EM 5V Arduino
Lógica de
Inserir bibliotecas programação
Configurar parâmetros:
Inserir um array bidimensional
Interrupção Não
Configurar parâmetros: acionada?
Inicializar Timer e configurar função timer
Sim
Inicializar o chip MAX7219 Executar função de
Configura Intensidade do brilho exibição
Configurar as mensagens
ANÁLISE DO CÓDIGO
Biblioteca : pgmspace
Biblioteca dos utilitários do Progam Space, cuja
funções permitem ao seu programa
acessar dados armazenados em espaço de
programa ou memória flash.
Comando : PROGMEN
Memória: SRAM
O array que nós utilizamos possui 96 caracteres,
compostos de 8 bits cada. O espaço de memória
para variáveis é de aproximadamente 2 Kb.
ASCII
Estas variáveis terão a função de armazenar o valor
ASCII (American Standart Code for Information) do
caractere atual, a ser exibido, e do próximo.
CARACTERES
IMPRIMÍVEIS
PRESTE ATENÇÃO!!!
ASCII Os caracteres de 0 a 31, são apenas códigos de
controle, e não serão utilizados. Eles não aparecem
no display de matriz de pontos.
pgm_read_byte
Para imprimir estes caracteres é
necessário acessar a fonte de texto, e
saber qual padrão de bits enviar.
Email: LGUSTAVOSDP@YAHOO.COM.BR
CANAL YOUTUBE: L GUSTAVO