Você está na página 1de 204

Arduino Mdulo 1

COORDENADOR:
Prof. Carlos Renato Borges dos Santos

Verso 3.0

ETAPAS DO CURSO COMPLETO


Mdulo 1 Programando o Arduino
16 horas

Mdulo 2 Sistemas de Interface


Mais de 20 horas

IFMG-Campus Formiga

26/08/2013

Contatos

carlos.renato@ifmg.edu.br

santoscrb@gmail.com
www.santoscrb.com

Arduino Mdulo 1

26/08/2013

Contedo programtico
Mdulo 1 Programando o Arduino

IFMG-Campus Formiga

26/08/2013

Ao final do curso, ser capaz de:


Desenvolver aplicaes bsicas com o Arduino e pequenos

acionamentos;
Ler sinais de sensores que funcionam entre 0 e 5 V;
Gravar dados na memria no-voltil;
Desenvolver protocolos de comunicao sem verificaes
complexas dos dados;
Controlar servomotores, motores de passo e motores de
corrente contnua (apenas o controle, a parte de potncia
ser ministrada no mdulo 2);
Entender o processo de interrupes;
Conhecer alguns componentes eletrnicos.

IFMG-Campus Formiga

26/08/2013

Contedo programtico
Aula 1

O que Arduino
Tipos de Arduino
A placa eletrnica
Vantagens do Arduino
Apresentao do programa
Notas:
Avaliao: 40% da nota
Projetos: 60% da nota

Aula 2
Conceitos de bit, Byte, Word.
Tipos de variveis do Arduino.
Manipulao de dados de diversos tipos em C

IFMG-Campus Formiga

26/08/2013

Contedo programtico
Aula 3
Reviso sobre programao em C.
Declarao de variveis e ponteiros
Condicionais:
If
While
For
Do ...While
Switch
Struct
Union

IFMG-Campus Formiga

26/08/2013

Contedo programtico
Aula 4
O IDE do Arduino.
Verificao
Compilao
Pinos de IO
Exemplo Pisca-Pisca
Exemplo push button
Alimentao do Arduino
Clculo de potncia dos dispositivos
Dimensionamento de corrente de LEDs
Princpio de funcionamento de um motor de passo
PROJETO 1 ACIONAMENTO DE LEDS ATRAVS DE PUSH-BUTTONS
PROJETO 2 CONTROLE DE UM MOTOR DE PASSO EM 2 SENTIDOS
8

IFMG-Campus Formiga

26/08/2013

Contedo programtico
Aula 5
VERIFICAO DOS PROJETOS 1 E 2
Apresentao de vdeos e links interessantes

Aula 6
Converso Analgico digital
Exerccios

Aula 7
PWM

Aula 8
PROJETO 3 CONTROLE DE VELOCIDADE DE UM MOTOR

CC ATRAVS DE UM POTENCIMETRO
PROJETO 4 SEGUIDOR SOLAR
9

IFMG-Campus Formiga

26/08/2013

Contedo programtico
Aula 9
Comunicao serial

Aula 10
Desenvolvimento de protocolos de comunicao serial

Aula 11
PROJETO 5 CONTROLE DE UM MOTOR DE CC E DE

MOTOR DE PASSO POR MEIO DA SERIAL


Aula 12
PROJETO 6 ESTAO DE MEDIO COM ENVIO DE

DADOS PELA SERIAL


10

IFMG-Campus Formiga

26/08/2013

Contedo programtico
Aula 13
Memrias
SRAM
FLASH
EEPROM

Aula 14
Gravando e recuperando dados na EEPROM

Aula 15
Servomotor
PROJETO 7 SEGUIDOR SOLAR COM ARMAZENAMENTO E

ENVIO DE DADOS DE POSIO PELA PORTA SERIAL

Aula 16
Avaliao do curso e avaliao terica

11

IFMG-Campus Formiga

26/08/2013

Livros sobre Arduino

12

Arduino Mdulo 1

26/08/2013

Bibliografia
1- Site www.arduino.cc

2- McRoberts, Michael. Arduino bsico. Editora NovaTec.


3- Ronald J. Tocci e Neal S. Widmer. Sistemas Digitais:

13

Princpios e Aplicaes.
4- Banz, Massimo. Primeiros passos com o Arduino.
5- 30 Arduino Projects for the evil genius
6- Arduino CookBook, 2nd edition
7-http://renatoaloi.blogspot.com
8- Fbio Pereira. Microcontroladores PIC Programao em
C. Editora rica.

IFMG-Campus Formiga

26/08/2013

Motivaes
http://globotv.globo.com/rede-globo/jornal-

14

nacional/v/alunos-do-engenharia-do-rio-vencem-maiorcampeonato-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

Arduino Mdulo 1

26/08/2013

1-Apresentao
Mdulo 1 Programando no Arduino

O que Arduino

16

IFMG-Campus Formiga

26/08/2013

O que Arduino
uma plataforma de prototipagem eletrnica de hardware

livre, projetada com um microcontrolador Atmel AVR de


placa nica, com suporte de entrada/sada embutido, uma
linguagem de programao padro, na qual essencialmente
C/C++.
O projeto iniciou-se na Itlia, em 2005, com o intuito de
interagir em projetos escolares.

17

IFMG-Campus Formiga

26/08/2013

O que Arduino

18

IFMG-Campus Formiga

26/08/2013

O que Arduino
O Arduino IDE uma aplicao multiplataforma

escrita em Java. Inclui um editor de cdigo,


compilador e carrega programas para a placa com
um nico clique.
Com isso no h a necessidade de editar Makefiles
ou rodar programas em ambientes de linha de
comando.

19

IFMG-Campus Formiga

26/08/2013

O que Arduino
Linguagem do Arduino
void setup()
{
//Comandos de
//inicializao
}
void loop()
{
//Instrues repetidas
//infinitamente
}
20

Arduino Mdulo 1

Linguagem C
void main()
{
//void setup
while(1)
{
//void loop

}
26/08/2013

Tipos de Arduino

21

IFMG-Campus Formiga

26/08/2013

Tipos de Arduino

22

IFMG-Campus Formiga

26/08/2013

Tipos de Arduino

23

IFMG-Campus Formiga

26/08/2013

Tipos de Arduino

24

IFMG-Campus Formiga

26/08/2013

A placa eletrnica

25

IFMG-Campus Formiga

26/08/2013

A placa eletrnica

26

IFMG-Campus Formiga

26/08/2013

A placa eletrnica

27

IFMG-Campus Formiga

26/08/2013

Vantagens do Arduino

28

IFMG-Campus Formiga

26/08/2013

Vantagens do Arduino
Vantagens
Alimentao: Pode ser
alimentado pela USB
Total compatibilidade entre o
IDE e a placa, no sendo
necessrias configuraes
complexas
No precisa de alimentao
externa
Preo, se comparado a um kit
com microcontrolador PIC,
8051 ou outro
29

IFMG-Campus Formiga

Desvantagens
No simula em

computador (ainda no
encontrei)
Nem todas as portas
possuem um LED
integrado plataforma.
Ao sair do estado de
prottipo deve-se fazer
adequaes
26/08/2013

Kit PIC
Kit PIC
Alimentao externa

30

IFMG-Campus Formiga

(127/220V)
No inclui compilador
(MikroC, CCS)
No inclui simulador
(Proteus)
Utiliza MPLAB
Preo: R$ 600,00
26/08/2013

Comparao
Arduino

PIC / 8051

Abrir software Arduino

Selecionar o Arduino

Abrir arquivo
Cabo USB
Plugar o Arduino
Compilar

31

IFMG-Campus Formiga

Abrir software de edio em C


Criar uma pasta e nomear o projeto
Configurar fusveis
Abrir biblioteca de exemplos, copiar
exemplo
Configurar registradores dos perifricos
Certificar se o PIC, ex: 18F4550
Kit + Fonte de alimentao + cabo USB +
gravador + cabo RJ
Compilar
Abrir o MPLAB para gravao
Encontrar o arquivo .HEX
Clicar em Play

26/08/2013

Apresentao do programa
Notas:
50% - avaliao escrita
50% - projetos

32

IFMG-Campus Formiga

26/08/2013

2-Conceitos bsicas
Mdulo 1 Programando no Arduino

PARTE 1 Noes de software


Conceitos de bit, Byte, Word.

Cdigos ASCII, Binrio, BCD, Hexadecimal.


Reviso sobre programao em C.
Tipos de variveis.
O IDE do Arduino.

34

IFMG-Campus Formiga

26/08/2013

Conceitos de bit, Byte e Word

35

IFMG-Campus Formiga

26/08/2013

Conceitos de bit, byte e word


Bit um registrador ou varivel que armazena o valor 0 ou

1. Uma varivel do tipo bit usada para testes lgicos dos


tipos: verdadeiro ou falso.
Byte um conjunto de 8 bits. Usado para armazenar
valores de 0 a 255 (sem sinal) ou de -128 a +127 (com sinal)
Word um conjunto de 16 bits. Armazena valores de 0 a
65535 ou -32768 a 32767

36

IFMG-Campus Formiga

26/08/2013

Sistemas de codificao

37

IFMG-Campus Formiga

26/08/2013

ASCII 0 a 127

38

IFMG-Campus Formiga

26/08/2013

ASCII 128 a 255

39

IFMG-Campus Formiga

26/08/2013

Hexadecimal binrio - decimal

40

IFMG-Campus Formiga

26/08/2013

Codificao BCD

RTC DS1307
Usa codificao BCD

41

IFMG-Campus Formiga

26/08/2013

Sistemas de codificao
Exerccio 1
Represente os valores a seguir em registradores de 8

bits:
A) 20 (decimal) ->
B) 0 (ASCII) ->
C) 45 (hexadecimal) ->

D) 10110 (binrio) ->


E) 7E (hexadecimal) ->
F) 64 (bcd) ->
42

IFMG-Campus Formiga

26/08/2013

Sistemas de codificao
Exerccio 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 ->
43

IFMG-Campus Formiga

26/08/2013

Sistemas de codificao
Exerccio 3
O RTC 1307 armazena a seguinte data: 26/12/13. Como
sero preenchidos os seguintes registradores: dia, ms, ano?

44

Arduino Mdulo 1

26/08/2013

Tipos de variveis do Arduino

45

IFMG-Campus Formiga

26/08/2013

Tipos de variveis do Arduino


boolean
char (-128 a 127)
unsigned char (0 a 255)
byte (0 a 255)
int (-32.768 a 32.767)
unsigned int (0 a 65535)
word (0 a 65535)
long [32 bits (4 bytes), de 2.147.483.648 a
2.147.483.647]
unsigned long (0 a
4.294.967.295)

46

IFMG-Campus Formiga

Float (-3.4028235E+38 a

3.4028235E+38 stored as 32
bits)
Double (On the Arduino
Due, doubles have 8-byte (64
bit) precision)
string - char array
string - object
array

http://arduino.cc/en/Refer

ence/HomePage

26/08/2013

Manipulao de dados de diversos


tipos em C

47

IFMG-Campus Formiga

26/08/2013

Manipulao de dados de diversos


tipos em C
Dicas sobre o uso de variveis
Como o processador de 8 bits, evite usar variveis longas,

isso poupar memria e aumentar a velocidade de clculo.


Prefira usar variveis inteiras de 8 e 16 bits, evitando
variveis com ponto flutuante.

48

IFMG-Campus Formiga

26/08/2013

Manipulao de dados de diversos


tipos em C
char
Sinal
(+) 0
(-) 1

unsigned char

49

IFMG-Campus Formiga

26/08/2013

Manipulao de dados de diversos


tipos em C

50

IFMG-Campus Formiga

26/08/2013

Manipulao de dados de diversos


tipos em C
Registrador A
(8 bits)

98
+
78
----

Carry
(operao anterior)

Carry (1 bit)

ULA

Resultado
(8 bits)

Registrador B ( 8 bits)
51

IFMG-Campus Formiga

26/08/2013

Manipulao 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

52

IFMG-Campus Formiga

26/08/2013

Valores em decimal, hexa e binrio


X = 0x10; // x recebe o valor 10h (16 decimal)

Y = 10; // y recebe 10 decimal


Z = 0b10; // z recebe 10b (2 decimal)

53

Arduino Mdulo 1

26/08/2013

Operaes com variveis


Calcule o resultado das variveis aps as seguintes

operaes:

unsigned int calc = 2000;

unsigned char x, y, z;
x = calc; //x=208
y = 400; //y=144
z = x + y; //z = 96
Ver Exemplo1
54

Arduino Mdulo 1

26/08/2013

Ponteiros
unsigned int x[5];

unsigned int *ponteiro;


for(char i = 0;i<5;i++)
{
x[i] = 2*i+1;

}
ponteiro = &x[0];

ponteiro ++;
(*ponteiro)++;
Ver Exemplo2
55

Arduino Mdulo 1

26/08/2013

3-Programao em C
Mdulo 1 Programando no Arduino

Reviso sobre programao em C

57

IFMG-Campus Formiga

26/08/2013

Reviso sobre programao em C


if( teste_condicional )

{
//Caso passe no teste_condicional

}
else
{
//Caso no passe no teste_condicional

58

IFMG-Campus Formiga

26/08/2013

Reviso sobre programao em C


while( teste_condicional )

{
//expresso

59

IFMG-Campus Formiga

26/08/2013

Reviso sobre programao em C


for( inicializao ; teste_condicional ; incremento )

{
//expresso

60

IFMG-Campus Formiga

26/08/2013

Reviso sobre programao em C


do

{
//expresso

} while ( teste_condicional )

61

IFMG-Campus Formiga

26/08/2013

Reviso sobre programao em C


switch(variavel)

{
case valor1:
break;

case valor2:
break;
case valor3:
break;
default:
//Caso no tenha encontrado um case

}
62

IFMG-Campus Formiga

26/08/2013

Reviso sobre programao em C


typedef struct
{

Typedef struct
{

//Declarao de variveis
//var1;
//Var2;

} Tipo;
...
Tipo variavel;
...
variavel.var1 = valor1;
Variavel.var2 = valor2;

int chave;
char matricula[6];
char nome[16];
char senha[4];

}Taluno;
...
Taluno turma1[40];
For(char i=0;i<40;i++){
Turma1[i].matricula[0] = 1;
...

}
63

IFMG-Campus Formiga

26/08/2013

Reviso sobre programao em C


typedef union

typedef union

//Declara_varivel_maior

int x;

;
//Declara_variveis_meno
res;

char y[2];

} Tipo;

}Tint16;
...
Tint16 valor;
valor.x = 0xABCD;
valor.y[0] = ?

64

IFMG-Campus Formiga

26/08/2013

4-O Arduino
Mdulo 1 Programando no Arduino

O IDE do Arduino

66

IFMG-Campus Formiga

26/08/2013

O IDE do Arduino

67

IFMG-Campus Formiga

26/08/2013

O IDE do Arduino

68

IFMG-Campus Formiga

26/08/2013

O IDE do Arduino
ltima verso: 1.0.5 (at o incio do curso)
Escolher o Arduino
Exemplos de programas
Conexo automtica
Verificao de sintaxe
Compilao
Gravao
69

IFMG-Campus Formiga

26/08/2013

O IDE do Arduino

70

IFMG-Campus Formiga

26/08/2013

Pinos de IO
Arduino UNO

71

IFMG-Campus Formiga

26/08/2013

Pinos de IO
Arduino UNO

6 Portas de entradas

analgicas (Conversor AD
de 10 bits cada)
14 portas de IO, sendo 6
com sadas PWM
1 sada de alimentao 5 V
1 sada de alimentao de
3,3 V

72

IFMG-Campus Formiga

26/08/2013

Arduino UNO

73

IFMG-Campus Formiga

26/08/2013

Arduino UNO

74

IFMG-Campus Formiga

26/08/2013

Arduino UNO

75

IFMG-Campus Formiga

26/08/2013

Pinos de IO
Arduino Mega 2560

76

IFMG-Campus Formiga

26/08/2013

Pinos de IO
Arduino MEGA 2560

54 pinos de IO digitais
14 sadas PWM que podem

ser configuradas como


entradas digitais
4 terminais de
comunicao serial USART
+ 1 I2C
Pinos 22 a 53 de IO digital
16 entradas analgicas

(Conversor AD de 10 bits)
77

IFMG-Campus Formiga

26/08/2013

Arduino Mega 2560

78

IFMG-Campus Formiga

26/08/2013

Arduino Mega 2560

79

IFMG-Campus Formiga

26/08/2013

Arduino Mega 2560

80

IFMG-Campus Formiga

26/08/2013

Exemplos de programao

81

IFMG-Campus Formiga

26/08/2013

Exemplos de programao: Pisca-pisca

82

IFMG-Campus Formiga

26/08/2013

Exemplos
Pasta Laboratorios
Exemplo 1 operaes entre diversos tipos
Exemplo 2 Ponteiros
Exemplo 3 Variveis char, int e float

83

IFMG-Campus Formiga

26/08/2013

Pinos de I/O
Entrada de dados
Definir como entrada
pinMode(pino,INPUT);
Leitura
boolean x;
x = digitalRead(pino);

Sada de dados
Definir como sada
pinMode(pino,OUTPUT);
Escrever o dado
digitalWrite(pino,HIGH);
digitalWrite(pino,LOW);
84

Arduino Mdulo 1

26/08/2013

Exemplo de leitura/escrita

85

Arduino Mdulo 1

26/08/2013

Push-Button:
Normalmente: 1
Apertando: 0

86

IFMG-Campus Formiga

Normalmente: 0
Apertando: 1

26/08/2013

Push-Button
Sada Normalmente 1
Apertando: 0

87

Arduino Mdulo 1

Sada Normalemente 0
Apertando: 1

26/08/2013

Latch

88

Arduino Mdulo 1

26/08/2013

Exemplos de programao: push


button
Cada pino dever ser configurado como entrada;
Para ler o sinal do pino, dever ser atravs de um

comando;
Veja exemplo a seguir.

89

IFMG-Campus Formiga

26/08/2013

Exemplo de leitura digital

90

IFMG-Campus Formiga

26/08/2013

Alimentao do Arduino

91

IFMG-Campus Formiga

26/08/2013

Alimentao do Arduino
Pode-se aliment-lo atravs da porta USB

Possui alimentao externa.

92

IFMG-Campus Formiga

26/08/2013

Alimentao do Arduino
Clculo de Potncia
P=UxI
Tenso de alimentao do Arduino (USB) = 5V
Corrente mxima da USB (at 500mA por porta)

Um simples resistor de 1k: I = 5/1000 = 5 mA


Um simples resistor de 100R: I = 5/100 = 50 mA

93

IFMG-Campus Formiga

26/08/2013

Cdigo de cores de resistores

94

Arduino Mdulo 1

26/08/2013

LED

95

Arduino Mdulo 1

26/08/2013

Alimentao de um LED

96

Arduino Mdulo 1

26/08/2013

Alimentao de um LED
Dimensionamento de LEDs

Um LED consome cerca de 5 a 30 mA, dependendo do

tamanho e tipo de LED. Quando ligado, sua tenso da


ordem de 1,2V. Logo, o resistor que deve ser ligado em srie:

Caso de alimentao USB: R = (5 1,2)/5m = 760 Ohms


No caso, mais prudente arredondar a resistncia para cima,

logo usa-se 1kohm


Tente agora para ligar um LED em 12V
97

IFMG-Campus Formiga

26/08/2013

USB conector tipo B

98

IFMG-Campus Formiga

26/08/2013

Alimentao Externa

(-)

(+)
Ideal: 7 a 12V
99

Arduino Mdulo 1

26/08/2013

PROJETO 1

100

IFMG-Campus Formiga

26/08/2013

ACIONAMENTO DE LEDS ATRAVS DE


PUSH-BUTTONS
DESCRIO: O projeto dever acionar um LED que represente

um motor de CC. O acionamento se dar por push-button. Ao


acionar a chave, o programa dever verificar o estado do LED e
mud-lo. No se esquea de inserir um delay aps ler o estado
do push-button.
Outros dois botes podero ser usados para regular o tempo de
acionamento do LED.
Aproveite os outros pinos de I/O e use a criatividade para
acionar mais de um LED.
101

IFMG-Campus Formiga

26/08/2013

PROJETO 2

102

IFMG-Campus Formiga

26/08/2013

CONTROLE DE UM MOTOR DE PASSO


EM 2 SENTIDOS
DESCRIO: Elaborar subrotinas que leiam 2 push-buttons,

um que ao ser acionado chame uma subrotina que gire LEDs


direita e outro que ao ser acionado chame uma subrotina
que gire LEDs esquerda.
Tente usar void, funes, variveis, struct para deixar o
cdigo mais elegante e organizado
Insira comentrios sempre que possvel para explicar as
etapas do cdigo.

103

IFMG-Campus Formiga

26/08/2013

Aplicao: Motor de passo


Princpio de

funcionamento;
Lgica de programao;

104

IFMG-Campus Formiga

26/08/2013

5-Consulta sobre os projetos


Mdulo 1 Programando no Arduino

Verificao dos projetos 1 e 2

106

IFMG-Campus Formiga

26/08/2013

Vdeos e links interessantes


Vdeo 1

Vdeo 2
Vdeo 3
Vdeo 4

Vdeo 5
Vdeo 6
Vdeo 7

http://uriedubot.wordpress.com/author/uriedubot/
www.arduino.cc
http://renatoaloi.blogspot.com
107

IFMG-Campus Formiga

26/08/2013

6-Hardware interno [1]


Mdulo 1 Programando no Arduino

Converso analgico-digital (ADC)

109

IFMG-Campus Formiga

26/08/2013

Conversor AD 1 bit

110

IFMG-Campus Formiga

26/08/2013

Conversor AD 2 bits

111

IFMG-Campus Formiga

26/08/2013

Conversor AD 3 bits

112

IFMG-Campus Formiga

26/08/2013

Aliasing

113

IFMG-Campus Formiga

26/08/2013

Converso analgico-digital (ADC)

114

IFMG-Campus Formiga

26/08/2013

Converso analgico-digital (ADC)

115

IFMG-Campus Formiga

26/08/2013

Conversor DA

116

Arduino Mdulo 1

26/08/2013

Converso analgico-digital (ADC)


uma funo que retorna um valor de 10 bits.

Precisa de um comando especfico.


Lembre-se que a execuo desse comando necessita de um

pequeno intervalo de tempo (de micro a milissegundos).


Os valores lidos pelo ADC podem variar de 0 a 1023.

117

IFMG-Campus Formiga

26/08/2013

Converso analgico-digital (ADC)


Sensor de preciso:
Variavel (16 bits) = analogRead(Canal)

Sensor de baixa preciso ou de sinal ruidoso:


Variavel (8 bits) = analogRead(Canal)>>2

Canal:

118

A0
A1
A2
A3
A4
A5

IFMG-Campus Formiga

26/08/2013

Exemplo de leitura AD

119

IFMG-Campus Formiga

26/08/2013

Exemplo: seguidor de linha

120

IFMG-Campus Formiga

26/08/2013

Links interessantes
http://www.sucatapontotec.netai.net/projeto-003-robo-

arduino-seguidor-de-linha/
http://www.pessoal.utfpr.edu.br/msergio/Monog-09-2Seguidor-de-linha.pdf
http://www.tur.eletrica.ufu.br/doc/regulamentoIITUR.pd
f

121

Arduino Mdulo 1

26/08/2013

Cuidado!
Nunca ligue diretamente algum dispositivo no canal AD que

tenha alguma possibilidade de atingir valores acima de 5V

122

Arduino Mdulo 1

26/08/2013

7-Hardware interno [2]


Mdulo 1 Programando no Arduino

PWM (converso digital-analgico)

124

IFMG-Campus Formiga

26/08/2013

PWM
Usado para controle de tenso por chaveamento em alta

frequncia.
Dentre sua utilizao, encontram-se:
Controle de velocidade de motor DC;

Servomotores;
Controle de iluminao.

125

IFMG-Campus Formiga

26/08/2013

PWM

126

IFMG-Campus Formiga

26/08/2013

PWM
analogWrite(Porta, varivel);
Porta: configurada como sada.
Varivel: Valor 8 bits sem sinal (0 a 255).

127

IFMG-Campus Formiga

26/08/2013

PWM

128

IFMG-Campus Formiga

26/08/2013

Serial Parte 1
Comandos bsicos:
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

129

Arduino Mdulo 1

26/08/2013

8-Projetos
Mdulo 1 Programando no Arduino

PROJETO 3

131

IFMG-Campus Formiga

26/08/2013

Potencimetro

132

Arduino Mdulo 1

26/08/2013

CONTROLE DE UM MOTOR CC ATRAVS


DE UM POTENCIMETRO
A) DESCRIO: Elaborar um algoritmo que leia um canal

AD e envie o sinal lido para o PWM.


B) DESCRIO: Elaborar um algoritmo que leia um canal
AD e varie lentamente o sinal PWM at atingir o valor
configurado. Para isso, necessrio comparar o sinal lido no
AD com o sinal do PWM.

133

IFMG-Campus Formiga

26/08/2013

PROJETO 4

134

IFMG-Campus Formiga

26/08/2013

LDR

135

Arduino Mdulo 1

26/08/2013

PROJETO DE UM SEGUIDOR SOLAR


Construir um seguidor solar guiado por motor de passo e

LDR.
O circuito dever varrer um raio de 180 graus, armazenar o
ngulo de maior intensidade luminosa e, quando terminar, ir
em direo ao ponto de maior intensidade.

136

Arduino Mdulo 1

26/08/2013

9-Noes sobre a Serial


Mdulo 1 Programando no Arduino

Comunicao serial

138

IFMG-Campus Formiga

26/08/2013

Comunicao serial
O envio de dados

Taxas de transmisso
Padro TTL e RS-232
Enviando dados
Recebendo dados
Criando um protocolo de transmisso (byte a byte)

139

IFMG-Campus Formiga

26/08/2013

Comunicao serial

140

IFMG-Campus Formiga

26/08/2013

141

Arduino Mdulo 1

26/08/2013

142

Arduino Mdulo 1

26/08/2013

143

Arduino Mdulo 1

26/08/2013

Comunicao serial

144

IFMG-Campus Formiga

26/08/2013

145

Arduino Mdulo 1

26/08/2013

146

Arduino Mdulo 1

26/08/2013

147

Arduino Mdulo 1

26/08/2013

148

Arduino Mdulo 1

26/08/2013

149

Arduino Mdulo 1

26/08/2013

150

Arduino Mdulo 1

26/08/2013

151

Arduino Mdulo 1

26/08/2013

152

Arduino Mdulo 1

26/08/2013

153

Arduino Mdulo 1

26/08/2013

154

Arduino Mdulo 1

26/08/2013

Padro TTL
1 ( 5V )

0 ( 0V )

A IDE do Arduino cria uma COM virtual a partir de uma

porta USB.
155

Arduino Mdulo 1

26/08/2013

Padro TTL

156

Arduino Mdulo 1

26/08/2013

RS 232
1 ( -15V )

0 ( +15V )

Nunca ligue um microcontrolador ou Arduino diretamente

porta serial! preciso um conversor MAX 232


157

IFMG-Campus Formiga

26/08/2013

RS 232

158

Arduino Mdulo 1

26/08/2013

RS 232
RS 232 - RS 232

159

Arduino Mdulo 1

Conversor TTL - RS 232

26/08/2013

Interface serial RS232

160

IFMG-Campus Formiga

26/08/2013

baud rate

161

Arduino Mdulo 1

26/08/2013

Comunicao serial
Comandos bsicos:
Serial.begin(taxa_de_transimissao);

Serial.available();

Serial.read();
Serial.write(byte);

162

IFMG-Campus Formiga

26/08/2013

Comunicao serial

Ver exemplo 6

163

IFMG-Campus Formiga

26/08/2013

10-Protocolos de comunicao
Mdulo 1 Programando no Arduino

Desenvolvimento de protocolos de
comunicao

165

IFMG-Campus Formiga

26/08/2013

Ver exemplo 7

166

IFMG-Campus Formiga

26/08/2013

11-Projeto
Mdulo 1 Programando no Arduino

PROJETO 4

168

IFMG-Campus Formiga

26/08/2013

CONTROLE DE UM MOTOR DE CC E DE
MOTOR DE PASSO POR MEIO DA SERIAL

DESCRIO: Desenvolver um algoritmo que receba um

comando que controle a velocidade de um motor de CC e


comande tambm um motor de passo.

169

IFMG-Campus Formiga

26/08/2013

12-Projeto
Mdulo 1 Programando no Arduino

PROJETO 4

171

IFMG-Campus Formiga

26/08/2013

13-Hardware interno [3]


Mdulo 1 Programando no Arduino

Memrias

173

IFMG-Campus Formiga

26/08/2013

Memrias
O arduino UNO:
SRAM: 2kB
EEPROM: 1 kB
FLASH: 32 kB
SRAM

Mega2560
SRAM: 8kB
EEPROM: 4kB

FLASH

Processador

FLASH: 256 kB
EEPROM

174

IFMG-Campus Formiga

26/08/2013

Memrias
Fazer um algoritmo que grave um vetor de dados de

quantidade indeterminada (algo est sendo lido)

175

IFMG-Campus Formiga

26/08/2013

14-Mais sobre EEPROM


Mdulo 1 Programando no Arduino

Gravando e recuperando dados na


EEPROM

177

IFMG-Campus Formiga

26/08/2013

Gravando e recuperando dados de 8 e


de 16 bits na EEPROM
DESCRIO: Fazer um algoritmo que grave dados de 8 e de

16 bits na EEPROM.
Ver exemplo 9

178

IFMG-Campus Formiga

26/08/2013

15-Servomotor
Mdulo 1 Programando no Arduino

Servomotor

180

IFMG-Campus Formiga

26/08/2013

Servomotor
Alimentao: de 4,5 a 6V
Comando:
#include <Servo.h>
Servo servo1; // Cria um objeto servo
void setup() {
servo1.attach(5); // Anexa o servo (fsico), no pino 5, ao objeto servo
(lgico)
}

void loop() {
int angle = analogRead(0); // L o valor do potencimetro
angle=map(angle, 0, 1023, 0, 180); // Mapeia os valores de 0 a 180 graus
servo1.write(angle); // Escreve o ngulo para o servo
delay(15); // Espera de 15ms, para permitir que o servo atinja a posio

}
181

Arduino Mdulo 1

26/08/2013

Ver exemplo 10

182

Arduino Mdulo 1

26/08/2013

PROJETO 7
SEGUIDOR SOLAR COM ENVIO DE DADOS DE POSIO
PELA PORTA SERIAL

183

IFMG-Campus Formiga

26/08/2013

16-LCD

184

IFMG-Campus Formiga

26/08/2013

Liquid Crystal Display

185

Arduino Mdulo 1

26/08/2013

Pinos do LCD

186

Arduino Mdulo 1

26/08/2013

Conectando ao Arduino

187

Arduino Mdulo 1

26/08/2013

Ver exemplo 11

188

Arduino Mdulo 1

26/08/2013

17-Interrupes

189

IFMG-Campus Formiga

26/08/2013

Interrupes

190

IFMG-Campus Formiga

26/08/2013

Interrupo
Usada quando necessita monitorar constantemente eventos

de curta durao
A interrupo tem prioridade na execuo do programa
principal, parando-o para atender interrupo
Aps a execuo da interrupo, retoma-se o programa

191

Arduino Mdulo 1

26/08/2013

Pinos de interrupo

192

IFMG-Campus Formiga

26/08/2013

Esquema da Interrupo
Evento externo

loop()

Interrupo

Programa principal

193

Arduino Mdulo 1

26/08/2013

Ligao no Arduino

194

Arduino Mdulo 1

26/08/2013

Comando e parmetros

195

Arduino Mdulo 1

26/08/2013

Linha de tempo da interrupo

196

Arduino Mdulo 1

26/08/2013

Modos de operao

197

Arduino Mdulo 1

26/08/2013

Exemplo
Ver Exemplo 12

198

Arduino Mdulo 1

26/08/2013

Nota:

199

Arduino Mdulo 1

26/08/2013

PROJETO 8
VERIFICAO DE NVEL DE TENSO DA BATERIA COM
ENVIO DE DADOS PELA SERIAL

200

IFMG-Campus Formiga

26/08/2013

Projeto 8
100% - 12,72V

90% - 12,48V
80% 12,42V
70% - 12,30V

60% - 12,18V
50% - 12,06V
40% - 11,88V

30% - 11,76V
20% - 11,58V
10% - 11,34V
0% - 10,50V
201

IFMG-Campus Formiga

26/08/2013

17-Avaliao
Mdulo 1 Programando no Arduino

AVALIAO

203

IFMG-Campus Formiga

26/08/2013

Fim do curso Mdulo 1


Coordenador: Carlos Renato Borges dos Santos
Voluntrio:
Silas Martins Sousa

204

IFMG-Campus Formiga

26/08/2013