Curso de arduino

1,466 views
1,174 views

Published on

Curso de Arduino

Published in: Engineering
0 Comments
7 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total views
1,466
On SlideShare
0
From Embeds
0
Number of Embeds
5
Actions
Shares
0
Downloads
124
Comments
0
Likes
7
Embeds 0
No embeds

No notes for slide

Curso de arduino

  1. 1. Curso de Básico Arduino! Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  2. 2. Aula 1: Introdução ao Arduino e Portas Digitais Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  3. 3. Quem sou eu? Wellington Cássio Faria Formação: Curso técnico – Médio (2o grau) Técnico em Eletrônica Industrial, CEP - Centro de Educação Profissional Tancredo Neves (julho/2010) - concluída. Graduação Engenharia da Computação, Inatel (junho/2015) - cursando. Atividades: Bolsista de Iniciação Científica Conversão de sistemas de medição analógicos para digitais na Agrometereologia utilizando plataforma Arduino. Monitor Voluntário Cas@viva - Arduino Natural : Paraisópolis - MG
  4. 4. O que é ARDUINO? É uma plataforma de prototipagem eletrônica de hardware livre, projetada com um microcontrolador Atmel AVR de placa única, com suporte de entrada / saída embutido, uma linguagem de programação padrão, a qual tem origem em Wiring, e é essencialmente C/C++. O objetivo do projeto é criar ferramentas que são acessíveis, com baixo custo, flexíveis e fáceis. Principalmente para aqueles que não teriam alcance aos controladores mais sofisticados e de ferramentas mais complicadas. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  5. 5. O que que quer dizer open-source? As placas podem ser construídas à mão ou comprado pré-montado, o software (IDE) pode ser baixado gratuitamente. Os projetos de hardware de referência (arquivos de CAD) estão disponíveis sob uma licença de código aberto, você é livre para adaptá-los às suas necessidades . Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  6. 6. O que é ARDUINO? Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  7. 7. Hardware do ARDUINO UNO Portas Digitais 0 à 13 PWM: 3, 5, 6, 9, 10, e 11 ( ~ ) Comunicação Serial: 1 e 0 (TX e RX) Portas Analógicas 0 à 5Alimentação Externa USB Barramento de Extensão Microcontrolador ATmega328 Botão para Reiniciar Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  8. 8. Programação do Arduino Programação do Arduino pode ser dividido em três partes principais: estruturas, valores (variáveis ​​e constantes) e funções. A linguagem tem origem em Wiring, e é essencialm ente C/C++ Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  9. 9. PIC assembly X PIC em C X Arduino Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  10. 10. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  11. 11. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  12. 12. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  13. 13. PIC assembly X PIC em C X Arduino Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  14. 14. Shields do Arduino: Shields são placas que podem ser conectados em cima do Arduino estendendo as suas capacidades. Os diferentes shields seguem a mesma filosofia que do Arduino: eles são baratos de produzir e fáceis de montar e programar. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  15. 15. Arduino Ethernet Shield O Shield permite que Arduino conecte-se à internet. Existe uma entrada de cartão micro-SD , que pode ser usado para armazenar arquivos para disponibilizar na web. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  16. 16. Arduino WiFi Shield O Shield permite que que Arduino conecte-se à internet usando o WiFi. O Shield WiFi pode se conectar a redes sem fio que operam de acordo com as especificações 802.11be 802.11g. Há uma entrada de cartão micro-SD , que pode ser usado para armazenar dados que podem serem transmitidos via WiFi. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  17. 17. Arduino Wireless SD Shield O Shield permite que uma que Arduino para comunicar sem fios com um módulo sem fios(RF). Ele baseia-se nos módulos Xbee produzidos pela Digi. Há um slot para cartão SD. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  18. 18. Shield Arduino GSM Shield O shield conecta o Arduino à internet usando a rede GPRS sem fio. Você também pode fazer / receber chamadas de voz (você vai precisar de um alto-falante externo e circuito de microfone) e enviar / receber mensagens SMS. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  19. 19. Arduino Motor Shield O shield permite que você controle dois motores DC com sua placa Arduino, controlando a velocidade , a direção de cada um de forma independente. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  20. 20. MP3 Player Shield O MP3 Player Shield tem a impressionante capacidade de decodificação de MP3 e a funcionalidade de armazenamento do cartão SD. Agora você pode puxar arquivos MP3 a partir de um cartão SD e reproduzi-los usando apenas este shield, efetivamente transformando todo o Arduino em um completo MP3 Player! O Shield de MP3ainda utiliza o decodificador de áudio MP3 VS1053B IC para decodificar os arquivos de áudio. O VS1053 também é capaz de decodificar áudio Ogg Vorbis/MP3/AAC/WMA/MIDI e codificação IMA ADPCM. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  21. 21. LCD Shield O LCD Shield Color, fornece uma forma fácil de conectar o popular Nokia 6100 LCD no Arduino. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  22. 22. Shield EasyVR The Shield EasyVR é um shield de reconhecimento de voz para placas Arduino integrando um módulo EasyVR. Ele inclui todas as funcionalidades do módulo EasyVR que simplifica a conexão à placa Arduino e PC. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  23. 23. Sensores Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  24. 24. Sensores Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  25. 25. Sensores Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  26. 26. Livros Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  27. 27. Site Oficial www.arduino.cc Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  28. 28. #MãoNaMassa! Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  29. 29. #MãoNaMassa! O setup() é função para configurações inicias. Use-se: • Inicializar variáveis. • Configuração de pino (entrada ou saída) É executada apenas uma vez, após cada reinicialização da placa Arduino. o loop() faz exatamente o que seu nome sugere, e laços infinito. O Código no loop() ativamente “seu programa” a placa Arduino. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  30. 30. Portas Digitais 0 à 13 PWM: 3, 5, 6, 9, 10, e 11 ( ~ ) Comunicação Serial: 1 e 0 (TX e RX) Funções para portas Digitais Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  31. 31. pinMode( ) Sintaxe: pinMode (pino, modo) Parâmetros: pino: o número do pin cujo modo que você deseja definir modo: INPUT (Entrada) OUTPUT (Saída) INPUT_PULLUP (Entrada com PULL-UP) Retorno: Nenhum Configura o pino especificado como uma entrada ou saída. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  32. 32. pinMode( ) Configuração de Portas Digitais: pinMode (pino, modo) modo: INPUT (Entrada) OUTPUT(Saída) INPUT_PULLUP (Entrada com PULLUP interno, essa opção não é necessário o circuito PULLUP externo podendo assim ser ligado diretamente no GND. *Não se utiliza para entradas analógicas. Quando pressionado “envia” 0 volts(GND) (LOW) para porta. Quando pressionado “envia” 5 volts (HIGH) para porta. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  33. 33. digitalWrite() Sintaxe: digitalWrite (pino, valor) Parâmetros: pino: o número do pino valor: HIGH (ALTO ) ou LOW (BAIXO) Retorno: Nenhum Escreve uma valor ALTO ou valor BAIXO para um pino digital configurado como SAÍDA. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  34. 34. digitalRead() Sintaxe digitalRead (pino) Parâmetros pino: o número do pino digital que você quer ler configurado como ENTRADA Retorno: HIGH ou LOW Lê o valor de um pino digital especificado, ALTO ou BAIXO definido como ENTRADA. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  35. 35. Exercício Portas Digitais 1- Faça um programa que faça o LED1 da placa (pino 13) piscar de 1 em 1 segundo. Ligue um outro LED2 no pino 4 da porta digital e toda vez que o botão(PULL-UP Interno pino 3) for precisado o LED2 deve ligar, caso contrario o LED2 deve ficar apagado. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  36. 36. Exercício Portas Digitais 2- Faça um programa que se botão(D2) estiver pressionado pisque 3 LED (D4,D5,D6) cada um de cada vez da direita para esquerda no intervalo de 1 segundo. Se o botão não tiver pressionado pisque 3 LED (D4,D5,D6) cada um de cada vez da esquerda para direita no intervalo de 1 segundo. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  37. 37. Aula 2: Portas Analógicas, Comunicação Serial e LCD Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  38. 38. Funções para portas Analógicas Portas Analógicas 0 à 5 PWM: 3, 5, 6, 9, 10, e 11 ( ~ ) Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  39. 39. analogReference( ) Configura a tensão de referência utilizada para a entrada analógica (SETUP) As opções são: • DEFAULT: a referência analógica padrão de 5 volts • INTERNAL: referência igual a 1,1 volts(ATmega168 ou ATmega328) • INTERNAL1V1: referência 1.1V referência (apenas Arduino Mega) • INTERNAL2V56: referência 2.56V (apenas Arduino Mega) • EXTERNAL: referência de tensão aplicada ao pino AREF (0 a 5V ) Sintaxe: analogReference(tipo) Parâmetro: tipo: DEFAULT, INTERNO, INTERNAL1V1, INTERNAL2V56 ou EXTERNAL. Retorno: Nenhum TensãodeReferência Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  40. 40. analogRead( ) Lê o valor do pino analógico especificado. Mapeia tensões de entrada entre 0 e tensão de referência em valores inteiros entre 0 e 1023 Sintaxe: analogRead (pino) Parâmetros: pino: o número do pino de entrada analógica. Retorno: Número inteiro de 0 a 1023 Convertendo Retorno em Tensão: 𝑇𝑒𝑛𝑠ã𝑜 = 𝑅𝑒𝑡𝑜𝑟𝑛𝑜 𝑥 𝑇𝑒𝑛𝑠ã𝑜 𝑑𝑒 𝑅𝑒𝑓ê𝑟𝑒𝑛𝑐𝑖𝑎 1024 Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  41. 41. analogWrite( ) Escreve um valor tensão no pino especificado PWM. Sintaxe: analogWrite(pino, valor) Parâmetros: pino: Número do pino . Valor : Entre 0 (0 Volts/ 0% Duty) a 255 (5 Volts/100% Duty). Returno: Nenhum 𝑇𝑒𝑛𝑠ã𝑜 𝑛𝑜 𝑃𝑖𝑛𝑜 = 5 𝑥 𝑣𝑎𝑙𝑜𝑟 255 Arduino Uno: PWM: 3, 5, 6, 9, 10, e 11 ( ~ ) Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  42. 42. Funções para Comunicação Serial Comunicação Serial: 1 e 0 (TX e RX) Usado para a comunicação entre a placa Arduino e um computador ou outros dispositivos. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  43. 43. Serial.begin( ) Define a taxa de dados em bits por segundo (Banda) para a transmissão de dados serial . Sintaxe: Serial.begin (velocidade) Parâmetros: Velocidade: em bits por segundo (banda) Retorno: Nenhum Para se comunicar com o computador, use uma dessas taxas: 300, 600, 1200, 2400, 4800, 9600, 14400, 19200, 28800, 38400, 57600 ou 115200. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  44. 44. Serial.print( ) Imprime/Envia dados para a porta serial/computador. Sintaxe: Serial.print (val) Parâmetros: val: o valor para imprimir - qualquer tipo de dados millis (): Retorna o número de milissegundos desde que o Arduino começou a executar o programa atual. delay(): Pausa o programa para a quantidade de tempo (em milissegundos) especificado como parâmetro. (1000 milissegundos são um segundo.) Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  45. 45. Serial.read( ) / Serial.available( ) Lê os dados de entrada Serial. Sintaxe: Serial.read () Parâmetros: Nenhum Retorna: Um numero inteiro referente a tabela ASCII. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  46. 46. Tabela ASCII Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br
  47. 47. Exercício 1- Faça um programa que leia o sensor LM35 utilizando a porta analógica 0, e envia esse dado para computador de 1 em 1 segundo em ºC. Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br O sensor LM35 é um sensor de precisão, fabricado pela National Semiconductor ,que apresenta uma saída de tensão linear relativa à temperatura em que ele se encontrar no momento em que for alimentado por uma tensão de 4-20Vdc e GND, tendo em sua saída um sinal de 10mV para cada Grau Celsius de temperatura.
  48. 48. LiquidCrystal Biblioteca Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br Esta biblioteca permite que uma placa Arduino possa controlar um LCD baseado no Hitachi HD44780
  49. 49. LiquidCrystal Biblioteca Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br LiquidCrystal () Cria uma variável do tipo LiquidCrystal. Sintaxe: LiquidCrystal “NOME” (rs, enable,D4, D5,D6,D7) begin () Especifica as dimensões (largura e altura) do display. Sintaxe: lcd.begin (colunas, linhas) Parâmetros: lcd: uma variável do tipo LiquidCrystal colunas: o número de colunas do LCD linhas: o número de linhas do LCD
  50. 50. LiquidCrystal Biblioteca Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br print () Imprime texto ao LCD. Sintaxe: lcd.print (dados) Parâmetro: lcd: uma variável do tipo LiquidCrystal dados: os dados para imprimir (char, byte, int, long, ou string)
  51. 51. LiquidCrystal Biblioteca Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br setCursor () Posicione o cursor LCD, isto é, definir o local em que o texto subseqüente é escrito no LCD. Sintaxe: lcd.setCursor (coluna, linha) Parâmetros: lcd: uma variável do tipo LiquidCrystal coluna: a coluna na qual se posiciona o cursor (sendo 0 a primeira coluna) linha: a linha em que a posição do cursor (sendo 0 a primeira linha)
  52. 52. Exercício Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br 2- Faça um programa que imprima na Primeira linha o seu primeiro nome e na segunda linha o primeiro nome do seu parceiro de bancada. 4- Entre em file/exemples/LiquidCrystal/Scroll e rode o programa.
  53. 53. FIM Ministrado por: Wellington Cássio Faria Contato: wellingtonf@gec.inatel.br www.facebook.com/engenheiromaonamassa

×