Академический Документы
Профессиональный Документы
Культура Документы
COORDENADOR:
Prof. Carlos Renato Borges dos Santos
Versão 3.0
ETAPAS DO CURSO COMPLETO
carlos.renato@ifmg.edu.br
santoscrb@gmail.com
www.santoscrb.com
Aula 3
Revisão sobre programação em C.
Declaração de variáveis e ponteiros
Condicionais:
If
While
For
Do ...While
Switch
Struct
Union
Aula 9
Comunicação serial
Aula 10
Desenvolvimento de protocolos de comunicação serial
Aula 11
PROJETO 5 – CONTROLE DE UM MOTOR DE CC E DE
MOTOR DE PASSO POR MEIO DA SERIAL
Aula 12
PROJETO 6 – ESTAÇÃO DE MEDIÇÃO COM ENVIO DE
DADOS PELA SERIAL
http://globotv.globo.com/rede-globo/jornal-
nacional/v/alunos-do-engenharia-do-rio-vencem-maior-
campeonato-de-robotica-do-mundo/2547531/
http://www.youtube.com/watch?v=UUbdSjEvsdw
http://www.youtube.com/watch?v=fvsTzFnfgiI
http://www.youtube.com/watch?v=5XDXyJTNFu4
http://www.youtube.com/watch?v=JWqFH0roIUI
//Instruções repetidas }
//infinitamente }
}
Vantagens Desvantagens
Alimentação: Pode ser Não simula em
alimentado pela USB
computador (ainda não
Total compatibilidade entre o
IDE e a placa, não sendo encontrei)
necessárias configurações Nem todas as portas
complexas
possuem um LED
Não precisa de alimentação
externa integrado à plataforma.
Preço, se comparado a um kit Ao sair do estado de
com microcontrolador PIC, protótipo deve-se fazer
8051 ou outro
adequações
29 IFMG-Campus Formiga 26/08/2013
Kit PIC
Kit PIC
Alimentação externa
(127/220V)
Não inclui compilador
(MikroC, CCS)
Não inclui simulador
(Proteus)
Utiliza MPLAB
Preço: R$ 600,00
Notas:
50% - avaliação escrita
50% - projetos
RTC DS1307
Usa codificação BCD
Exercício 1
Represente os valores a seguir em registradores de 8
bits:
A) 20 (decimal) ->
B) 0 (ASCII) ->
C) 45 (hexadecimal) ->
D) 10110 (binário) ->
E) 7E (hexadecimal) ->
F) 64 (bcd) ->
Exercício 2
Dados os bits, o que eles representariam se estivessem
em: ASCII, hexadecimal, BCD e decimal: (
A) 10010100 ->
B) 01010101 ->
C) 11110000 ->
D) 10110111 ->
E) 00111010 ->
F) 1101010110101001 ->
Exercício 3
O RTC 1307 armazena a seguinte data: 26/12/13. Como
serão preenchidos os seguintes registradores: dia, mês, ano?
char
Sinal
(+) 0
(-) 1
unsigned char
98 Carry
Carry (1 bit)
(operação anterior)
+
78 ULA
---- Resultado
(8 bits)
Registrador B ( 8 bits)
51 IFMG-Campus Formiga 26/08/2013
Manipulação de dados de diversos
tipos em C
O que acontece com os valores armazenados
quando:
Bit = byte ......Arduino?
Bit = word ......Arduino?
Byte = bit ......Arduino: recebe 0 ou 1
Byte = word ......Arduino: recebe-se o byte
menos significativo
word = bit ...... Arduino: recebe 0 ou 1
word = byte ....... Arduino: recebe o valor
if( teste_condicional )
{
//Caso passe no teste_condicional
}
else
{
//Caso não passe no teste_condicional
}
while( teste_condicional )
{
//expressão
}
do
{
//expressão
} while ( teste_condicional )
switch(variavel)
{
case valor1:
break;
case valor2:
break;
case valor3:
break;
default:
//Caso não tenha encontrado um case
}
Arduino UNO
6 Portas de entradas
analógicas (Conversor AD
de 10 bits cada)
14 portas de IO, sendo 6
com saídas PWM
1 saída de alimentação 5 V
1 saída de alimentação de
3,3 V
IFMG-Campus Formiga
82 26/08/2013
Exemplos
Pasta Laboratorios
Exemplo 1 – operações entre diversos tipos
Exemplo 2 – Ponteiros
Exemplo 3 – Variáveis char, int e float
Cálculo de Potência
P=UxI
Tensão de alimentação do Arduino (USB) = 5V
Corrente máxima da USB (até 500mA por porta)
Dimensionamento de LEDs
Um LED consome cerca de 5 a 30 mA, dependendo do
tamanho e tipo de LED. Quando ligado, sua tensão é da
ordem de 1,2V. Logo, o resistor que deve ser ligado em série:
(-)
(+)
Ideal: 7 a 12V
99 Arduino – Módulo 1 26/08/2013
PROJETO 1
Princípio de
funcionamento;
Lógica de programação;
Canal:
A0
A1
A2
A3
A4
A5
http://www.sucatapontotec.netai.net/projeto-003-robo-
arduino-seguidor-de-linha/
http://www.pessoal.utfpr.edu.br/msergio/Monog-09-2-
Seguidor-de-linha.pdf
http://www.tur.eletrica.ufu.br/doc/regulamentoIITUR.pd
f
analogWrite(Porta, variável);
Comandos básicos:
Void setup()
Serial.begin(9600);
Void loop()
Serial.print(“Texto”);
Serial.print(x);
Serial.println(x);
Serial.write(‘a’);
Serial.write(x);//x tipo char
O envio de dados
Taxas de transmissão
Padrão TTL e RS-232
Enviando dados
Recebendo dados
Criando um protocolo de transmissão (byte a byte)
1 – – – – – – ( 5V )
0 – – – – – – ( 0V )
1 – – – – – – ( -15V )
0 – – – – – – ( +15V )
Comandos básicos:
Serial.begin(taxa_de_transimissao);
Serial.available();
Serial.read();
Serial.write(byte);
Ver exemplo 6
O arduino UNO:
SRAM: 2kB
EEPROM: 1 kB
FLASH: 32 kB
SRAM
Mega2560
SRAM: 8kB
FLASH Processador
EEPROM: 4kB
FLASH: 256 kB
EEPROM
Evento externo
Interrupção
loop()
Programa principal
Ver Exemplo 12