Arduino – Módulo 1

COORDENADOR:
Prof. Carlos Renato Borges dos Santos

Versão 3.0

ETAPAS DO CURSO COMPLETO
 Módulo 1 – Programando o Arduino
 16 horas

 Módulo 2 – Sistemas de Interface
 Mais de 20 horas

2

IFMG-Campus Formiga

26/08/2013

Contatos

carlos.renato@ifmg.edu.br

santoscrb@gmail.com
www.santoscrb.com

3

Arduino – Módulo 1

26/08/2013

Conteúdo programático
Módulo 1 – Programando o Arduino

4

IFMG-Campus Formiga

26/08/2013

Ao final do curso. a parte de potência será ministrada no módulo 2). IFMG-Campus Formiga 26/08/2013 . Conhecer alguns componentes eletrônicos. Desenvolver protocolos de comunicação sem verificações complexas dos dados. será capaz de:  Desenvolver aplicações básicas com o Arduino e pequenos       5 acionamentos. Entender o processo de interrupções. Gravar dados na memória não-volátil. motores de passo e motores de corrente contínua (apenas o controle. Controlar servomotores. Ler sinais de sensores que funcionam entre 0 e 5 V.

Conteúdo programático  Aula 1       O que é Arduino Tipos de Arduino A placa eletrônica Vantagens do Arduino Apresentação do programa Notas:  Avaliação: 40% da nota  Projetos: 60% da nota  Aula 2  Conceitos de bit.  Manipulação de dados de diversos tipos em C 6 IFMG-Campus Formiga 26/08/2013 . Word. Byte.  Tipos de variáveis do Arduino.

.  Declaração de variáveis e ponteiros  Condicionais:  If  While  For  Do ..Conteúdo programático  Aula 3  Revisão sobre programação em C.While  Switch  Struct  Union 7 IFMG-Campus Formiga 26/08/2013 .

 Verificação  Compilação  Pinos de IO  Exemplo Pisca-Pisca  Exemplo push button  Alimentação do Arduino  Cálculo de potência dos dispositivos  Dimensionamento de corrente de LEDs  Princípio de funcionamento de um motor de passo  PROJETO 1 – ACIONAMENTO DE LEDS ATRAVÉS DE PUSH-BUTTONS  PROJETO 2 – CONTROLE DE UM MOTOR DE PASSO EM 2 SENTIDOS 8 IFMG-Campus Formiga 26/08/2013 .Conteúdo programático  Aula 4  O IDE do Arduino.

Conteúdo programático  Aula 5  VERIFICAÇÃO DOS PROJETOS 1 E 2  Apresentação de vídeos e links interessantes  Aula 6  Conversão Analógico digital  Exercícios  Aula 7  PWM  Aula 8  PROJETO 3 – CONTROLE DE VELOCIDADE DE UM MOTOR CC ATRAVÉS DE UM POTENCIÔMETRO  PROJETO 4 – SEGUIDOR SOLAR 9 IFMG-Campus Formiga 26/08/2013 .

Conteúdo programático  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 10 IFMG-Campus Formiga 26/08/2013 .

Conteúdo programático  Aula 13  Memórias  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 POSIÇÃO PELA PORTA SERIAL  Aula 16  Avaliação do curso e avaliação teórica 11 IFMG-Campus Formiga 26/08/2013 .

Livros sobre Arduino 12 Arduino – Módulo 1 26/08/2013 .

Sistemas Digitais:      13 Princípios e Aplicações. Michael. Primeiros passos com o Arduino. Editora NovaTec. IFMG-Campus Formiga 26/08/2013 . 5. Editora Érica.cc  2.Site www. Widmer. Massimo.McRoberts. 4. Microcontroladores PIC Programação em C. Tocci e Neal S.com 8.Banz. 2nd edition 7-http://renatoaloi. Arduino básico.arduino.Fábio Pereira.  3.blogspot.Bibliografia  1.Ronald J.30 Arduino Projects for the evil genius 6.Arduino CookBook.

youtube.com/watch?v=fvsTzFnfgiI http://www.globo.youtube.com/watch?v=UUbdSjEvsdw http://www.youtube.com/watch?v=JWqFH0roIUI Arduino – Módulo 1 26/08/2013 .Motivações  http://globotv.com/watch?v=5XDXyJTNFu4 http://www.com/rede-globo/jornal-     14 nacional/v/alunos-do-engenharia-do-rio-vencem-maiorcampeonato-de-robotica-do-mundo/2547531/ http://www.youtube.

1-Apresentação Módulo 1 – Programando no Arduino .

O que é Arduino 16 IFMG-Campus Formiga 26/08/2013 .

O que é Arduino  É uma plataforma de prototipagem eletrônica de hardware livre. projetada com um microcontrolador Atmel AVR de placa única. com o intuito de interagir em projetos escolares. em 2005. uma linguagem de programação padrão. na qual é essencialmente C/C++. 17 IFMG-Campus Formiga 26/08/2013 .  O projeto iniciou-se na Itália. com suporte de entrada/saída embutido.

O que é Arduino

18

IFMG-Campus Formiga

26/08/2013

O que é Arduino
 O Arduino IDE é uma aplicação multiplataforma

escrita em Java. Inclui um editor de código,
compilador e carrega programas para a placa com
um único clique.
 Com isso não 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
//inicialização
}
 void loop()
{
 //Instruções repetidas
//infinitamente
}
20

Arduino – Módulo 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 eletrônica 25 IFMG-Campus Formiga 26/08/2013 .

A placa eletrônica 26 IFMG-Campus Formiga 26/08/2013 .

A placa eletrônica 27 IFMG-Campus Formiga 26/08/2013 .

Vantagens do Arduino 28 IFMG-Campus Formiga 26/08/2013 .

não sendo necessárias configurações complexas  Não precisa de alimentação externa  Preço. se comparado a um kit com microcontrolador PIC.  Ao sair do estado de protótipo deve-se fazer adequações 26/08/2013 . 8051 ou outro 29 IFMG-Campus Formiga Desvantagens  Não simula em computador (ainda não encontrei)  Nem todas as portas possuem um LED integrado à plataforma.Vantagens do Arduino Vantagens  Alimentação: Pode ser alimentado pela USB  Total compatibilidade entre o IDE e a placa.

00 26/08/2013 .Kit PIC Kit PIC  Alimentação externa     30 IFMG-Campus Formiga (127/220V) Não inclui compilador (MikroC. CCS) Não inclui simulador (Proteus) Utiliza MPLAB Preço: R$ 600.

Comparação
Arduino

PIC / 8051

 Abrir software Arduino

 Selecionar o Arduino

 Abrir arquivo
 Cabo USB
 Plugar o Arduino
 Compilar








31

IFMG-Campus Formiga

Abrir software de edição em C
Criar uma pasta e nomear o projeto
Configurar fusíveis
Abrir biblioteca de exemplos, copiar
exemplo
Configurar registradores dos periféricos
Certificar se é o PIC, ex: 18F4550
Kit + Fonte de alimentação + cabo USB +
gravador + cabo RJ
Compilar
Abrir o MPLAB para gravação
Encontrar o arquivo .HEX
Clicar em Play

26/08/2013

Apresentação do programa
 Notas:
 50% - avaliação escrita
 50% - projetos

32

IFMG-Campus Formiga

26/08/2013

2-Conceitos básicas
Módulo 1 – Programando no Arduino

PARTE 1 – Noções de software
 Conceitos de bit, Byte, Word.

 Códigos ASCII, Binário, BCD, Hexadecimal.
 Revisão sobre programação em C.
 Tipos de variáveis.
 O IDE do Arduino.

34

IFMG-Campus Formiga

26/08/2013

Byte e Word 35 IFMG-Campus Formiga 26/08/2013 .Conceitos de bit.

Usado para armazenar valores de 0 a 255 (sem sinal) ou de -128 a +127 (com sinal)  Word – É um conjunto de 16 bits.  Byte – É um conjunto de 8 bits.Conceitos de bit. byte e word  Bit – É um registrador ou variável que armazena o valor 0 ou 1. Armazena valores de 0 a 65535 ou -32768 a 32767 36 IFMG-Campus Formiga 26/08/2013 . Uma variável do tipo bit é usada para testes lógicos dos tipos: verdadeiro ou falso.

Sistemas de codificação 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 – binário .decimal 40 IFMG-Campus Formiga 26/08/2013 .

Codificação BCD RTC DS1307 Usa codificação BCD 41 IFMG-Campus Formiga 26/08/2013 .

Sistemas de codificação 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) -> 42 IFMG-Campus Formiga 26/08/2013 .

Sistemas de codificação Exercício 2  Dados os bits. o que eles representariam se estivessem em: ASCII. BCD e decimal: (  A) 10010100 ->  B) 01010101 ->  C) 11110000 ->  D) 10110111 ->  E) 00111010 ->  F) 1101010110101001 -> 43 IFMG-Campus Formiga 26/08/2013 . hexadecimal.

Sistemas de codificação Exercício 3  O RTC 1307 armazena a seguinte data: 26/12/13. Como serão preenchidos os seguintes registradores: dia. mês. ano? 44 Arduino – Módulo 1 26/08/2013 .

Tipos de variáveis do Arduino 45 IFMG-Campus Formiga 26/08/2013 .

4028235E+38 a     3.cc/en/Refer ence/HomePage 26/08/2013 .Tipos de variáveis do Arduino boolean char (-128 a 127) unsigned char (0 a 255) byte (0 a 255) int (-32.483.967.767) unsigned int (0 a 65535) word (0 a 65535) long [32 bits (4 bytes).647]  unsigned long (0 a 4.147.648 a 2.483.147.294.4028235E+38 stored as 32 bits) Double (On the Arduino Due.char array string . doubles have 8-byte (64 bit) precision) string .object array  http://arduino.768 a 32. de 2.295)         46 IFMG-Campus Formiga  Float (-3.

Manipulação de dados de diversos tipos em C 47 IFMG-Campus Formiga 26/08/2013 .

isso poupará memória e aumentará a velocidade de cálculo.  Prefira usar variáveis inteiras de 8 e 16 bits. evite usar variáveis longas. evitando variáveis com ponto flutuante. 48 IFMG-Campus Formiga 26/08/2013 .Manipulação de dados de diversos tipos em C Dicas sobre o uso de variáveis  Como o processador é de 8 bits.

Manipulação de dados de diversos tipos em C char Sinal (+) 0 (-) 1 unsigned char 49 IFMG-Campus Formiga 26/08/2013 .

Manipulação de dados de diversos tipos em C 50 IFMG-Campus Formiga 26/08/2013 .

Manipulação de dados de diversos tipos em C Registrador A (8 bits) 98 + 78 ---- Carry (operação anterior) Carry (1 bit) ULA Resultado (8 bits) Registrador B ( 8 bits) 51 IFMG-Campus Formiga 26/08/2013 .

......Arduino?  Byte = bit .....Arduino?  Bit = word . Arduino: recebe o valor 52 IFMG-Campus Formiga 26/08/2013 ..Arduino: recebe-se o byte menos significativo  word = bit . Arduino: recebe 0 ou 1  word = byte ............Manipulação de dados de diversos tipos em C  O que acontece com os valores armazenados quando:  Bit = byte ..Arduino: recebe 0 ou 1  Byte = word .........

// z recebe 10b (2 decimal) 53 Arduino – Módulo 1 26/08/2013 .Valores em decimal. hexa e binário  X = 0x10. // y recebe 10 decimal  Z = 0b10. // x recebe o valor 10h (16 decimal)  Y = 10.

//x=208  y = 400.Operações com variáveis  Calcule o resultado das variáveis após as seguintes operações:  unsigned int calc = 2000. //y=144  z = x + y. z.  unsigned char x. y. //z = 96  Ver Exemplo1 54 Arduino – Módulo 1 26/08/2013 .  x = calc.

i++)  {  x[i] = 2*i+1.  }  ponteiro = &x[0].  ponteiro ++.  unsigned int *ponteiro.Ponteiros  unsigned int x[5].  (*ponteiro)++.  for(char i = 0.i<5.  Ver Exemplo2 55 Arduino – Módulo 1 26/08/2013 .

3-Programação em C Módulo 1 – Programando no Arduino .

Revisão sobre programação em C 57 IFMG-Campus Formiga 26/08/2013 .

Revisão sobre programação em C  if( teste_condicional )  {  //Caso passe no teste_condicional  }  else  {  //Caso não passe no teste_condicional  } 58 IFMG-Campus Formiga 26/08/2013 .

Revisão sobre programação em C  while( teste_condicional )  {  //expressão  } 59 IFMG-Campus Formiga 26/08/2013 .

incremento )  {  //expressão  } 60 IFMG-Campus Formiga 26/08/2013 .Revisão sobre programação em C  for( inicialização . teste_condicional .

Revisão sobre programação em C  do  {  //expressão  } while ( teste_condicional ) 61 IFMG-Campus Formiga 26/08/2013 .

 case valor2:  break.Revisão sobre programação em C  switch(variavel)  {  case valor1:  break.  case valor3:  break.  default:  //Caso não tenha encontrado um case  } 62 IFMG-Campus Formiga 26/08/2013 .

matricula[0] = ‘1’.  //Var2..var1 = valor1.  } 63 IFMG-Campus Formiga 26/08/2013 . char nome[16]. ..Revisão sobre programação em C  typedef struct  {  Typedef struct  {  //Declaração de variáveis  //var1.. Tipo variavel. ..         int chave.. Variavel.i<40..var2 = valor2.       } Tipo. }Taluno. . variavel. Taluno turma1[40].i++){  Turma1[i]... char matricula[6]. For(char i=0. char senha[4].  .

.  //Declara_variáveis_meno res.  .x = 0xABCD.Revisão sobre programação em C  typedef union  typedef union  {  {  //Declara_variável_maior  int x.y[0] = ? 64 IFMG-Campus Formiga 26/08/2013 .  valor.  char y[2]..  } Tipo. .  valor.  Tint16 valor.  }Tint16.

4-O Arduino Módulo 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 .

0.5 (até o início do curso)  Escolher o Arduino  Exemplos de programas  Conexão automática  Verificação de sintaxe  Compilação  Gravação 69 IFMG-Campus Formiga 26/08/2013 .O IDE do Arduino  Última versão: 1.

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

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

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 saídas PWM que podem ser configuradas como entradas digitais  4 terminais de comunicação serial USART + 1 I2C  Pinos 22 a 53 de IO digital  16 entradas analógicas (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 programação 81 IFMG-Campus Formiga 26/08/2013 .

Exemplos de programação: Pisca-pisca 82 IFMG-Campus Formiga 26/08/2013 .

int e float 83 IFMG-Campus Formiga 26/08/2013 .Exemplos  Pasta Laboratorios  Exemplo 1 – operações entre diversos tipos  Exemplo 2 – Ponteiros  Exemplo 3 – Variáveis char.

Pinos de I/O  Entrada de dados  Definir como entrada  pinMode(pino.  Saída de dados  Definir como saída  pinMode(pino.INPUT).OUTPUT).  x = digitalRead(pino). 84 Arduino – Módulo 1 26/08/2013 .  Escrever o dado  digitalWrite(pino.  digitalWrite(pino.  Leitura  boolean x.LOW).HIGH).

Exemplo de leitura/escrita 85 Arduino – Módulo 1 26/08/2013 .

Push-Button: Normalmente: 1 Apertando: 0 86 IFMG-Campus Formiga Normalmente: 0 Apertando: 1 26/08/2013 .

Push-Button Saída Normalmente 1 Apertando: 0 87 Arduino – Módulo 1 Saída Normalemente 0 Apertando: 1 26/08/2013 .

Latch 88 Arduino – Módulo 1 26/08/2013 .

 Veja exemplo a seguir. 89 IFMG-Campus Formiga 26/08/2013 .Exemplos de programação: push button  Cada pino deverá ser configurado como entrada.  Para ler o sinal do pino. deverá ser através de um comando.

Exemplo de leitura digital 90 IFMG-Campus Formiga 26/08/2013 .

Alimentação do Arduino 91 IFMG-Campus Formiga 26/08/2013 .

92 IFMG-Campus Formiga 26/08/2013 .Alimentação do Arduino  Pode-se alimentá-lo através da porta USB  Possui alimentação externa.

Alimentação do Arduino 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)  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 .

Código de cores de resistores 94 Arduino – Módulo 1 26/08/2013 .

LED 95 Arduino – Módulo 1 26/08/2013 .

Alimentação de um LED 96 Arduino – Módulo 1 26/08/2013 .

Alimentação 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 tensão é da
ordem de 1,2V. Logo, o resistor que deve ser ligado em série:

 Caso de alimentação USB: R = (5 – 1,2)/5m = 760 Ohms
 No caso, é mais prudente arredondar a resistência 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

Alimentação Externa

(-)

(+)
Ideal: 7 a 12V
99

Arduino – Módulo 1

26/08/2013

PROJETO 1

100

IFMG-Campus Formiga

26/08/2013

Não se esqueça de inserir um delay após ler o estado do push-button. 101 IFMG-Campus Formiga 26/08/2013 .ACIONAMENTO DE LEDS ATRAVÉS DE PUSH-BUTTONS  DESCRIÇÃO: O projeto deverá acionar um LED que represente um motor de CC. Ao acionar a chave. O acionamento se dará por push-button. o programa deverá verificar o estado do LED e mudá-lo.  Aproveite os outros pinos de I/O e use a criatividade para acionar mais de um LED.  Outros dois botões poderão ser usados para regular o tempo de acionamento do LED.

PROJETO 2 102 IFMG-Campus Formiga 26/08/2013 .

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. funções.CONTROLE DE UM MOTOR DE PASSO EM 2 SENTIDOS  DESCRIÇÃO: Elaborar subrotinas que leiam 2 push-buttons.  Tente usar void. 103 IFMG-Campus Formiga 26/08/2013 . struct para deixar o código mais elegante e organizado  Insira comentários sempre que possível para explicar as etapas do código. variáveis.

 Lógica de programação.Aplicação: Motor de passo  Princípio de funcionamento. 104 IFMG-Campus Formiga 26/08/2013 .

5-Consulta sobre os projetos Módulo 1 – Programando no Arduino .

Verificação dos projetos 1 e 2 106 IFMG-Campus Formiga 26/08/2013 .

arduino.wordpress.com 107 IFMG-Campus Formiga 26/08/2013 .blogspot.cc  http://renatoaloi.Vídeos e links interessantes  Vídeo 1  Vídeo 2  Vídeo 3  Vídeo 4  Vídeo 5  Vídeo 6  Vídeo 7  http://uriedubot.com/author/uriedubot/  www.

6-Hardware interno [1] Módulo 1 – Programando no Arduino .

Conversão analógico-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 .

Conversão analógico-digital (ADC) 114 IFMG-Campus Formiga 26/08/2013 .

Conversão analógico-digital (ADC) 115 IFMG-Campus Formiga 26/08/2013 .

Conversor DA 116 Arduino – Módulo 1 26/08/2013 .

 Os valores lidos pelo ADC podem variar de 0 a 1023. 117 IFMG-Campus Formiga 26/08/2013 .Conversão analógico-digital (ADC)  É uma função que retorna um valor de 10 bits.  Precisa de um comando específico.  Lembre-se que a execução desse comando necessita de um pequeno intervalo de tempo (de micro a milissegundos).

Conversão analógico-digital (ADC)  Sensor de precisão:  Variavel (16 bits) = analogRead(Canal)  Sensor de baixa precisão 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 .

eletrica.br/doc/regulamentoIITUR.netai.net/projeto-003-robo- arduino-seguidor-de-linha/  http://www.utfpr.tur.ufu.edu.pdf  http://www.br/msergio/Monog-09-2Seguidor-de-linha.pessoal.Links interessantes  http://www.pd f 121 Arduino – Módulo 1 26/08/2013 .sucatapontotec.

Cuidado!  Nunca ligue diretamente algum dispositivo no canal AD que tenha alguma possibilidade de atingir valores acima de 5V 122 Arduino – Módulo 1 26/08/2013 .

7-Hardware interno [2] Módulo 1 – Programando no Arduino .

PWM (conversão digital-analógico) 124 IFMG-Campus Formiga 26/08/2013 .

 Servomotores. encontram-se:  Controle de velocidade de motor DC. 125 IFMG-Campus Formiga 26/08/2013 .  Controle de iluminação.PWM  Usado para controle de tensão por chaveamento em alta frequência.  Dentre sua utilização.

PWM 126 IFMG-Campus Formiga 26/08/2013 .

 Porta: configurada como saída. 127 IFMG-Campus Formiga 26/08/2013 . variável).PWM  analogWrite(Porta.  Variável: Valor 8 bits sem sinal (0 a 255).

PWM 128 IFMG-Campus Formiga 26/08/2013 .

println(x).  Void loop()  Serial.write(‘a’).  Serial.print(“Texto”).  Serial.  Serial.Serial – Parte 1  Comandos básicos:  Void setup()  Serial.write(x).  Serial.//x tipo char 129 Arduino – Módulo 1 26/08/2013 .begin(9600).print(x).

8-Projetos Módulo 1 – Programando no Arduino .

PROJETO 3 131 IFMG-Campus Formiga 26/08/2013 .

Potenciômetro 132 Arduino – Módulo 1 26/08/2013 .

 B) DESCRIÇÃO: Elaborar um algoritmo que leia um canal AD e varie lentamente o sinal PWM até atingir o valor configurado. é necessário comparar o sinal lido no AD com o sinal do PWM. Para isso.CONTROLE DE UM MOTOR CC ATRAVÉS DE UM POTENCIÔMETRO  A) DESCRIÇÃO: Elaborar um algoritmo que leia um canal AD e envie o sinal lido para o PWM. 133 IFMG-Campus Formiga 26/08/2013 .

PROJETO 4 134 IFMG-Campus Formiga 26/08/2013 .

LDR 135 Arduino – Módulo 1 26/08/2013 .

quando terminar. 136 Arduino – Módulo 1 26/08/2013 . ir em direção ao ponto de maior intensidade.  O circuito deverá “varrer” um raio de 180 graus. armazenar o ângulo de maior intensidade luminosa e.PROJETO DE UM SEGUIDOR SOLAR  Construir um seguidor solar guiado por motor de passo e LDR.

9-Noções sobre a Serial Módulo 1 – Programando no Arduino .

Comunicação serial 138 IFMG-Campus Formiga 26/08/2013 .

Comunicação serial  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) 139 IFMG-Campus Formiga 26/08/2013 .

Comunicação serial 140 IFMG-Campus Formiga 26/08/2013 .

141 Arduino – Módulo 1 26/08/2013 .

142 Arduino – Módulo 1 26/08/2013 .

143 Arduino – Módulo 1 26/08/2013 .

Comunicação serial 144 IFMG-Campus Formiga 26/08/2013 .

145 Arduino – Módulo 1 26/08/2013 .

146 Arduino – Módulo 1 26/08/2013 .

147 Arduino – Módulo 1 26/08/2013 .

148 Arduino – Módulo 1 26/08/2013 .

149 Arduino – Módulo 1 26/08/2013 .

150 Arduino – Módulo 1 26/08/2013 .

151 Arduino – Módulo 1 26/08/2013 .

152 Arduino – Módulo 1 26/08/2013 .

153 Arduino – Módulo 1 26/08/2013 .

154 Arduino – Módulo 1 26/08/2013 .

155 Arduino – Módulo 1 26/08/2013 .Padrão TTL  1 – – – – – – ( 5V )  0 – – – – – – ( 0V )  A IDE do Arduino cria uma COM virtual a partir de uma porta USB.

Padrão TTL 156 Arduino – Módulo 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 – Módulo 1 26/08/2013 .

RS 232 26/08/2013 .RS 232 159 Arduino – Módulo 1 Conversor TTL .RS 232 RS 232 .

Interface serial RS232 160 IFMG-Campus Formiga 26/08/2013 .

baud rate 161 Arduino – Módulo 1 26/08/2013 .

read().Comunicação serial Comandos básicos:  Serial.  Serial.  Serial.available().  Serial.begin(taxa_de_transimissao). 162 IFMG-Campus Formiga 26/08/2013 .write(byte).

Comunicação serial Ver exemplo 6 163 IFMG-Campus Formiga 26/08/2013 .

10-Protocolos de comunicação Módulo 1 – Programando no Arduino .

Desenvolvimento de protocolos de comunicação 165 IFMG-Campus Formiga 26/08/2013 .

 Ver exemplo 7 166 IFMG-Campus Formiga 26/08/2013 .

11-Projeto Módulo 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  DESCRIÇÃO: Desenvolver um algoritmo que receba um comando que controle a velocidade de um motor de CC e comande também um motor de passo. 169 IFMG-Campus Formiga 26/08/2013 .

12-Projeto Módulo 1 – Programando no Arduino .

PROJETO 4 171 IFMG-Campus Formiga 26/08/2013 .

13-Hardware interno [3] Módulo 1 – Programando no Arduino .

Memórias 173 IFMG-Campus Formiga 26/08/2013 .

Memórias  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 .

Memórias  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 Módulo 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  DESCRIÇÃO: 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 Módulo 1 – Programando no Arduino .

Servomotor 180 IFMG-Campus Formiga 26/08/2013 .

// Anexa o servo (físico).5 a 6V Comando: #include <Servo. // Mapeia os valores de 0 a 180 graus servo1. // Escreve o ângulo para o servo delay(15). // Espera de 15ms.Servomotor Alimentação: de 4.write(angle). // Lê o valor do potenciômetro angle=map(angle. 0.h> Servo servo1. // Cria um objeto servo void setup() { servo1. para permitir que o servo atinja a posição  } 181 Arduino – Módulo 1 26/08/2013 . 1023. ao objeto servo (lógico)  }            void loop() { int angle = analogRead(0).attach(5). no pino 5. 0. 180).

 Ver exemplo 10 182 Arduino – Módulo 1 26/08/2013 .

PROJETO 7 SEGUIDOR SOLAR COM ENVIO DE DADOS DE POSIÇÃO PELA PORTA SERIAL 183 IFMG-Campus Formiga 26/08/2013 .

16-LCD 184 IFMG-Campus Formiga 26/08/2013 .

Liquid Crystal Display 185 Arduino – Módulo 1 26/08/2013 .

Pinos do LCD 186 Arduino – Módulo 1 26/08/2013 .

Conectando ao Arduino 187 Arduino – Módulo 1 26/08/2013 .

 Ver exemplo 11 188 Arduino – Módulo 1 26/08/2013 .

17-Interrupções 189 IFMG-Campus Formiga 26/08/2013 .

Interrupções 190 IFMG-Campus Formiga 26/08/2013 .

parando-o para atender à interrupção  Após a execução da interrupção.Interrupção  Usada quando necessita monitorar constantemente eventos de curta duração  A interrupção tem prioridade na execução do programa principal. retoma-se o programa 191 Arduino – Módulo 1 26/08/2013 .

Pinos de interrupção 192 IFMG-Campus Formiga 26/08/2013 .

Esquema da Interrupção Evento externo loop() Interrupção Programa principal 193 Arduino – Módulo 1 26/08/2013 .

Ligação no Arduino 194 Arduino – Módulo 1 26/08/2013 .

Comando e parâmetros 195 Arduino – Módulo 1 26/08/2013 .

Linha de tempo da interrupção 196 Arduino – Módulo 1 26/08/2013 .

Modos de operação 197 Arduino – Módulo 1 26/08/2013 .

Exemplo  Ver Exemplo 12 198 Arduino – Módulo 1 26/08/2013 .

Nota: 199 Arduino – Módulo 1 26/08/2013 .

PROJETO 8 VERIFICAÇÃO DE NÍVEL DE TENSÃO DA BATERIA COM ENVIO DE DADOS PELA SERIAL 200 IFMG-Campus Formiga 26/08/2013 .

12.12.Projeto 8  100% .10.11.48V  80% 12.12.11.30V  60% .88V  30% .76V  20% .50V 201 IFMG-Campus Formiga 26/08/2013 .06V  40% .58V  10% .42V  70% .12.12.11.72V  90% .18V  50% .11.34V  0% .

17-Avaliação Módulo 1 – Programando no Arduino .

AVALIAÇÃO 203 IFMG-Campus Formiga 26/08/2013 .

Fim do curso – Módulo 1 Coordenador: Carlos Renato Borges dos Santos Voluntário: Silas Martins Sousa 204 IFMG-Campus Formiga 26/08/2013 .