Curso de arduino

53
Curso de Básico Arduino! Ministrado por: Wellington Cássio Faria Contato: [email protected]

description

Curso de Arduino

Transcript of Curso de arduino

Page 1: Curso de arduino

Curso de Básico Arduino!

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 2: Curso de arduino

Aula 1: Introdução ao Arduino e Portas Digitais

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 3: Curso de arduino

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

Page 4: Curso de arduino

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: [email protected]

Page 5: Curso de arduino

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: [email protected]

Page 6: Curso de arduino

O que é ARDUINO?

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 7: Curso de arduino

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 à 5 Alimentação Externa

USB

Barramento de Extensão

Microcontrolador ATmega328

Botão para Reiniciar

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 8: Curso de arduino

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 é essencialmente C/C++

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 9: Curso de arduino

PIC assembly X PIC em C X Arduino

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 10: Curso de arduino

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 11: Curso de arduino

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 12: Curso de arduino

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 13: Curso de arduino

PIC assembly X PIC em C X Arduino

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 14: Curso de arduino

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: [email protected]

Page 15: Curso de arduino

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: [email protected]

Page 16: Curso de arduino

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: [email protected]

Page 17: Curso de arduino

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: [email protected]

Page 18: Curso de arduino

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: [email protected]

Page 19: Curso de arduino

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: [email protected]

Page 20: Curso de arduino

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: [email protected]

Page 21: Curso de arduino

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: [email protected]

Page 22: Curso de arduino

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: [email protected]

Page 23: Curso de arduino

Sensores

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 24: Curso de arduino

Sensores

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 25: Curso de arduino

Sensores

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 26: Curso de arduino

Livros

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 27: Curso de arduino

Site Oficial

www.arduino.cc

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 28: Curso de arduino

#MãoNaMassa!

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 29: Curso de arduino

#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: [email protected]

Page 30: Curso de arduino

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: [email protected]

Page 31: Curso de arduino

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: [email protected]

Page 32: Curso de arduino

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: [email protected]

Page 33: Curso de arduino

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: [email protected]

Page 34: Curso de arduino

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: [email protected]

Page 35: Curso de arduino

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: [email protected]

Page 36: Curso de arduino

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: [email protected]

Page 37: Curso de arduino

Aula 2: Portas Analógicas, Comunicação Serial e LCD

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 38: Curso de arduino

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: [email protected]

Page 39: Curso de arduino

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

Ten

são d

e R

eferê

ncia

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 40: Curso de arduino

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: [email protected]

Page 41: Curso de arduino

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: [email protected]

Page 42: Curso de arduino

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: [email protected]

Page 43: Curso de arduino

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: [email protected]

Page 44: Curso de arduino

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: [email protected]

Page 45: Curso de arduino

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: [email protected]

Page 46: Curso de arduino

Tabela ASCII

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Page 47: Curso de arduino

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: [email protected]

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.

Page 48: Curso de arduino

LiquidCrystal Biblioteca

Ministrado por: Wellington Cássio Faria Contato: [email protected]

Esta biblioteca permite que uma placa Arduino possa controlar um LCD baseado no

Hitachi HD44780

Page 49: Curso de arduino

LiquidCrystal Biblioteca

Ministrado por: Wellington Cássio Faria Contato: [email protected]

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

Page 50: Curso de arduino

LiquidCrystal Biblioteca

Ministrado por: Wellington Cássio Faria Contato: [email protected]

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)

Page 51: Curso de arduino

LiquidCrystal Biblioteca

Ministrado por: Wellington Cássio Faria Contato: [email protected]

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)

Page 52: Curso de arduino

Exercício

Ministrado por: Wellington Cássio Faria Contato: [email protected]

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.

Page 53: Curso de arduino

FIM

Ministrado por: Wellington Cássio Faria Contato: [email protected]

www.facebook.com/engenheiromaonamassa