O documento fornece uma introdução ao Arduino, descrevendo o que é Arduino, como funciona e exemplos de aplicações. Resume os principais pontos sobre a plataforma Arduino, incluindo como programar usando o IDE Arduino e exemplos de programas simples envolvendo LEDs, botões e leitura analógica.
Resource Optimizations for Broadcast enabled networks
Hack'Aveiro - 1º workshop - Introdução ao Arduino
1. 1º Workshop – Introdução
ao Arduino
Setembro 2015
Hack’Aveiro
Casa da Juventude de Aveiro
2. O que é o Arduino?
• Uma placa de circuito impresso
• Um software para programar
• É um movimento criado em 2005 por Massimo Banzi e David
Cuartielles
• Plataforma de hardware open-source
• Ambiente de desenvolvimento open-source
• Mais info https://www.arduino.cc
Hack'Aveiro 2015 2
3. Para que serve o Arduino?
• Prototipagem rápida
• Artistas e Hackers
• Aprendizagem de Eletrónica e
Informática
• Estudantes e Hobistas
Hack'Aveiro 2015 3
6. Como programar
• Fazer download do IDE
• http://arduino.cc/en/Guide/HomePage
• Ligar a placa ao computador através de um cabo USB
• Se necessário, instalar os drivers
• Executar o Arduino IDE
• Selecionar a placa
• Selecionar a porta de serie
• Abrir o exemplo “Blink program”
• Carregar o programa para a placa
Hack'Aveiro 2015 6
10. Aquisição de Sinais
(Analógico e Digital)
• A natureza é analógica
• O microcontrolador é digital
• Converção entre sinais
• ADC – Analog to Digital Converter
• DAC – Digital to Analog Converter
• Arduino possui portas distintas
• A0, A1, A2, A3, ... – Ligadas a ADC
• D0, D1, D2, D3, ... – Aquisição digital (0/1)
Configuração da porta:
pinMode(pin, mode) – pin é o numero e mode é INPUT ou OUTPUT
digitalRead(pin)
digitalWrite(pin, value) – value é HIGH ou LOW (1 ou 0)
Hack'Aveiro 2015 10
Image from:
http://www.thefoa.org/tech/ref/OSP/OSPdatalink.html
http://www.ntu.edu.sg/home/eomchai/www.ntu.edu.sg/home/yanggao/EEEWorkshop/workshop.html
12. LED’s
• Light-Emitting Diode
• Apenas emite luz quando o ânodo (+)
tem um potencial superior ao cátodo (-)
na ordem dos 2-3,5volts.
• O cátodo tem uma “perna” mais curta,
ou o seu lado encontra-se lascado.
• Uma corrente elevada pode danificar o
LED
• Colocar sempre uma resistência em serie
Hack'Aveiro 2015 12
Image from:
http://www.ntu.edu.sg/home/eomchai/www.ntu.edu.sg/home/yanggao/EEEWorkshop/workshop.html
13. 3º Programa
1. Construa o circuito
2. Escreva um programa que utilize uma
porta digital para ler o valor do botão.
Imprima o valor do botão no ecrã:
Serial.println(valor_lido);
3. Se o botão for pressionado (valor digital
= 1) então ligar o LED utilizando outra
porta digital
Hack'Aveiro 2015 13
Descodificador de Resistencias:
http://www.hobby-hour.com/electronics/resistorcalculator.php
14. Analógico para Digital
• Converter um unidade analógica
em digital no Arduino:
• 10-bit – significa que um valor
entre 0 e 5v é convertido num
valor entre 0 e 1023.
• Velocidade de amostragem 10kHz
analogRead(pin) – pin é o numero (A0, A1, A2, ...)
Hack'Aveiro 2015 14
15. 4º Programa
1. Construa o circuito
2. Escreva um programa que utilize uma
porta analogica para ler o valor do
potenciometro. Imprima o valor do
botão no ecrã:
Serial.println(valor_lido);
3. Se o valor lido for superior a um valor X
(ex. 200), então ligar o led.
Hack'Aveiro 2015 15
16. Digital para Analógico
• Arduino não produz sinais analógicos nem tensões
intermédia (0v-5v)
• PWM (Pulse-Width Modulation) permite “enganar” a
realidade
• Sinal digital
• onda quadrada de frequência constante
Configuração da porta:
analogWrite(pin, dutyCycle) – pin é o numero
e dutyCycle é um valor [0, 255]
• Como converter uma posição de um intervalo para a
mesma posição em intervalo distinto.
novoValor = map(valor, 0, 1024, 0, 255)
converte valor compreendido em [0, 1024] em
novoValor compreendido em [0, 255]
Hack'Aveiro 2015 16
17. 5º Programa
1. Construa o circuito com base no circuito
anterior
2. Em vez de ligar e desligar o LED, vamos
controlar a intensidade do mesmo.
Hack'Aveiro 2015 17
18. Imaginação é o Limite!
Hack'Aveiro 2015 18
Pressão Temp/Hum Com. Radio Bluetooth Ethernet
Relay Servo Motor Fluxo CO2, CO, etc
LCD
Movimento
E MUITOS MAIS!!!!