Você está na página 1de 9

O que Arduino ?

Arduino uma plataforma de hardware livre, baseado em microprocessador de cdigo aberto, uma placa fsica em cdigo aberto baseada em um circuito de entradas/sadas simples, e linguagem de programao padro, que essencialmente C/C++, sendo uma plataforma completamente personalizvel j que todo o seu projeto aberto aos usurios. O objetivo da criao do Arduino ter uma plataforma totalmente aberta, tanto hardware como software acessveis, pois alm de ter um custo baixo uma plataforma flexvel e de fcil utilizao, tanto para profissionais como para interessados na rea, visando fornecer uma alternativa para aqueles que no tem alcance a outros microcontroladores, que alm do custo elevado e software prioritrio, no podem ser personalizados e so mais difceis de utilizar pois requerem um maior nvel de conhecimento tcnico. Uma das grandes vantagens do Arduino o seu nvel de personalizao, como se trata de uma plataforma aberta, todo o projeto disponibilizado aos seus usurios no site www.arduino.cc, assim caso o usurio queira ele pode montar o seu prprio Arduino e adicionar ou retirar funcionalidades de acordo com o seu projeto, o mesmo tambm pode ser feito com a sua IDE (software utilizado para programar o Arduino), que de cdigo aberto, e funciona nos sistemas operacionais Windows, Macintosh OSX, e Linux, diferente da maioria dos microcontroladores em que suas IDE's funcionam apenas no Windows. Todas essas qualidades fazem o Arduino se tornar uma alternativa muito interessante para o ensino.

1 Marisa Cavalcante e Eduardo Silva Damasceno ( marisac@pucsp.br )

Descrio da placa Arduino

Os componentes mais bsicos da placa Arduino so: Entrada usb Entrada de alimentao Pino ICSP Pinos de entrada analgica Pinos digitais Pinos de alimentao Boto reset

Descrio dos componentes bsicos Entrada USB A entrada USB da placa Arduino utilizada para realizar a comunicao entre o Arduino e o computador, atravs dessa comunicao so enviados os cdigos referentes as aes que o Arduino executar, a entrada tambm utilizada para o envio e recepo de informaes do cdigo em execuo, que sero exibidos em um hiperterminal (monitor serial) e alm dessas funes a entrada USB tambm fornece alimentao para a placa Arduino. O padro do cabo utilizado USB AB. Entrada de alimentao Caso seja necessrio mais alimentao, ou caso haja necessidade da no utilizao da alimentao atravs da entrada USB, a placa Arduino dispe de uma entrada padro para adaptadores AC-DC.
2 Marisa Cavalcante e Eduardo Silva Damasceno ( marisac@pucsp.br )

Pino ICSP Esse pino suporta comunicao SPI (Serial Peripheral Interface Bus ), presente nos modelos de Arduino, Duemilanove e Diecimila, usado por alguns modelos de shield como por ex. Ethernet Shield. Pinos de entrada analgica A funo principal dos pinos de entrada analgica para a maioria dos usurios de Arduino, a leitura de sensores analgicos, como por exemplo, ldr, sensores de distncia, sensores de temperatura, os pinos de entrada analgica fazem leituras em valores inteiros em um intervalo de 0-1023 ( converso 10 bits). Pinos digitais Os pinos digitais so pinos de propsito geral de entrada(input) e sada(output), cada pino tem uma chave interna que pode receber os valores HIGH e LOW, o funcionamento deles parecido com o de um interruptor que pode estar ligado ou desligado, assim podemos ligar ou desligar componentes, ex: led. Pinos de alimentao Como mais uma alternativa de alimentao para a placa Arduino, existe o pino VIN (voltage input), atravs dele e do pino GND a placa pode ser alimentada, ligando uma bateria ou pilhas atravs de um adaptador diretamente a esses dois pinos, porm cada modelo de Arduino requer um faixa de voltagem diferente, portanto antes usar o pino verifique qual a necessria para alimentar a sua placa corretamente.

Boto reset Utilizado para dar um reset fsico no microcontrolador, o boto reset era utilizado em algumas verses anteriores do Arduino como um procedimento antes de enviar um novo cdigo para a placa.

3 Marisa Cavalcante e Eduardo Silva Damasceno ( marisac@pucsp.br )

Arduino IDE O Arduino IDE (ambiente de desenvolvimento integrado ou Integrated Development Environment) o software que nos possibilita escrever cdigos e envi-los para a placa Arduino, atravs dele possvel verificar quando e aonde h erros no cdigo. O programa fornece ao usurio a opo de salvar o cdigo, podendo assim administrar seus projetos. Tambm h a interface serial de comunicao, por onde o usurio pode enviar dados do seu projeto e visualiz-los na tela. Dentro do programa so disponibilizados exemplos prontos, desde os de nvel bsico at o nvel avanado, assim o usurio pode ir subindo progressivamente conforme o conhecimento que vai adquirindo.

4 Marisa Cavalcante e Eduardo Silva Damasceno ( marisac@pucsp.br )

Programando na IDE
Para programar na IDE Arduino utilizaremos duas de suas funes principais, a primeira o void setup(). Estabelece as configuraes iniciais. Nela fazemos as configuraes dos componentes e recursos que utilizaremos, por exemplo, para ligar um led, nesse caso o led atuar como um dispositivo de sada, vamos usar a porta digital 13 no exemplo, ento dentro da funo: Assim teremos por exemplo: pinMode(13, OUTPUT); caso o dispositivo seja de sada pinMode(13, INPUT); caso o dispositivo seja de entrada Ainda em void seteup; para iniciar uma comunicao serial, e criar a possibilidade de enviar os dados obtidos e visualiz-los em um hiper terminal, usamos a funo Serial.begin(9600); em que o 9600 representa a velocidade dessa comunicao em bits por segundo, A segunda funo void Loop(), nela estabelecemos o controle propriamente dito e a operao que vairodar o tempo no seu Arduino: Nela podemos, por exemplo, enviar os dados para a serial e imprimi-los e neste caso usamos o comando Serial.print(dados1), onde dados1 apenas uma varivel que representa algum valor medido por algum sensor conectado ao Arduino, que pode ser do tipo inteiro, real, caractere ou string. Alguns comandos: Para escrever e ler atravs das portas digitais da placa Arduino utilizaremos as seguintes funes: Para leitura nas portas digitais: digitalRead(13), leitura porta 13 Para escrever em um porta digital: digitalWrite este pode divido em duas parte por se tratar de um comando de sada, j que ela aceita dois valores HIGH e LOW, que podem ser entendidos como ligado e desligado (e na leitura de uma porta digital so recebidos como 1 e 0), e escritos da seguinte maneira para os dois casos: digitalWrite(13, HIGH); digitalWrite(13, LOW); J para leitura em portas analgicas utilizaremos o seguinte comando: analogRead(13); A IDE Arduino pode ser baixada no seguinte endereo: http://arduino.googlecode.com/files/arduino-0022.zip

5 Marisa Cavalcante e Eduardo Silva Damasceno ( marisac@pucsp.br )

Experimento 1: Piscar um led- Blink


O experimento a seguir prope um primeiro contato com o Arduino, aonde um LED ser ligado a placa em uma porta digital, e atravs do cdigo programado nele o LED piscar interruptamente, com um intervalo de alternao entre acender e apagar de 1 segundo. Nesse experimento sero utilizados os seguintes componentes: 1 LED, 1 resistor de 330 Ohm, 2 fios. Definio dos componentes: LED LED a sigla em ingls para Light Emitting Diode, ou Diodo Emissor de Luz. O led um diodo semicondutor (juno P-N) que quando energizado emite luz visvel. Obs: O led um componente que possui polaridade, portanto a sua perna maior deve ser ligada a alimentao e a perna menor ao terra (GND na placa Arduino) no caso de um led normal de 2 pernas, caso seja um led RGB, que possui 4 pernas, a maior ligada no terra. Resistor O resistor um dispositivo cujas principais funes so: dificultar a passagem da corrente eltrica e transformar energia eltrica em energia trmica por efeito joule. Entendemos a dificuldade que o resistor apresenta passagem da corrente eltrica como sendo resistncia eltrica. O material mais comum na fabricao do resistor o carbono. Para o resistor vlida a expresso:

6 Marisa Cavalcante e Eduardo Silva Damasceno ( marisac@pucsp.br )

Que relaciona a resistncia oferecida passagem da corrente eltrica com tenso e corrente eltrica. Devemos lembrar que a unidade da resistncia eltrica o ohm () relao entre a tenso e a corrente eltrica em ampre. Obs: Diferente do led o resistor no possui polaridade, portanto a ligao de suas pernas no segue alguma determinada ordem. Monte o circuito com base na figura a abaixo, e faa o upload do cdigo usando a IDE do Arduino. Este circuito foi desenhado em um software freeware Fritzing disponvel em http://fritzing.org/. Calculando o valor mnimo do resistor que deve ser associado: Suponha que para o led acender suporte uma tenso mxima da ordem de 2,0 Volts Considere ainda que a corrente mxima oferecida para as portas digitais de 20 mA VR+Vled=5,0 VR= 3,0 Volts Para i=20 mA VR=Ri 3/20*10-3 Rmin= 150 ohms

7 Marisa Cavalcante e Eduardo Silva Damasceno ( marisac@pucsp.br )

Cdigo: void setup() { pinMode(13, OUTPUT); } Void loop() { digitalWrite(13, HIGH); delay(1000); digitalWrite(13, LOW); delay(1000); }

Este cdigo tambm est disponvel em exemplos no IDE do Arduino veja na figura abaixo como obte-lo. Exemplo : Blink

8 Marisa Cavalcante e Eduardo Silva Damasceno ( marisac@pucsp.br )

Comando via teclado -_ Funo Serial.read()


Com o mesmo circuito anterior vamos enviar comandos para acender e apagar o led via teclado

Faa upolad do programa e abra o monitor serial. Digite o caracter desejado para o estado do led e tecle enter

Cdigo
int ledPin = 13; //define o pino em que o led est ligado char leitura; //define a variavel leitura que corresponde a uma letra o teclado //definido por char void setup() { pinMode(ledPin, OUTPUT); //define que o pino 13 ser uma saida Serial.begin(9600); } void loop() { leitura = Serial.read(); // a variavel leitura ser obtida atravs do teclado if (leitura == 'L') { digitalWrite(ledPin, LOW); } else if (leitura == 'H') { digitalWrite(ledPin, HIGH); } }

Adicione a este programa a linha de programao que permite imprimir no monitor serial o estado do pino 13 (dica defina uma nova varivel chamada estadodoled).
9 Marisa Cavalcante e Eduardo Silva Damasceno ( marisac@pucsp.br )