9
1 Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] ) O que é Arduino ? Arduino é uma plataforma de hardware livre, baseado em microprocessador de código aberto, uma placa física em código aberto baseada em um circuito de entradas/saídas simples, e linguagem de programação padrão, que é essencialmente C/C++, sendo uma plataforma completamente personalizável já que todo o seu projeto é aberto aos usuários. O objetivo da criação do Arduino é ter uma plataforma totalmente aberta, tanto hardware como software acessíveis, pois além de ter um custo baixo é uma plataforma flexível e de fácil utilização, tanto para profissionais como para interessados na área, visando fornecer uma alternativa para aqueles que não tem alcance a outros microcontroladores, que além do custo elevado e software prioritário, não podem ser personalizados e são mais difíceis de utilizar pois requerem um maior nível de conhecimento técnico. Uma das grandes vantagens do Arduino é o seu nível de personalização, como se trata de uma plataforma aberta, todo o projeto é disponibilizado aos seus usuários no site www.arduino.cc , assim caso o usuário queira ele pode montar o seu próprio Arduino e adicionar ou retirar funcionalidades de acordo com o seu projeto, o mesmo também pode ser feito com a sua IDE (software utilizado para programar o Arduino), que é de código 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.

lulu

Embed Size (px)

DESCRIPTION

arquivo arduina

Citation preview

Page 1: lulu

1

Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] )

O que é Arduino ?

Arduino é uma plataforma de hardware livre, baseado em microprocessador de código aberto, uma placa física em código aberto baseada em um circuito de entradas/saídas simples, e linguagem de programação padrão, que é essencialmente C/C++, sendo uma plataforma completamente personalizável já que todo o seu projeto é aberto aos usuários.

O objetivo da criação do Arduino é ter uma plataforma totalmente aberta, tanto hardware como software acessíveis, pois além de ter um custo baixo é uma plataforma flexível e de fácil utilização, tanto para profissionais como para interessados na área, visando fornecer uma alternativa para aqueles que não tem alcance a outros microcontroladores, que além do custo elevado e software prioritário, não podem ser personalizados e são mais difíceis de utilizar pois requerem um maior nível de conhecimento técnico.

Uma das grandes vantagens do Arduino é o seu nível de personalização, como se trata de uma plataforma aberta, todo o projeto é disponibilizado aos seus usuários no site www.arduino.cc, assim caso o usuário queira ele pode montar o seu próprio Arduino e adicionar ou retirar funcionalidades de acordo com o seu projeto, o mesmo também pode ser feito com a sua IDE (software utilizado para programar o Arduino), que é de código 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.

Page 2: lulu

2

Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] )

Descrição da placa Arduino

Os componentes mais básicos da placa Arduino são:

Entrada usb

Entrada de alimentação

Pino ICSP

Pinos de entrada analógica

Pinos digitais

Pinos de alimentação

Botão reset Descrição dos componentes básicos Entrada USB A entrada USB da placa Arduino é utilizada para realizar a comunicação entre o Arduino e o computador, através dessa comunicação são enviados os códigos referentes as ações que o Arduino executará, a entrada também é utilizada para o envio e recepção de informações do código em execução, que serão exibidos em um hiperterminal (monitor serial) e além dessas funções a entrada USB também fornece alimentação para a placa Arduino. O padrão do cabo utilizado é USB AB. Entrada de alimentação Caso seja necessário mais alimentação, ou caso haja necessidade da não utilização da alimentação através da entrada USB, a placa Arduino dispõe de uma entrada padrão para adaptadores AC-DC.

Page 3: lulu

3

Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] )

Pino ICSP Esse pino suporta comunicação 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 analógica A função principal dos pinos de entrada analógica para a maioria dos usuários de Arduino, é a leitura de sensores analógicos, como por exemplo, ldr, sensores de distância, sensores de temperatura, os pinos de entrada analógica fazem leituras em valores inteiros em um intervalo de 0-1023 ( conversão 10 bits). Pinos digitais Os pinos digitais são pinos de propósito geral de entrada(input) e saída(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 alimentação Como mais uma alternativa de alimentação para a placa Arduino, existe o pino VIN (voltage input), através dele e do pino GND a placa pode ser alimentada, ligando uma bateria ou pilhas através de um adaptador diretamente a esses dois pinos, porém cada modelo de Arduino requer um faixa de voltagem diferente, portanto antes usar o pino verifique qual a necessária para alimentar a sua placa corretamente. Botão reset Utilizado para dar um reset físico no microcontrolador, o botão reset era utilizado em algumas versões anteriores do Arduino como um procedimento antes de enviar um novo código para a placa.

Page 4: lulu

4

Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] )

Arduino IDE

O Arduino IDE (ambiente de desenvolvimento integrado ou Integrated Development Environment) é o software que nos possibilita escrever códigos e enviá-los para a placa Arduino, através dele é possível verificar quando e aonde há erros no código. O programa fornece ao usuário a opção de salvar o código, podendo assim administrar seus projetos. Também há a interface serial de comunicação, por onde o usuário pode enviar dados do seu projeto e visualizá-los na tela. Dentro do programa são disponibilizados exemplos prontos, desde os de nível básico até o nível avançado, assim o usuário pode ir subindo progressivamente conforme o conhecimento que vai adquirindo.

Page 5: lulu

5

Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] )

Programando na IDE

Para programar na IDE Arduino utilizaremos duas de suas funções principais, a primeira é o void setup(). Estabelece as configurações iniciais. Nela fazemos as configurações dos componentes e recursos que utilizaremos, por exemplo, para ligar um led, nesse caso o led atuará como um dispositivo de saída, vamos usar a porta digital 13 no exemplo, então dentro da função: Assim teremos por exemplo: pinMode(13, OUTPUT); caso o dispositivo seja de saída pinMode(13, INPUT); caso o dispositivo seja de entrada Ainda em void seteup; para iniciar uma comunicação serial, e criar a possibilidade de enviar os dados obtidos e visualizá-los em um hiper terminal, usamos a função Serial.begin(9600); em que o 9600 representa a velocidade dessa comunicação em bits por segundo, A segunda função void Loop(), nela estabelecemos o controle propriamente dito e a operação que vai”rodar” 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 variável 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 através das portas digitais da placa Arduino utilizaremos as seguintes funções: 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 saída, já que ela aceita dois valores HIGH e LOW, que podem ser entendidos como ligado e desligado (e na leitura de uma porta digital são 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 analógicas utilizaremos o seguinte comando: analogRead(13); A IDE Arduino pode ser baixada no seguinte endereço: http://arduino.googlecode.com/files/arduino-0022.zip

Page 6: lulu

6

Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] )

Experimento 1: Piscar um led- Blink

O experimento a seguir propõe um primeiro contato com o Arduino, aonde um LED será ligado a placa em uma porta digital, e através do código programado nele o LED piscará interruptamente, com um intervalo de alternação entre acender e apagar de 1 segundo. Nesse experimento serão utilizados os seguintes componentes: 1 LED, 1 resistor de 330 Ohm, 2 fios. Definição dos componentes: LED LED é a sigla em inglês para Light Emitting Diode, ou Diodo Emissor de Luz. O led é um diodo semicondutor (junção P-N) que quando energizado emite luz visível.

Obs: O led é um componente que possui polaridade, portanto a sua perna maior deve ser

ligada a alimentação 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 funções são: dificultar a passagem da corrente elétrica e transformar energia elétrica em energia térmica por efeito joule. Entendemos a dificuldade que o resistor apresenta à passagem da corrente elétrica como sendo resistência elétrica. O material mais comum na fabricação do resistor é o carbono. Para o resistor é válida a expressão:

Page 7: lulu

7

Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] )

Que relaciona a resistência oferecida à passagem da corrente elétrica com tensão e corrente elétrica. Devemos lembrar que a unidade da resistência elétrica é o ohm (Ω) relação entre a tensão e a corrente elétrica em ampère. Obs: Diferente do led o resistor não possui polaridade, portanto a ligação de suas pernas não segue alguma determinada ordem. Monte o circuito com base na figura a abaixo, e faça o upload do código usando a IDE do Arduino. Este circuito foi desenhado em um software freeware Fritzing disponível em http://fritzing.org/. Calculando o valor mínimo do resistor que deve ser associado: Suponha que para o led acender suporte uma tensão máxima da ordem de 2,0 Volts Considere ainda que a corrente máxima 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

Page 8: lulu

8

Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] )

Este código também está disponível em exemplos no IDE do Arduino veja na figura abaixo como obte-lo. Exemplo : Blink

Código:

void setup() {

pinMode(13, OUTPUT);

}

Void loop()

{

digitalWrite(13, HIGH);

delay(1000);

digitalWrite(13, LOW);

delay(1000);

}

Page 9: lulu

9

Marisa Cavalcante e Eduardo Silva Damasceno ( [email protected] )

Comando via teclado -_ Função Serial.read()

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

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

Código

Adicione a este programa a linha de programação que permite imprimir no monitor serial o estado do pino 13 (dica defina uma nova variável chamada

estadodoled).

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 através do teclado

if (leitura == 'L') {

digitalWrite(ledPin, LOW);

}

else if (leitura == 'H') {

digitalWrite(ledPin, HIGH);

}

}