prof. cleverson b. klettenberg - edubox de arduino_2017.pdf · apostila de arduino...

24
APOSTILA DE ARDUINO Prof. Cleverson B. Klettenberg [email protected] União da vitória, 2017

Upload: vocong

Post on 10-Nov-2018

226 views

Category:

Documents


1 download

TRANSCRIPT

APOSTILA DE ARDUINO

Prof. Cleverson B. Klettenberg

[email protected]

União da vitória, 2017

Apostila de [email protected]

INDICE

1. INTRODUÇÃO AO ARDUINO....................................................................................................31.1. O HARDWARE DO ARDUINO.............................................................................................31.1.1 A Família Arduino..............................................................................................................51.1.2 Shields................................................................................................................................6

1.2. O SOFTWARE DO ARDUINO...............................................................................................71.2.1. Serial Monitor...................................................................................................................9

2. NOÇÕES DE ELETRÔNICA......................................................................................................102.1. GRANDEZAS DIGITAIS E ANAlÓGICAS........................................................................102.2. CORRENTE, TENSÃO E RESISTÊNCIA...........................................................................10

3. COMPONENTES ELETRÔNICOS & ARDUINO.....................................................................123.1. LEDS......................................................................................................................................123.2. A PROTOBOARD (MATRIZ DE CONTATOS)...................................................................133.3. RESISTOR.............................................................................................................................143.3.1 Cálculo da Resistência.....................................................................................................143.3.2. Cores do Resistor............................................................................................................15

3.4. BOTÃO DE PRESSÃO.........................................................................................................163.5. POTENCIÔMETRO..............................................................................................................163.6. SENSOR LDR.......................................................................................................................173.7. SENSOR ULTRASÔNICO...................................................................................................183.8. DISPLAY DE CRISTAL LÍQUIDO - LCD...........................................................................20

2

Apostila de [email protected]

1. INTRODUÇÃO AO ARDUINO

O projeto Arduino começou no ano de 2005 com o objetivo de criar um dispositivo para

estudantes que oferecesse controle integrado de projetos de design e interação, e que fosse mais

econômico que os sistemas de criação de protótipos disponíveis até o momento.

O que chamamos hoje de Arduino (o microcontrolador) nasceu na cidade italiana de Ivrea.

Nesta mesma cidade nos séculos X e XI houve um outro Arduino (um nobre) que se auto

proclamou rei de toda a Itália, obviamente a coisa não funcionou e, como era comum na época, ele

foi morto pelos rivais. O fato é que em sua cidade natal ele ainda é muito lembrado, a avenida

principal da cidade se chama “Via Arduino” bem como muitos comércios locais.

Enquanto viviam lá, os integrantes do time que criou o Arduino (o microcontrolador),

depois do expediente iam tomar uma cerveja. Onde? No Bar Arduino. Assim o nome do Arduino

(o microcontrolador) é uma homenagem ao Arduino (o bar) que por sua vez era uma homenagem

ao outro Arduino (o nobre).

No site oficial da Arduino, encontramos a seguinte definição (traduzida): “Arduino é uma

plataforma open-source de prototipagem eletrônica com hardware e software flexíveis e fáceis de

usar, destinado a artistas, designers, hobbistas e qualquer pessoa interessada em criar objetos ou

ambientes interativos.”

A maior vantagem dessa plataforma de desenvolvimento sobre as demais é a sua facilidade

de sua utilização: pessoas que não são da área técnica podem, rapidamente, aprender o básico e

criar seus próprios projetos em um intervalo de tempo relativamente curto.

1.1. O HARDWARE DO ARDUINO

O hardware do Arduino é simples, porém muito eficiente. Ele é composto pelos seguintes

blocos:

3

Apostila de [email protected]

1 - Conector USB para o cabo tipo AB

2 - Botão de reset

3 - Pinos de entrada e saída digital e PWM

4 - LED verde de placa ligada

5 - LED laranja conectado ao pin13

6 - ATmega encarregado da comunicação com o computador

7 - LED TX (transmissor) e RX (receptor) da comunicação serial

8 - Porta ICSP para programação serial

9 - Microcontrolador ATmega 328, cérebro do Arduino

10 - Cristal de quartzo 16Mhz

11 - Regulador de voltagem

12 - Conector fêmea 2,1mm com centro positivo

13 - Pinos de voltagem e terra

14 - Entradas analógicas

4

Apostila de [email protected]

1.1.1 A Família Arduino

5

Apostila de [email protected]

1.1.2 Shields

Um shield é uma placa que permite expandir as funcionalidades originais do Arduino.

Alguns exemplos:

6

Apostila de [email protected]

1.2. O SOFTWARE DO ARDUINO

Quando tratamos de software na plataforma Arduino, podemos referir-nos ao ambiente de

desenvolvimento integrado do Arduino e o programa desenvolvido por nós para enviar para a

nossa placa.

Uma das grandes vantagens dessa plataforma está no seu ambiente de desenvolvimento,

que usa uma linguagem baseada no C/C++, linguagem bem difundida, usando uma estrutura

simples. Mesmo pessoas sem conhecimento algum em programação conseguem, com pouco

estudo, elaborar programas rapidamente.

7

Apostila de [email protected]

Experiência Blink

Nessa experiência iremos fazer o Arduino piscar um LED de um em um segundo.

8

Apostila de [email protected]

O programa :

int led = 13; //Existe um LED conectado no pino 13. Daremos um nome a este pino:void setup() { // Esta função "setup" executa uma vez quando a placa e ligada ou resetada pinMode(led, OUTPUT); // Configura o pino do led (digital) como saída}void loop() { // Função que se repete infinitamente quando a placa é ligada digitalWrite(led, HIGH); // Liga o LED (HIGH = nível lógico alto) delay(1000); // Espera um segundo digitalWrite(led, LOW); // Desliga o LED (LOW = nível lógico baixo) delay(1000);}

Exercícios

1. Desenvolva um semáforo para duas ruas usando leds.

1.2.1. Serial Monitor

A possibilidade de visualizar na tela do computador os dados coletados e processados pelo

Arduino é fundamental, visto que é um forma rápida e prática de visualizar esses dados. Para isso,

usamos o Serial Monitor.

O código fonte do monitor serial:

int dado;void setup(){ Serial.begin(9600); //Inicia porta serial e define a velocidade de transmissão}void loop(){ dado=analogRead(A1); //Lê um valor analógico Serial.print(“Valor lido: “); //escreve uma string Serial.println(dado); //escreve uma variável e quebra uma linha (println)}

Experiência:

Exibindo informações do potenciômetro no serial monitor.

9

Apostila de [email protected]

2. NOÇÕES DE ELETRÔNICA

2.1. GRANDEZAS DIGITAIS E ANALÓGICAS

Grandezas digitais são aquelas que não variam continuamente no tempo, mas sim em saltos

entre valores bem definidos. Um exemplo são os relógios digitais: apesar do tempo em si variar

continuamente, o visor do relógio mostra o tempo em saltos de um em um segundo. Um relógio

desse tipo nunca mostrará 12,5 segundos, pois, para ele, só existem 12 e 13 segundos. Qualquer

valor intermediário não está definido.

Grandezas analógicas são aquelas que variam continuamente dentro de uma faixa de

valores (0 a 1023). O velocímetro de um carro, por exemplo, pode ser considerado analógico, pois

o ponteiro gira continuamente conforme o automóvel acelera ou freia.

Os circuitos e equipamentos elétricos ditos digitais trabalham com apenas dois valores de

tensão definidos:

• Um nível lógico alto, que no caso do Arduino é 5V;

• Um nível lógico baixo, que no caso do Arduino é 0V.

2.2. CORRENTE, TENSÃO E RESISTÊNCIA

CORRENTE é um fluxo de cargas elétricas. Elétrons livres que se movem num fio de

cobre formam uma corrente elétrica.

10

Apostila de [email protected]

Quanto mais cargas passarem por este ponto, maior é a intensidade da corrente. Para medir

esta corrente a unidade usada é o ampère (A).

TENSÃO é a força com que a energia é empurrada para passar no condutor. Olhando a

figura da corrente, pensa-se que a velocidade desses elétrons é muito grande, porém isso é um

engano. É neste ponto que entra o conceito de tensão. Como um fluxo de água num encanamento,

a eletricidade precisa ser "empurrada" por uma força externa. A ação externa responsável por isso é

justamente a tensão. A tensão é dada em V (volts).

Conforme se aumenta a altura da caixa de água maior a sua pressão.

Uma tomada residencial que possui 110 volts não possui corrente se não houver um

aparelho ligada a ela, ou seja, tem tensão mas não corrente.

RESISTÊNCIA é a oposição a passagem da corrente causada ao atravessar o meio

condutor. Essa oposição recebe o nome de "resistência elétrica" e é medida em ohms.

A resistência determina a relação entre a causa e o efeito através de uma lei fundamental da

eletricidade a Lei de Ohm.

Seguindo a mesma analogia da caixa de água, se um cano estivesse parcialmente bloqueado

causaria resistência à passagem de água.

11

Apostila de [email protected]

3. COMPONENTES ELETRÔNICOS & ARDUINO

3.1. LEDS

O LED (Light Emitting Diode) é um diodo que emite luz quando energizado. Os LED s

apresentam muitas vantagens sobre as fontes de luz incandescentes como um consumo menor de

energia, maior tempo de vida, menor tamanho, grande durabilidade e confiabilidade.

Observe na figura que o anodo (+) normalmente possui uma perna mais comprida e tem o

formato do número 1 invertido. Invertê-los pode queimar o led. Normalmente estes leds possuem

3v,

Led RGB

Um LED RGB é um LED que incorpora em um mesmo encapsulamento três LED s, um

vermelho (Red), um verde (Green) e outro azul (Blue). Desta forma é possível formar milhares de

cores ajustando de maneira individual cada cor.

12

Apostila de [email protected]

A intensidade da cor pode variar de 0 a 253 usando uma porta digital.

Exercício

a) desenvolva um projeto que faça o led ascender e apagar na sequência de cores:

vermelho, verde, azul, branco, amarelo, rosa.

3.2. A PROTOBOARD (MATRIZ DE CONTATOS)

Quando trabalhamos com circuitos elétricos em laboratório, muitas vezes usamos a

protoboard. Ele tem o intuito de simplificar o processo de estudo e pesquisa de circuitos elétricos e

eletrônicos. Sendo uma matriz de contatos reutilizável, evitamos a necessidade de confeccionar

uma placa de circuito impresso e possibilita a fácil alteração do circuito, deixando ele flexível.

A imagem a seguir mostra como está ordenado os barramentos.

13

Apostila de [email protected]

3.3. RESISTOR

Componente eletrônico que dificulta a passagem de corrente elétrica. Esta dificuldade de

passagem de corrente é denominada resistência e é medida em ohms. Cada componente e

equipamento eletrônico possui uma corrente máxima de funcionamento, por isso, o uso de

resistores é essencial. Ele terá o papel de limitar a corrente máxima do circuito.

Obs.: Unidades Ohms podem ser nas especificações de resistência os múltiplos do ohm, no

caso o quilohm (kΩ) e o megohm (MΩ). Assim, em lugar de falarmos que um resistor tem 4700

ohms é comum dizermos 4,7k ou 1.000.000 = 1M.

3.3.1 Cálculo da Resistência

A Lei de Ohm afirma que a corrente (I) que circula através de um dado circuito é

diretamente proporcional à voltagem aplicada (V), e inversamente proporcional à resistência (R)

da mesma. Ou seja:

//para quando temos Tensão V, Resistência R e Corrente IV = R * IR = V / II = V / R

Se precisarmos ascender um LED verde, que é alimentado com tensão de 2,2V e corrente

de 20mA através do Arduino, precisaremos de um resistor, como já vimos, já que o Arduino só

consegue fornecer ou 0V ou 5V. Colocaremos o resistor em série com o LED, e com isso podemos

concluir que:

14

Apostila de [email protected]

• A tensão total de entrada é 5V

• A corrente total é de 20mA, ou 0,020A

• Precisamos colocar uma tensão de 2,2V no LED

V = 5V – 2,2V // a resistência deverá ser sobre a diferença entre o que é entregue e o que é necessárioV = 2,8V

//aplicando a lei de Ohm

R = V / IR = 2,8 / 0,020R = 140Ω

A resistência deve ser de 140Ω.

Exercícios

a) Com 4 pilhas em série de 1,5v cada, para ligar um led de 3v e 20mA, calcule a

resistência necessária.

b) Com uma bateria de 9v, para ligar um led de 3v e 0,03A, calcule a resistência necessária.

3.3.2. Cores do Resistor

15

Apostila de [email protected]

3.4. BOTÃO DE PRESSÃO

Experiência Push Button

Passo 1: reproduza o esquema acima.

Passo 2: calcule a resistência necessária para o LED de 3v sendo que o arduino entrega 5V

a 20mA.

Passo 3: desenvolva o programa

Obs.: O capacitor de 1K ligado ao botão elimina ruídos para a entrada digital (0v a 5v).

3.5. POTENCIÔMETRO

Um potenciômetro é um componente que possui resistência elétrica ajustável. Geralmente,

é um resistor de três terminais onde a conexão central é deslizante e manipulável. Se todos os três

terminais são usados, ele atua como um divisor de tensão.

16

Apostila de [email protected]

Exercício

a) Controle a rotação de um motor utilizando um potenciômetro. Use um multímetro para

analisar a voltagem. Não precisa usar arduino.

b) Faça a leitura por uma porta analógica do arduino do sinal vindo de um potenciômetro e

por uma porta digital controle o brilho de um LED RGB.

potblu=analogRead(A2); //lê a porta analógica A2 valores que vão de 0 a 1023 analogWrite(13,map(potred,0,1023,0,255)); //escreve valores analógicos na porta digital. Os valores serão

//mapeados de 0-1023 para 0-255

3.6. SENSOR LDR

O LDR (Light-Dependent Resistor), ou resistor dependente de luz. Quanto maior a luz

incidente nesse componente, menor será sua resistência.

O LDR é constituído de um semicondutor de alta resistência, que ao receber uma grande

quantidade de fótons oriundos da luz incidente, ele absorve elétrons que melhoram sua

condutibilidade, reduzindo assim sua resistência.

Dessa forma, esse semicondutor pode assumir resistências na ordem de mega Ohm no

escuro e resistência na ordem de poucas centenas quando exposto a luz.

Numa utilização normal, o LDR é montado num circuito onde a resistência é convertida

para tensão. A forma mais simples de o fazer é através de um circuito divisor de tensão. Exemplo:

17

Apostila de [email protected]

Exercício

a) Desenvolver um circuito que pisca um led. A velocidade em que o led pista será baseado

na intensidade da luz ambiente.

3.7. SENSOR ULTRASÔNICO

O sensor ultrassônico é amplamente utilizado em aplicações onde se deseja medir

distâncias ou evitar colisões, como na robótica móvel e de reabilitação.

Tudo começa pela emissão de um pequeno pulso sonoro de alta frequência que se

propagará na velocidade do som no meio em questão. Quando este pulso atingir um objeto, um

sinal de eco será refletido para o sensor. A distância entre o sensor e o objeto pode então ser

calculada caso saibamos o tempo entre a emissão e a recepção do sinal.

18

Apostila de [email protected]

Este sensor possui 4 pinos:

• Vcc – Deve ser conectado a um pino 5V do Arduino;

• Trig – Deve ser conectado a um pino digital configurado como saída;

• Echo – Deve ser conectado a um pino digital configurado como entrada;

• Gnd – Deve ser conectado a um pino GND do Arduino.

Obs.: Na plataforma TINKERCAD, o sensor tem 3 pinos. O pino Trig (trigger) e Echo é

unido em um único SIG usado para saída e entrada.

Experiência : Piscar led se algo estiver a menos que 50 cm.

19

Apostila de [email protected]

int led = 2;int sensor = 4;long cm,data;

void setup() { pinMode(led, OUTPUT); Serial.begin(9600);}

long microsecondsToCentimeters(long microseconds) { return microseconds / 29 / 2;}

void loop() { pinMode(sensor, OUTPUT); //configura o pino do sensor como saida para trigger digitalWrite(sensor, LOW); //desliga o sensor delayMicroseconds(2); //aguarda 0,002 segundos digitalWrite(sensor, HIGH); //liga o sensor para uma trigger delayMicroseconds(5); //aguarda 0,005 segundos digitalWrite(sensor, LOW); //desliga a trigger pinMode(sensor, INPUT); //configura o pino do sensor como entrada data= pulseIn(sensor, HIGH); //lê o pulso do sensor cm = microsecondsToCentimeters(data); //transforma microsegundos para centimetros Serial.print("Dis. "); Serial.println(cm); if(cm<50){ digitalWrite(led, HIGH); delay(500); digitalWrite(led, LOW); delay(500); } }

3.8. DISPLAY DE CRISTAL LÍQUIDO - LCD

O LCD (Display de Cristal Líquido) é um dispositivo gráfico utilizado na criação de

interface com o usuário. A formação de caracteres e imagens ocorre devido ao fato do cristal

líquido, naturalmente transparente, se tornar opaco ao receber uma carga elétrica, impedindo a

passagem de luz.

Para controlar o display LCD seria algo bastante complicado se não fosse sua biblioteca de

funções. Graças a ela não precisamos de detalhes muito grande referente aos 16 pinos do LCD. Os

Pinos são:

20

Apostila de [email protected]

Vss Ground -

Vdd Supply +

VO Divisor de Tensão (potenciômetro) para controlar o contraste

RS Register Select (controle de instrução)

R/W Read e Write MPU module

E Enable (habilita para escrita)

DB0 a DB7 Bit X(0-7) do dado a ser lido ou escrito no LCD

Experiência: Controlando Display LCD

21

Apostila de [email protected]

#include <LiquidCrystal.h> //include the library code

LiquidCrystal lcd(7,8,9,10,11,12); //initialize the library with the numbers of the interface pins

void setup() { lcd.begin(16,2); //set up the LCD's number of columns and rows: }

void loop() { lcd.setCursor(0,0); lcd.print("Running "); delay(80); lcd.setCursor(0,0); lcd.print("Running."); delay(80); lcd.setCursor(0,0); lcd.print("Running.."); delay(80); lcd.setCursor(0,0); lcd.print("Running..."); delay(80); lcd.setCursor(0,1); lcd.print(millis());}

3.9. SERVO MOTOR

O Servomotor é uma máquina eletromecânica, que apresenta movimento proporcional a um

comando ou sinal de controle. O controle da posição desejada é feito sobre um encoder ou

resolver. Normalmente seu rotação é de 180 a 360 graus em alguns modelos.

3.10. SENSOR DE TEMPERATURA TMP36

O Sensor de temperatura retorna valores analógicos de 0 a 1023 que devem ser

transformados em voltagem e posteriormente em graus Celsius ou Fahrenheit.

Imaginemos um sistema de automação residencial onde uma janela ou teto se abre e fecha

conforme a temperatura ambiente.

22

Apostila de [email protected]

#include <Servo.h>;

Servo myservo;float sensor;

void setup(){ myservo.attach(3); pinMode(A1,INPUT); Serial.begin(9600);}

void loop(){ sensor=analogRead(A2); //lê um valor de 0 a 1023 que o sensor retorna sensor=sensor*0.004882814; //transforma valores de 0 a 1023 em voltagem de 0 a 5 sensor = (sensor - 0.5) * 100.0; //converte voltagem em graus celcius Serial.print(sensor); Serial.println(" C"); if(sensor>24){ myservo.write(200); }else{ myservo.write(-200); } delay(1000); // Wait for 1000 millisecond(s)}

23

Apostila de [email protected]

3.11. RELES

ktestekjaçdfj

24