Beruflich Dokumente
Kultur Dokumente
com Arduino
Aula 1
Semana Acadmica 2013/1
Microcontroladores
Um microcontrolador um pequeno computador em um nico circuito integrado,quecontm
processador, memria e perifricos de entrada e sada. Eles so feitos para aplicaes de
propsito especfico, como aplicaes embarcadas, em contrastecomosmicroprocessadores
usadosemcomputadorespessoais,quesoparaaplicaesdepropsitogeral.
Microcontroladores so usados para controlar automaticamente produtos e aparelhos, tais
como sistema de controle de motores de automveis, implantes mdicos, controles remotose
outrossistemasembarcados.
Sistema embarcado: um sistema computacional com uma funo dedicadaem um
sistema eltrico ou mecnico maior. Dizse que ele est embarcado em um aparelho
completo. A sua principal caracterstica estar dedicado a realizar uma tarefa
especfica.
Por ter tamanho epreo reduzidoemcomparaocomusar ummicroprocessador,memriae
perifricos de entrada e sada separados, microcontroladorestornam economicamentevivelo
controle digitalde cada vez mais aparelhoseprocessos. Elesnormalmentetemcapacidadede
processamento e memria reduzidos em relao a um computador comum devido a
priorizaremoutrosaspectos,taiscomoconsumodeenergia,tamanhoepreo.
Referncias:
http://en.wikipedia.org/wiki/Microcontrollers
http://en.wikipedia.org/wiki/Embedded_system
Arduino
Arduino uma plataforma de computao fsica composta por microcontroladores de placa
nica e por um ambiente de desenvolvimento para escrever programas para as placas. Ele
pode ser usado para desenvolver objetos interativos, tomando entrada de uma variedade de
sensores e chaves e controlando uma variedade de luzes, motores e outras sadas fsicas.
Tanto o hardware como o software so open source, isto , o cdigo fonte do ambiente de
desenvolvimentoeosesquemticosdasplacassodisponibilizadoslivremente.
Pisca LED
O cdigo que enviamos ao Arduino faz um dos LEDs (Light Emitting Diode, diodo emissor de
luz) da placa ligar e desligar acadaumsegundo.EsteprogramaconsideradooHello,World
dosmicrocontroladores.Vejamoscomoelefunciona:
EstruturabsicadeumcdigoparaArduino
Duasfunesdeveroestarpresentesemqualquercdigo:setup()eloop().
setup(): a funo setup() chamada quando o cdigo comea. Usea para inicializar
variveis, definir modos dos pinos, usar bibliotecas, etc. A funo rodar apenas uma
vez,depoisqueligarmosouresetarmosaplacaArduino.
loop(): depois da setup(), temos a funo loop(), que faz exatamente o que o nome
sugere, isto , executa em loop o cdigo nela presente, permitindo assim que o seu
programaverifiquemudanaserespondaaelas.
Outrasfunesusadasnestecdigo:
pinMode(): configura um pino como sendo de entrada ou sada. Para usla, passe o
nmero do pino a configurar e a constante INPUT ou OUTPUT. Quando configurado
como entrada, um pino pode detectar o estado de um sensor como, por exemplo, um
boto. Quando configurado como sada, ele pode controlar umelemento comoumLED
ou um motor. uma boa prtica de programao criar variveis que contm o nmero
dos pinos que usaremos assim, se precisarmos mudar o pino que far algo, apenas
precisaremosmudaroseunmeronadeclaraodavarivel.
digitalWrite(): a funo define o valor de sada de um pino digital.Passamosparaelao
nmero do pino e ovalor de sada, que deve ser HIGH (5 Volts, ligado,Vdd) ouLOW(0
volts,desligado,conectadoterra,ground).
delay(): faz o Arduino esperar uma quantidade especificada de milissegundos antes de
continuarcomocdigo.
Pisca LED: definimos que o nosso LED estar no pino 13 pois o Arduino Uno j tem um LED
ligado a esse pino na prpria placa. Ao fazermos pinMode(led,OUTPUT), configuramos o pino
13 (led = 13) como de sada, pois ele ligare desligar o LED. Precisamos fazer isso uma e
apenas uma vez, porisso estchamada de funo est dentro dasetup(). Ocdigoefetivo de
piscar o LED, que ficar sendo repetido, est na loop(). digitalWrite(led,HIGH) ligaopinoaque
estconectadooLEDdelay(1000)espera1000ms,isto,1segundo,atseguircomocdigo
e digitalWrite(led, LOW) desliga o mesmo pino. Este cdigo executado repetidamente
enquanto o Arduino estiver ligado e, assim, o LED conectado ao pino 13 ficar piscando com
intervalosde1segundo.
Pisca LED com um LED externo: agora, faremos um LED que no est na placa Arduino
piscar, utlizandoomesmocdigodeantes.Paraisso,devemosconectloaopino13.Vejamos
como devemos conectlo. Sabemos que a corrente eltrica vai do potencial positivo para o
negativo e que so os elementos da corrente que carregam a energia que acender o LED.
Assim, podemos conectar uma daspernas do LED ao pino 13 e a outra ao ground, isto , 0V.
Dessa forma, quando ligarmos a sada do pino 13, l haver 5V, e a corrente ir passar pelo
LED, acendendoo, e quando a desligarmos, l haver 0V, no havendo assim diferena de
potencial entre as duas pernas do LED, logo por ele no passar corrente e ele estar
desligado. Noentanto, devemos atentar a que, comotodos os diodos, ele polarizado logo, a
correntesomentepassarporeleemumsentidodeterminado,nocaso,donodo(perna maior)
para o ctodo (perna menor). Alm disso, correntes elevadas so prejudiciais tanto ao LED
como ao Arduino, logo devemos colocar uma resistncia juntamente ligao para reduzir a
correntequepassar.
Referncias:
http://arduino.cc/en/Tutorial/BareMinimum
http://arduino.cc/en/Reference/Setup
http://arduino.cc/en/Reference/Loop
http://arduino.cc/en/Tutorial/Sketch
http://arduino.cc/en/Reference/PinMode
http://arduino.cc/en/Reference/DigitalWrite
http://arduino.cc/en/Reference/Delay
http://arduino.cc/en/Tutorial/Blink
Botes
Botes conectam dois pontos de um circuito quando sopressionados.Acorrenteatravessao
boto no sentido indicado na figura. Conectando um fio em qualquer um dos terminais V1 a
corrente atravessar para qualquer um dos terminais V2. Os terminais de mesmo nome
possuem a mesma tenso. A corrente s passar enquanto o boto estiver pressionado
quandoeleestiversolto,ocircuitoestaraberto.
Afimdeevitarqueasadadobotofiqueflutuando,isto,notenhaumvalordefinido, devemos
fazer um PULL DOWN, ou seja, garantirquesempre que o boto noestiver pressionado, a
sada dele ser de valor lgico 0. Isso feito colocando emparalelo com asada um resistor
queestligadonoGND.
Agora, faremos um cdigo que mantm um LED aceso enquanto oboto estiver pressionado.
O Arduino dever receber o sinal deestadodobotoeentomandaroLEDacender.Para lero
valordesadadoboto,devemosusarafunodigitalRead:
digitalRead(): recebe o nmero deum pino e retorna o seu valor, isto , ligado (HIGH)
oudesligado(LOW).
LembresededeclararobotocomoINPUTnosetup.
Referncia:
http://arduino.cc/en/tutorial/button
http://arduino.cc/en/Reference/DigitalRead
Projeto: Sinaleira
Desenvolvaumasinaleiracombotocomoquefoiaprendidoatomomento.
A sinaleira devepossuir3estados:aberta(LED verde),ateno(LEDamarelo)e fechada(LED
vermelho).
A sinaleira sempre est aberta at que algum aperte o boto. Ento, aps 2s do
pressionamento do boto, ela dever ficar em estado de Ateno por 2s, e s ento ficar
Fechada.Aps5segundos,osinaldeveestarabertonovamente.