Post on 12-Apr-2017
1º Workshop – Introdução ao Arduino
Setembro 2015Hack’Aveiro
Casa da Juventude de Aveiro
Hack'Aveiro 2015 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 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 4
Placas Arduino
Hack'Aveiro 2015 5
Arduino• Microcontrolador ATMEL – ATmega328p, ...• Voltagem 3.3v, 5v, 7-12v• Corrente máxima por pin: 40mA• Regulador de Tensão• Portas
• Serie (via USB)• Digitais• Analogicas (10bit ADC)• Interrupts• Pulse Width Modulation (PWM)• LED Built-in
Hack'Aveiro 2015 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 7
Configuração do IDE Arduino
Hack'Aveiro 2015 8
Processo de desenvolvimento
Escrever Sketch Compilar Upload
Hack'Aveiro 2015 9
1º Programa – Olá Mundo
Hack'Aveiro 2015 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 OUTPUTdigitalRead(pin)digitalWrite(pin, value) – value é HIGH ou LOW (1 ou 0)
Image from:http://www.thefoa.org/tech/ref/OSP/OSPdatalink.htmlhttp://www.ntu.edu.sg/home/eomchai/www.ntu.edu.sg/home/yanggao/EEEWorkshop/workshop.html
11
2º Programa
Hack'Aveiro 2015
Hack'Aveiro 2015 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
Image from:http://www.ntu.edu.sg/home/eomchai/www.ntu.edu.sg/home/yanggao/EEEWorkshop/workshop.html
Hack'Aveiro 2015 13
3º Programa1. 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
Descodificador de Resistencias:http://www.hobby-hour.com/electronics/resistorcalculator.php
Hack'Aveiro 2015 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 15
4º Programa1. 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 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 17
5º Programa1. 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 18
Imaginação é o Limite!
Pressão Temp/Hum Com. Radio Bluetooth Ethernet
Relay Servo Motor Fluxo CO2, CO, etc
LCD
Movimento
E MUITOS MAIS!!!!
Hack'Aveiro 2015 19
Obrigado!
Brevemente:- Workshop Intermédio (I2C, Sensores)