You are on page 1of 16

Curso bsico de Arduino - Parte 1

Estarei dividindo esse pequeno curso em partes importantes. Com as informaes aqui, voc ser capaz de montar seus projetos com Arduino, mesmo com conhecimento bsico de eletrnica e programao. Introduo ao Arduino Muitos profissionais e estudantes j ouviram falar nele. Mas o que ? Como trabalha? Posso ter um? Ou melhor... Posso fazer um?! A resposta SIM! Voc pode ter um, ou melhor, fazer um, pois a arquitetura Arduino, totalmente Open-source (livre para modificaes ou implementaes, mas de acordo com a licena Creative Commons Attribution-ShareAlike 3.0), ou seja, voc pode desenvolver sua prpria placa com o mesmo cdigo e hardware e existe uma imensa comunidade mundial e inclusive no Brasil, disposta a compartilhar todo o desenvolvimento e aperfeioamento desta plataforma. destinados a estudantes, artistas, hobbystas, profissionais ou a qualquer outra pessoa que queira criar objetos ou ambientes interativos.

Mas o que O Arduino nada mais do que uma simples placa de circuito com entradas e sadas (I/O) microcontroladas, que serve de controle fsico para outros dispositivos. baseado no microcontrolador Atmega da Atmel e foi desenvolvido com bibliotecas simples de C/C++. Surgiu em 2005 na Itlia, com finalidade educativa para pessoas com conhecimento bsico de eletrnica, mas com a sua facilidade de diversas criaes, foi ganhando espao em projetos complexos. Para controle de projetos, pode ser usado conectado em um computador rodando por exemplo Flash, Processing, MaxMSP ou sozinho, no modo stand-alone.

A quantidade de projetos desenvolvidos com Arduino na internet, muito grande, na qual mais a frente deste artigo, iremos listar os melhores projetos desenvolvidos com esse dispositivo. Mas caso voc queira dar uma olhada, comece pelo site oficial, http://www.arduino.cc/, l voc encontra toda documentao sobre o hardware e software.

Comprar ou fazer?? Caso queria adquirir a sua placa, voc pode comprar pronta, onde h muitas lojas Brasileira que a comercializam, inclusive somente o PCB (apenas o circuito impresso do modelo escolhido) junto com um kit para voc ter a experincia de montar seu Arduino ou pronta com itens escolhidos como Displays, Teclados, sensores diversos, Protoboard, etc. Mas caso queira criar uma placa Arduino, indicado que siga os termos de cdigo legal da Creative Commons Attribution-ShareAlike 3.0 License, onde encontra os termos de uso a licena do Hardware e Software, na qual seguindo essa licena, voc pode at comercializar suas placas.

Comercializao das suas placas Voc pode criar, clonar (pois Open-Source, lembra?), de acordo com o hardware, colocar seu nome, sua marca (existem algumas verses brasileiras j), mas caso queria criar um componente para uso com Arduino para comercializao, voc pode descrever que o objeto para ser usado com Arduino, mas no pode levar o nome da marca, pois Arduino j uma marca Italiana registrada. Digamos que voc crie um componente interessante e queira incluir na lista oficial do Arduino, para isso s entrar em contato com a equipe Arduino pelo site oficial. O sufixo "duino", no proibido pela equipe Italiana, mas j registrada por uma empresa Hgara. Ento melhor inventar um nome e dizer que pode ser usado para/com Arduino. Seja criativo!

Ambiente de desenvolvimento O software do Arduino tambm Open-Source, o cdigo-fonte em ambiente Java foi liberado gratuito sob licena GPL e as bibliotecas do microcontrolador C/C++ esto sob licena LGLP . Tambm pode ser baixado neste endereo: http://arduino.cc/en/Main/Software.

Hardwares disponveis H diversos tipos de hardwares e Shields (componentes para auxlio ou para incrementar o projeto), cada uma delas tem um "codinome" e existem uma variedade que se adaptam de acordo com a necessidade dos projetos, listarei os mais conhecidos aqui no Brasil, confira:

Arduino Nano

uma placa bem compacta, muito bom para se colocar numa Protoboard. Se comunica atravs de USB mini.

Arduino UNO

Essa a ltima verso da placa USB. Usa um conector USB padro e contem tudo o que voc precisa para programar e usar a placa. semelhante ao modelo Duemilanove.

Arduino LilyPad

Desenvolvido para aplicaes portteis, d para "costurar" essa placa em um tecido!D para fazer coisas curiosas! (camisetas com equalizador? Ah t...)

Arduino Uno SMD

Verso SMD do UNO, utiliza um microcontrolador SMD, ATmega328.


Arduino Fio

Para aplicaes sem fio. Possui um soquete para Xbee, um conector para bateria LiPo.
Mega2560

Verso do Mega lanado com o Uno, esta verso apresenta o Atmega2560, que tem o dobro da memria, e usa o 8U2 ATmega para a comunicao serial-USB.
PRO

Esta placa projetada para usurios avanados. facilmente alimentado por uma bateria, mas requer componentes adicionais e montagem tcnica.

Bluetooth

A BT Arduino contm um mdulo bluetooth que permite a comunicao sem fio. compatvel com todos os Shields Arduino.
Mini Pro

Igual a verso PRO, porem menor. projetado para usurios avanados que exigem baixos custos, pequenos espaos, mas ainda assim, tem que estar dispostos para fazer algum trabalho extra de montagem.
Mini

Parece a mesma acima, mas no ! Este o menor da placa Arduino. Ela funciona bem em uma protoboard ou para aplicaes onde o espao pequeno (pequeno mesmo!). Usa um conector Mini USB para se comunicar com o computador.
Programando... Fcil!

A linguagem para programar o Arduino, uma DLS (domain specific language), inspirada em C/C++, est facilitada para voc no ter dificuldades em portas analgicas, portas digitais como encontradas em microcontroladores Atmega. Aqui est a refncia da linguagem como todos as instrues listadas e explicadas uma a uma, http://www.arduino.cc/playground/Portugues/Referencia

Conhecendo o Hardware

Comeando l em cima, no sentido horrio, temos: Laranja - Pino analgico de referncia Verde claro - Terra Verde escuro - pinos digitais 2-13 Verde escuro - pinos digitais 0-1, temos entrada serial, sadas TX/RX e esses pinos no podem ser usados como I/O (digitalRead e digitalWrite), caso esteja usando comunicao Serial (comandos seriais no cdigo fonte, exemplo: serial.begin). Azul escuro - S1, Boto de Reset. Azul Petrleo ou "azul-esverdeado", como quiser... - ICSP, Serial para programao do tipo In-Circuit (gravao direta na placa). Azul claro - Pinos analgicos 0-5. Laranja escuro e Laranja claro - 5V, GND e 9V, Pinos de alimentao. Rosa - X1, fonte externa de alimentao 9V a 12V. Roxo - SV1, Alternado de alimentao externa e alimentao USB. Amarelo - USB, usado para fazer upload da programao para a placa, comunicao entre a placa e o computador e pode ser usado para alimentar a placa.

Pinos digitais:
Alm das funes especficas listadas abaixo, os pinos digitais do Arduino podem ser usados para entrada e sada de uso geral no programa que voc escrever atravs desses comandos: pinMode () , digitalRead () , e digitalWrite (). Cada pino tem um resistor do tipo pull-up interno que pode ser ligado e desligado usando digitalWrite () (w / com nvel alto ou baixo, respectivamente), quando o pino configurado como uma entrada. Lembrando que a corrente mxima de cada pino 40 mA, no podendo excerder esse valor, caso contrrio o pino da placa ser danificado.

Serial - Pino 0 (RX) e Pino 1 (TX): Usados para receber (RX) e transmitir (TX) serial TTL. No Arduino Diecimila (ltimo da srie UBS fabricado, com microcontrolador Atmega168), estes pinos so conectados aos pinos correspondentes do chip FTDI USB-to-TTL. Sobre o Arduino BT, esto ligados aos pinos correspondentes do mdulo Bluetooth WT11. No Arduino Mini e LilyPad, eles so projetados para uso com um mdulo externo serial TTL (por exemplo, o adaptador Mini-USB).

Interrupes Externas - Pinos 2 e 3: Esses pinos podem ser configurados para disparar uma interrupo atravs de um valor de nvel baixo, numa borda de subida ou descida, ou uma mudana de valor. Veja a funo attachInterrupt () para obter mais detalhes.

PWM - Pinos 5, 6, 9, 10 e 11: Fornece uma sada PWM de 8 Bits com a funo analogWrite (). Em placas com um ATmega8, a sada PWM est disponvel somente nos pinos 9, 10 e 11.

BT Reset: Pino 7 (Arduino BT apenas): Ligado linha de reset do mdulo bluetooth.

SPI - Pino 10 (SS), Pino 11 (MOSI), Pino 12 (MISO) e Pino 13 (SCK): Estes pinos so de apoio comunicao SPI que, embora seja fornecido pelo hardware, no est includo na linguagem Arduino.

LED - Pino 13: No Arduino Diecimila e LilyPad, h um LED integrado ligado ao pino digital 13. Quando o pino est em HIGH (nvel alto), o LED est ligado, quando o pino est em LOW (nvel baixo), desligado.

Os esquemas de circuitos de cada modelo Arduino esto em PDF e arquivos EAGLE nesse endereo: http://arduino.cc/en/Main/Hardware s clicar em uma das placas, verificar os dados importantes como tenso, pinos, especificaes, etc e fazer o download dos esquemas. O EAGLE um software de criao PCB e gratuito, disponibilizei em nossa rea de download.

Referncia da Linguagem
Veja a referncia estendida para mais recursos avanados da linguagem Arduino e a pgina sobre as bibliotecas para interfaces com hardwares especficos A programao para o Arduino pode ser dividida em trs sees principais: estrutura, valores (variveis e constantes), e funes. A linguagem Arduino baseada em C/C++.

Estrutura

void setup() void loop() Estruturas de controle

if if...else for switch case while do... while break continue return goto

Outras Sintaxe

Funes
Digital I/O (entradas e sadas digitais)

; (ponto-e-vrgula) {}? (chaves) //?(comentrio de uma linha) /* */? (comentrio multilinhas) Operadores Aritmticos

pinMode(pino, modo) digitalWrite?(pino, valor) int digitalRead(pino) Analog I/O (entradas e sadas analgicas)

=? (atribuio) +? (adio) -? subtrao) *? (multiplicao) /? (diviso) %? (mdulo) Operadores Comparativos

int analogRead(pino) analogWrite?(pino, valor) - PWM Advanced I/O (entradas e sadas avanadas)

== (igual a) != (no igual a) < (menor que) > (maior que) <= (menor ou igual a) >= (maior ou igual a) Operadores Booleanos

tone?() noTone?() shiftOut?(dataPin, clockPin, bitOrder, valor) unsigned long pulseIn?(pino, valor) Temporizadores

&& (e) || (ou) ! (negao)

unsigned long millis() delay(ms) delayMicroseconds?(us) Matemtica min? (x, y) max? (x, y) abs? (x) constrain? (x, a, b) map? (value, fromLow, fromHigh, toLow, toHigh) pow? (base, exponent) sq? (x) sqrt? (x) Trigonometria sin? (rad) cos? (rad) tan? (rad) Nmeros Randmicos

Operadores de Atribuio Composta


++ (incremento) -- (decremento) += (adio composta) -= (subtrao composta) *= (multiplicao composta) /= (diviso composta)

Variveis

Variveis so expresses que voc pode usar em programas para armazenar valores, como, por exemplo, a leitura de um sensor a partir de um pino analgico.

randomSeed? (seed) long random? (max) long random? (min, max)

Constantes Constantes so rtulos para certos valores, os quais so pr-definidos no compilador do Arduino. Voc no precisa definir ou inicializar constantes. Arduino inclui as seguintes constantes pr-definidas.

Comunicao Serial No encontrou alguma coisa? Veja a A referncia extendida ou as bibliotecas. Ou veja a lista de contribuies da comunidade

HIGH? | LOW? INPUT? | OUTPUT? true? | false? Constantes Inteiras Tipos de Dados Variveis podem ter vrios tipos, que so descritos abaixo.

boolean char? byte? int? unsigned int? long? unsigned long? float? double? string? array? void? Converso

char() byte?() int?() long?() float?()

Referncia

mapa ASCII?

Construindo um simples gravador para Atmega8 ou 16


Vamos usar um mtodo conhecido por usurios de microcontroladores Atmel, o cabo paralelo. muito fcil e simples. Lista de material:

Ferro de solda Pistola de cola quente (opcional) 2 resistores 470 ohm (amarelo-roxo-marrom)

1 resistor de 220 ohm (vermelho-vermelho-marrom) 1 cabo de porta paralela ou adaptador de paralela para serial Fios para montagem A montagem ser de acordo com essa imagem.

Comece soldando os resistores de 470 ohms nos pinos 1 e 2 do conector paralelo, como na figura abaixo:

Primeiro resistor soldado no pino 1 Solde o outro resistor de 470 no pino 2 e o resistor de 220 Ohms no pino 11, como o esquema da primeira imagem l em cima. Terminando a solda dos resistores, voc ir solda trs fios, um no resistor do pino 11 (que vai para o pino 18 no ATmega8), no resistor no pino 1 (que vai para o pino 19 no ATmega8), e um fio que vai diretamente no pino 16 do adaptador (que vai para o reset, pino 1 no Atmega8), que na imagem abaixo esse fio branco.

Agora voc ir soldar mais 3 fios, um para o resistor no pino 2 (que vai para o pino 17 no ATmega8), e o outro fio (branco tambm) no pino 18 do adaptador paralelo que ser o terra. Como a imagem abaixo (no confunda, o conector s est virado):

Ligue a outra extremidade do cabo em um conector fmea de modo que, quando visto da extremidade do conector, o fio para o pino 11 est no canto superior direito (este considerado o pino 1 do conector e deve ser combinada com o pino 1 indicada na placa Arduino).

Coloque cola quente sobre os fios dentro da capa do Adaptador paralelo de forma que fiquem bem fixados, certificando-se que os fios no isolados fiquem mantidos separados. Ou, se no estiver usando um adaptador, enrole os fios expostos com fita isolante para evitar que eles se toquem para evitar curto-circuito.

Feche o adaptador e pronto!

Caso voc no use um conector fmea na outra extremidade e queira ligar diretamente na placa ou na protoboard, siga o esquema abaixo.

Seguindo os fios soldado no adaptador:

Pino 1 do adaptador ser ligado no pino 19 (SCK) do CI do atmega; Pino 2 do adaptador ser ligado no pino 17 (MOSI) do CI do atmega; Pino 11 do adaptador ser ligado no 18 (MISO) do CI do atmega; Pino 16 do adaptador ser ligado no pino 1 (RESET) do CI do Atmega; Pino 18 do adaptador ser ligado no Terra (GND).

Seguindo a imagem abaixo ligue nos respectivos pinos do CI:

Observaes importantes em caso de problemas Ouvi dizer que algumas pessoas, tiveram problemas com porta paralela no PC, veja se sua porta est configurada como EPP+ECP, caso tenha problemas com a porta. No caso de XP, existem Patch de correo para isso.

No caso de gravao para Arduino, preste ateno na tenso que alimenta a placa, pois a alimentao vinda da porta USB limitada, pegue de outra fonte em caso de problemas. Alimente-o com 5V de tenso.

Houve relatos de pessoas que tentaram gravar com esse cabo paralelo, mas no conseguiam antes de retirar os resistores, pois a porta paralela do PC, estava trabalhando em uma corrente muito baixa, e como os resitores limitam a corrente, eis o problema. Ento antes de retirar os resistores, verifique a corrente da porta paralela. Mas tenha muita certeza disso para no ter prejuzos!

Agora se continuar a ter problemas, faa download de um Linux Bootvel (tem muitas verses pela internet) e faa a gravao atravs dele.

You might also like