apostila de experiências do mini curso de arduino fatec sorocaba

Upload: victor-morad

Post on 11-Feb-2018

228 views

Category:

Documents


3 download

TRANSCRIPT

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    1/56

    FACULDADE DE TECNOLOGIA DE SOROCABA

    ELETRNICA AUTOMOTIVA

    Apostila de Experincias para Mini Curso deArduino

    Dr. Jos Luiz Antunes de AlmeidaTecnlogo Maurcio Ribeiro Maciel

    Sorocaba

    2015

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    2/56

    1

    NDICE

    1. Download e Instalao da IDE Arduino............................................................ 2

    2. Experincia 01 - Pisca LED................................................................................ 2

    3. Experincia 02 - Acionamento de LED com Boto........................................ 10

    4. Experincia 03 - Monitoramento do sinal analgico via serial..................... 18

    5. Experincia 04 - Leitura Analgica com variao de Freqncia................ 23

    6. Experincia 05 - Variando o LED..................................................................... 28

    7. Experincia 06 - Controle do brilho de um LED com Potencimetro........... 31

    8. Experincia 07 - Display 7 Segmentos............................................................ 36

    9. Experincia 08 - Contador................................................................................ 39

    10. Experincia 09 - Controle utilizao de um Display LCD............................... 48

    11.Programas Finais............................................................................................... 55

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    3/56

    2

    1. Download e Instalao da IDE Arduino

    Para instalar o IDE do Arduino, entre na pgina www.arduino.cce clique em

    Download. Na pgina seguinte, selecione qual o sistema operacional desejado e

    instale diretamente o IDE ou baixe o arquivo compactado e salve-o em uma pasta do

    seu computador. A Figura1 mostra a pgina de download.

    Figura 1. Pgina de download do IDE do ArduinoFonte: www.arduino.cc

    2. Experincia01 - Pisca LED

    Existe um programa que j vem normalmente gravado no Arduino e que faz

    um LED conectado ao pino 13 piscar. Ser feito o mesmo programa, mas explicado

    passo a passo e com o LED conectado a outra sada digital, o pino 10.

    http://www.arduino.cc/http://www.arduino.cc/http://www.arduino.cc/
  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    4/56

    3

    2.1. O Hardware

    Com o software gratuito Fritzing, disponvel na pgina

    http://www.fritzing.org, possvel desenhar os esquemas de ligao do Arduino. A

    Figura2 ilustra o hardware do programa que ser elaborado.

    No esquema da Figura 2, observe as ligaes dos fios nos pinos 10 (sada

    digital, feita com fio vermelho) e massa (GND, feita com fio preto).

    O LED tem um terminal mais longo que o outro, que seu terminal de anodo.

    Como os LEDs possuem limite de corrente, foi adicionado um resistor de 220 , em

    srie com o LED da Figura 2. Isso tambm garante a limitao de corrente de sadado pino digital do Arduino.

    Figura 2. Esquema de ligao do LED para o primeiro exemploFonte. Desenhado com o software Fritzing.

    2.2. O Software

    Para editar o programa, execute o aplicativo Arduino. Ser aberta uma pgina

    como a da Figura 3, que um modelo (template) do arquivo que ser criado para o

    programa.

    http://www.fritzing.org/http://www.fritzing.org/http://www.fritzing.org/
  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    5/56

    4

    Os programas no Arduino possuem dois loops,respectivamente o loop de

    setup, onde so feitas vrias definies e um loop de execuo, que ser

    executado indefinidamente quando o programa for acionado.

    A primeira providncia salvar o programa com um nome mais significativo,

    relacionado com a ao executada. Neste caso, escolhemos o nome Pisca_LED e

    selecionamos Arquivo/Salvar como... e salvamos o programa com o nome

    escolhido.

    Verifique que aps ter salvado o arquivo, foi criada uma pasta com o nome do

    projeto e que contm internamente o arquivo Pisca_LED.ino. Para criar o

    programa, digite o texto contido na Figura 4.

    Na linguagem do Arduino, assim como em outras linguagens, o contedo

    escrito aps duas barras inclinadas (//) considerado comentrio e no

    compilado. Assim, as duas primeiras linhas poderiam at ser suprimidas. Isso,

    entretanto, no conveniente. bom inserir um cabealho indicando o nome do

    arquivo criado e qual o resultado quando esse arquivo for executado.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    6/56

    5

    Figura 3. Template para a elaborao do programa.

    Antes do loopde setup, definida uma constante inteira, chamada LED,

    que passa a ser um apelido para o pino 10. Assim, durante o programa, no

    necessrio ficar lembrando a todo instante em que pino est o LED. Alm disso, se

    for decidido trocar o pino de conexo do LED, isso poder ser feito apenas nessa

    definio, mantendo-se o restante do programa intacto.

    Dentro do loop de setup feita a definio como sada do pino onde o LED

    est conectado. Isso sempre necessrio, uma vez que esse pino digital poderia ser

    utilizado de outra maneira, por exemplo, como entrada. Para tanto, utilizada a

    funo pinMode, com parmetros LED (o pino e questo) e OUTPUT (indicando que

    esse pino ser sada).

    Observe a palavra void antes do setup. Isso significa que esse loop no

    retorna qualquer valor. (void pode ser traduzido como vazio, sem valor).

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    7/56

    6

    Figura 4. O programa Pisca_LED

    Tambm interessante observar a necessidade de concluir uma linha de

    cdigo com ponto e vrgula ( ; ) para indicar o fato ao compilador. Na sequncia

    funo pinMode so colocadas duas barras inclinadas e acrescentado um

    comentrio explicando o que faz aquela linha de cdigo.

    No loop de execuo, chamado simplesmente de loop foi colocada a

    palavra void com o mesmo significado anteriormente explicado. Dentro do loop( )

    colocado o programa que ser executado indefinidamente.

    Na primeira linha colocada a funo digitalWrite(LED,HIGH) que far o

    LED acender, pois escrever um nvel lgico 1 (HIGH), ou seja colocar 5 V no

    pino 10 (LED) fazendo o LED acender.

    A seguir, chamada uma funo de atraso, disponvel na biblioteca docompilador, chamada delay(N), em que N um nmero inteiro. O resultado que

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    8/56

    7

    ser dado um atraso de N milissegundos (ms) no programa. O comentrio explica

    que o LED permanecer aceso durante esse tempo da rotina de atraso.

    Na sequncia, novamente executada uma funo digitalWrite, mas agora

    com os parmetros LED e LOW, que significa que ser escrito um nvel lgico 0

    (LOW), ou seja, o pino 10 ser colocado terra, apagando o LED. Uma nova

    chamada funo delay( ), parametrizada com 1000, far o LED permanecer

    apagado por 1000 ms = 1 s.

    2.3. Executando o programa

    Feitas as ligaes fsicas e escrito o programa, ele deve ser compilado para

    gera o arquivo executvel que ser descarregado pelo bootloader do Arduino.

    Quando o Arduino conectado ao PC gerada uma porta serial virtual, no

    caso do PC utilizado para gerar este texto, a PORTA COM5, conforme pode ser

    visto na Figura 5, no Gerenciador de Dispositivos do Windows. No menu

    ferramentas/Portas do IDE do Arduino possvel confirmar se foi atribuda a porta

    correta, conforme se v na Figura 6.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    9/56

    8

    Figura 5. Gerenciador de dispositivos do Windows

    Figura 6. Confirmao da Porta Serial de Conexo do Arduino

    A seguir, o programa escrito deve ser compilado, selecionando-se Verificar /

    Compilar, no menu Sketch. Pode-se usar o atalho Ctrl + R, ou seja,

    pressionando-se simultaneamente a tecla CTRL e a tecla R.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    10/56

    9

    Terminada a compilao, pode-se seguir a gravao do programa no

    dispositivo. Com o Arduino conectado porta serial virtual criada, pelo menu

    Arquivo/Carregar, ou mediante o atalho Ctrl + U, pode-e iniciar o upload do

    programa para o dispositivo da placa. Isso concludo, o programa passar a ser

    executado, piscando o LED na cadncia selecionada.

    Figura 7. Programa sendo Verificado e Compilado

    Como modificao sugere-se conectar o LED a outro pino do Arduino e

    selecionar outra cadncia para pisc-lo. Experimente essas modificaes e a cada

    uma delas, faa o upload do programa novamente.

    Indicao do

    progresso de

    Compilao

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    11/56

    10

    3. Experincia 02 - Acionamento de LED com Boto

    Um boto proporciona um contato sem reteno. Esse boto, com um pull -

    down por meio de um resistor, garante um nvel lgico zero em uma entrada digital

    do Arduino. Esse valor, lido pelo Arduino garante que um LED fique apagado.

    3.1. Uma primeira verso

    Ao ser pressionado o boto, h uma conexo momentnea com a

    alimentao impondo mesma entrada digital do Arduino um nvel lgico um. Esse

    valor, lido pelo Arduino resulta na ligao do LED que acende.

    O nico inconveniente que, por no ter reteno, o boto deve ficar

    permanentemente acionado para garantir o acendimento do LED. Liberado o boto o

    LED apaga.

    3.2. O Hardware

    A Figura 8 mostra o esquema eltrico do hardware a ser utilizado.

    Figura 8. Esquema Eltrico Liga_LEDFonte: Desenhado com o software Fritzing.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    12/56

    11

    No acionado, o boto representa uma chave aberta que no conecta

    nenhuma tenso externa ao pino 7 do Arduino. O resistor de pull -down de 10 k

    garante o nvel lgico zero no pino 7 quando a chave est desligada. Estando

    pressionado, o boto conecta a fonte de 5 V ao pino 7.

    O programa dever ler o pino 7 e quando ele estiver em nvel lgico 0, o

    LED dever ser apagado. Estando acionado o boto o pino 7 ficar com nvel lgico

    1, que ao ser lido peloprograma, far o LED ser ligado.

    A Figura 9 mostra o desenho do Arduino e do protoboard do shield, com as

    ligaes do esquema eltrico da Figura 8.

    Figura 9. Ligaes do Arduino para o programa Liga_LEDFonte: Desenhado com o software Fritzing.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    13/56

    12

    3.3. O Software

    Para editar o programa, execute o aplicativo Arduino. Ser aberta a pginacomo modelo (template) do arquivo que ser criado para o programa. Salve o novo

    programa com o nome Liga_LED. A Figura 10 mostra o programa j editado. Copie

    o programa no modelo aberto.

    Inicialmente so definidas as constantes relativas aos pinos que sero

    utilizados: LED (pino 10) e BOTAO (pino 7 ). tambm criada uma varivel

    chamada estado, que ir armazenar o estado do boto, ou seja, se pressionado(estado = 1) ou, se liberado (estado = 0). No setup o pino do LED definido como

    sada e o pino do BOTAO como entrada.

    No loop a situao do BOTAO lida e memorizada na varivel estado. Ela

    testado com uma instruo if. Se aquilo que estiver entre parnteses no if for

    verdadeiro, a instruo que se segue entre chaves ser executada. Caso contrrio, o

    programa desvia para as instrues contidas dentro das chaves do else.

    Se o boto estiver pressionado, o valor de estado ser 1, ou seja, o nvel

    lgico do pino 7 ser 1, o que corresponde a ter sido aplicada uma tenso de 5 V

    nesse pino. Nessa condio o comando entre chaves faz o LED acender, pois

    escrito um nvel lgico 1 (HIGH) no pino 10.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    14/56

    13

    Figura 10. O Programa Liga_LED

    Se o boto no estiver pressionado, ou seja, liberado, o comando entre as

    chaves do else ir apagar o LED.

    O inconveniente nesse programa que o LED apagar se o boto parar de

    ser pressionado. O programa a seguir modifica o programa original de modo a

    manter o LED aceso se o boto for pressionado e apaga o LED se o boto vier a ser

    pressionado novamente.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    15/56

    14

    3.4. Uma segunda verso

    A Figura 11 uma verso modificada do programa anterior. Foi criada uma

    varivel flag que ir armazenar o estado em que o LED deve ficar. Se o boto tiver

    sido pressionado, a varivel flag ter seu valor invertido, indicando que se o LED

    estiver aceso ele dever ser apagado e, caso contrrio, se o LED estiver apagado,

    ele dever ser aceso.

    O loop de setup no foi modificado, pois o circuito fsico no foi alterado. No

    loop de execuo, o boto lido e se estiver pressionado, a varivel flag ser

    complementada para inverter o estado do LED.

    Figura 11. Programa Liga_LED_0A

    Esse programa tambm tem problemas de funcionamento. Como o loop

    executado muito rapidamente, o tempo que ficamos pressionando o boto permite

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    16/56

    15

    que esse seja lido muitas vezes, pois o Arduino trabalha com frequncia de 16 MHz,

    o que, pela sua arquitetura, resulta em executar cerca de 16 milhes de instrues

    por segundo. Assim, como a varivel que comanda o LED invertida cada vez que

    se verifica que o boto est pressionado, ela modificada muitas vezes, enquanto

    estivermos pressionando o boto. Ocasionalmente, sem que isso esteja no controle

    do operador, possvel que ao retirar a presso no boto, o LED fique em algum

    estado que no o que se esperava.

    Compile o programa, faa o upload para o Arduino e verifique por si mesmo

    que o funcionamento est sujeito a falhas.

    3.5. Uma terceira verso

    Para corrigir o programa necessria a criao de uma nova varivel que

    armazenar o estado anterior do boto, alterando-a apenas quando o boto for

    pressionado e atualizando o estado atual do boto. O programa das Figuras 5a e 5b

    corrige o problema anteriormente verificado.

    Foi criada mais uma varivel que armazenar o estado antigo do boto.

    Dessa forma, quando o boto for pressionado pela primeira vez, o LED ter seu

    estado modificado e a varivel estado ser atualizada com o valor da varivel

    estado_antigo, ficando ambas iguais. Como no comando if testado se houve

    variao das variveis, ou seja, testado se o boto foi pressionado e o estado

    anterior era de boto no pressionado, executa-se a alterao do estado do LEDapenas quando o boto for pressionado. Mesmo que se demore para retirar o dedo

    do boto, o estado do LED s ser alterado uma vez a cada presso no boto.

    No programa, observe que tanto a varivel estado quanto a varivel

    estado_antigo so inicializadas com zero.

    No loop, o boto lido constantemente e testado se ele apresenta um

    estado high, ou seja, se o boto est pressionado e seu estado comparado com

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    17/56

    16

    o estado_antigo. Quando o boto for pressionado pela primeira vez, a varivel

    estado ser high e a varivel estado_antigo continuar em low, as dentro do

    if, a varivel flag ser complementada, para mudar o estado do LED. Na

    sequncia, a varivel estado_antigo ser atualizada para high (o valor da varivel

    estado no momento), preparando para a prxima comparao.

    A varivel flag testada para definir o estado do LED. Esse estado ser

    low (LED apagado) na primeira passagem, mas mudar medida que o boto for

    sendo pressionado.

    Figura 12. Programa Liga_LED_0B

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    18/56

    17

    Na prxima vez em que loop for executado, o estado das variveis estado

    e estado_antigo sero iguais e a varivel flag no ser modificada. Isso

    permanecer at que o boto seja liberado, a execuo passe novamente pelo if

    com ambas as variveis em low e, aps ser sido o boto novamente pressionado,

    quando a varivel flag voltar a ser modificada dentro do if.

    Outro modo de usar esse programa , controlando o acionamento de algum

    circuito de potencia, por exemplo: motor de porto automtico, motor de elevador,

    acionamento de lmpadas, acionamento temporizado de irrigadores, entre outros.

    As sadas do Arduino tem um limite de corrente de 40mA(mileampere), ou

    seja, se o circuito ligado ao pino de sada do Arduino consumir mais do que os 40mA

    de corrente, a respectiva porta do Arduino queimar. Ento, para que possa ser feito

    o controle de algum circuito de potncia, necessrio o uso de transistores e/ou

    rels para chaveamento.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    19/56

    18

    4. Experincia 03 - Monitoramento do sinal analgico via serial

    O Arduino Uno possui 06 portas de entrada analgica nas quais, pode-se

    efetuar a leitura de sinais de 0 a 5volts. Ele trabalha com um conversor analgico-

    digital com preciso de 10bits, e no retorna exatamente o valor de tenso lido por

    sua entrada. O valor lido varia de 0 a 1023, onde 0 equivale a 0Volts e, 1023 o

    valor mximo de tenso de 5Volts.

    Na prtica, possvel fazer um controle de um processo. Por exemplo, um

    controle de nvel, controle de temperatura, de luminosidade, de umidade etc.

    possvel efetuar diversos tipos de controle desde que os sensores utilizados

    forneam como resposta um sinal analgico de tenso.

    Um potencimetro ser usado para variar a tenso na porta analgica do

    Arduino. Ele um dispositivo eletromecnico que possui um resistor de valor fixo

    sobre o qual se move um contato deslizante, fazendo a resistncia variar.

    Normalmente possui 3 terminais: VCC, GND e sinal (analgico).

    Ao girar o potencimetro, o programa efetua a leitura do sinal aplicado no pino

    A0 e, envia esse valor lido via serial para o computador. Para visualizar o valor da

    leitura ser utilizada a funo Monitor Serial, que pode ser executada a partir da IDE

    do Arduino.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    20/56

    19

    4.1. O Hardware

    A Figura 13 mostra o esquema eltrico do hardware a ser utilizado.

    Figura 13. Esquema eltrico da experincia Leitura de Sinal Analgico.Fonte: desenhado com o software Fritzing.

    A Figura 14 ilustra como deve ser feita as ligaes do hardware a ser

    utilizado.

    Figura 14. Esquema eltrico do hardwareFonte: Desenhado com o software Fritzing.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    21/56

    20

    4.2. O Software

    Para editar o programa, execute o aplicativo Arduino. Ser aberta a pgina

    como modelo (template) do arquivo que ser criado para o programa. Salve o novo

    programa com o nome Leitura_de_Sinal_Analogico. A Figura 15 mostra o programa

    j editado. Copie o programa no modelo aberto.

    No inicio ser atribudo o nome Sinal ao pino A0 que ser usado para

    conexo do sinal do potencimetro, esse pino no precisa ser configurado como

    entrada, o Arduino faz isso automaticamente. Para armazenar o valor lido ser

    criada uma varivel chamada Valor.

    Dentro da funo void setup utilizaremos apenas uma instruo Serial.begin

    (9600); . Essa instruo inicializa a comunicao serial do Computador como

    Arduino.

    Dentro da funo void loop, a varivel Valor preenchida com o valor lido

    no pino A0 que ser entre 0 e 1023.

    Agora ser usada a instruo Serial.print(frase); para enviar uma palavra

    ou um frase atravs da serial, quando for necessrio o envio de uma varivel pela

    serial usaremos a mesma instruo, porm dentro o parnteses no ser colocado

    as aspas, ficando ento dessa maneira, Serial.print(varivel); ao adicionar ln no

    final da instruo, a prxima mensagem enviada pela serial ser visualizada na linha

    subseqente.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    22/56

    21

    Figura 15. Programa editado

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    23/56

    22

    Figura 16. Monitor Serial

    Compile o programa e faa o upload para a placa do Arduino observe seufuncionamento. A Figura 04 mostra a tela Monitor Serial com o programa rodando.

    Corrija ou faa as modificaes que julgar interessantes.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    24/56

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    25/56

    24

    O potencimetro atua como um divisor de tenso. A tenso no pino central do

    potencimetro poder varia de 0 V a 5 V. Esse valor ser lido pelo programa do

    Arduino, mediante a instruo analogRead(pino) e servir de parmetro para a

    instruo delay(varivel) que fornecer um atraso que poder variar de 0 at um

    valor mximo de 1023 ms. Desse modo, o LED piscar com uma frequncia que

    depender do valor analgico conectado entrada.

    A Figura 18 mostra o desenho do Arduino e do protoboard do shield, com

    as ligaes do esquema eltrico da Figura 17.

    Figura 18. Ligaes do Arduino para o programa POT_LEDFonte: Desenhado com o software Fritzing

    5.3. O Software

    Para editar o programa, execute o aplicativo Arduino. Ser aberta a pgina

    como modelo (template) do arquivo que ser criado para o programa. Salve o novo

    programa com o nome POT_LED.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    26/56

    25

    A Figura 3 mostra o programa j editado. Copie o programa no modelo

    aberto. Inicialmente so definidas as constantes relativas aos pinos que sero

    utilizados: LED (pino 10) e POT (pino A0). tambm criada uma varivel chamada

    volt que ir armazenar o valor da tenso do terminal central do potencimetro

    transformado em valor digital.

    Figura 19. O programa POT_LED

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    27/56

    26

    No setup definido que o pino de conexo do LED ser sada. No h

    necessidade de configurar o pino de conexo do potencimetro como entrada. Isso

    feito automaticamente.

    No loop principal, valor da tenso do potencimetro lido e convertido em

    um valor digital, sendo armazenado na varivel volt.

    O LED aceso e assim mantido por um intervalo que depender da tenso

    lida do potencimetro, pois esse valor servir de parmetro para a instruo

    delay(val) que seguir.

    Terminado o intervalo de tempo em que o LED ficar aceso, esse apagado,

    assim permanecendo pelo mesmo intervalo de tempo em que ficou aceso, definindo

    assim uma onda quadrada cuja frequncia depender do valor lido do

    potencimetro.

    Compile o programa, faa o upload para o Arduino e verifique por si mesmo o

    funcionamento alterando a posio do eixo do potencimetro. O LED ficar piscandoe esse piscar pode ser alterado mediante alterao do cursor do potencimetro.

    5.4. Uma segunda verso

    Em vez do potencimetro para fornecer uma valor de tenso varivel para a

    entrada analgica, pode-se usar um LDR (light dependente resistor), que, como o

    prprio nome deixa transparecer, um resistor cuja resistncia tem um valor quedepende da quantidade de luz incidente.

    A Figura 20 mostra a modificao efetuada no circuito. Um LDR, cuja

    resistncia varia entre aproximadamente 3,5k e 70k permite que a tenso na

    entrada analgica varie o suficiente para se perceber que o LED muda a frequncia

    de acendimento.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    28/56

    27

    Figura 20. circuito com LDRFonte: Desenhado com o software Fritzing

    Com o LDR sem obstruo o Arduino recebe aproximadamente 4 V, pois a

    resistncia do LDR baixa, e com obstruo, essa tenso cai para cerca de 0,3 V.

    Com isso, sem obstruo o LED ficar piscando com frequncia baixa, aumentando-

    a progressivamente, medida em que a obstruo aumentar. Monte o circuito

    modificado e verifique por si mesmo o funcionamento.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    29/56

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    30/56

    29

    6.1. O Hardware

    Figura 2 Ligaes do Arduino para o projeto Variando_LED

    Figura 22. Ligaes do Arduino para o projeto Variando_LEDFonte: Desenhado com o software Fritzing

    6.2. O Software

    Para editar o programa, execute o aplicativo Arduino. Ser aberta a pgina

    como modelo (template) do arquivo que ser criado para o programa. Salve o novo

    programa com o nome Variando_LED.

    A Figura 23 mostra o programa j editado. Copie o programa no modelo

    aberto.A varivel medio ir definir qual a intensidade da luz emitida pelo LED, uma

    vez que ser usada como parmetro para a instruo analogWrite( ).

    A varivel medio inicializada com zero. Dentro do loop existem dois

    loops for. No primeiro deles, a varivel medio incrementada de 1 em cada

    passagem e ao LED imposta uma tenso como aquela da Figura 1, em que o valor

    mdio varia de 0 V a 5 V. Assim, o LED vai progressivamente aumentando seu

    brilho.

    Quando a varivel medio atinge o mximo (255 em oito bits), o LED

    mantido aceso com brilho mximo por um intervalo de tempo (500 ms no caso doprograma).

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    31/56

    30

    No segundo loop for, a varivel mdio decrementada de 1 em cada

    passagem e ao LED imposta uma tenso como aquela da Figura 1, em que o valor

    mdio varia de 5 V a 0 V. Assim, o LED vai progressivamente diminuindo seu brilho.

    Quando a varivel medio atinge o mnimo (0), o LED mantido apagado por um

    intervalo de tempo (500 ms no caso do programa).

    Figura 23. O programa Variando_LED

    Compile o programa e faa o upload para a placa do Arduino observe seu

    funcionamento. Corrija ou faa as modificaes que julgar interessantes.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    32/56

    31

    7. Experincia 06 - Controle do brilho de um LED com

    Potencimetro

    O objetivo neste exerccio o de controlar o brilho de um LED por umpotencimetro, usando a entrada analgica e uma sada PWM do Arduino.

    O esquema eltrico desse programa igual ao esquema eltrico do exemplo

    Leitura analgica com variao de freqncia. Um potencimetro linear de 20 k

    tem uma de suas extremidades ligada tenso de 5 V. A outra extremidade ligada

    no terra e o cursor, terminal do meio do potencimetro, ligado a uma das entradas

    analgicas do Arduino.

    7.1. Uma primeira verso

    A entrada analgica dever ser lida e, dependendo da posio do

    potencimetro, esse valor estar entre os extremos de 0 V e 5 V. O valor lido servir

    para controlar o PWM aplicado ao pino de sada do Arduino conectado ao LED.

    Assim, a largura do pulso emitido ao LED ser variada aumentando ou diminuindo o

    brilho do LED.

    Figura 24. Esquema eltrico POT_LEDFonte:Desenhado com o software Fritzing

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    33/56

    32

    O potencimetro atua como um divisor de tenso. A tenso no pino central do

    potencimetro poder varia de 0 V a 5 V. Esse valor ser lido pelo programa do

    Arduino, mediante a instruo analogRead(pino) e servir de parmetro para a

    instruo map(ValorLido, 0, 1023, 0, 255) queconverte proporcionalmente o valor

    de 0 a 1023, para um valor de 0 a 255 para ento aplicar esse valor a porta de sada

    PWM onde o LED est conectado. Desse modo, a intensidade do brilho do LED

    depender do valor analgico fornecido pelo potencimetro.

    A Figura 25 mostra o desenho do Arduino e do protoboard do shield, co m

    as ligaes do esquema eltrico da Figura 24.

    Figura 25. Ligaes do Arduino para o programa POT_LEDFonte: Desenhado com o software Fritzing

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    34/56

    33

    7.2. O Software

    Para editar o programa, execute o aplicativo Arduino. Ser aberta a pgina

    como modelo (template) do arquivo que ser criado para o programa. Salve o novo

    programa com o nome Controle_PWM_com_Potenciometro. A Figura 26 mostra o

    programa j editado. Copie o programa no modelo aberto.

    Inicialmente so definidas as constantes relativas aos pinos que sero

    utilizados: LED (pino 9) e POT (pino A0). tambm criada uma varivel chamada

    ValorLido que ir armazenar o valor da tenso do terminal central do potencimetro

    transformado em valor digital.

    Figura 26. O programa editado

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    35/56

    34

    No setup definido que o pino de conexo do LED ser sada. No h

    necessidade de configurar o pino de conexo do potencimetro como entrada. Isso

    feito automaticamente.

    No loop principal, valor da tenso do potencimetro lido e convertido em

    um valor digital, sendo armazenado na varivel ValorLido.

    O brilho emitido pelo LED depender da tenso lida do potencimetro, pois

    esse valor servir de parmetro para a instruo map(ValorLido, 0, 1023, 0, 255)

    que seguir.

    Compile o programa, faa o upload para o Arduino e verifique por si mesmo o

    funcionamento alterando a posio do eixo do potencimetro. O LED ficar aceso e

    seu brilho pode ser alterado mediante alterao do cursor do potencimetro.

    7.3. Uma segunda verso

    Em vez do potencimetro para fornecer uma valor de tenso varivel para a

    entrada analgica, pode-se usar um LDR (light dependente resistor), que, como o

    prprio nome deixa transparecer, um resistor cuja resistncia tem um valor que

    depende da quantidade de luz incidente.

    A Figura 27 mostra a modificao efetuada no circuito. Um LDR, cuja

    resistncia varia entre aproximadamente 3,5k e 70k permite que a tenso naentrada analgica varie o suficiente para se perceber a alterao de brilho do LED.

    Com circuito modificado, verifique por si mesmo o funcionamento.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    36/56

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    37/56

    36

    8. Experincia 07 - Display 7 Segmentos

    Em muitas aplicaes interessante mostrar o resultado de uma operao

    (leitura de tenso, corrente, temperatura, etc) em um display de sete segmentos. A

    Figura 1 mostra o aspecto fsico e a pinagem do display HS-3191AS.

    Figura 28. Display Sete Seguimentos HS-3191AS

    8.1. O Hardware

    A Figura 29 mostra as ligaes do hardware a ser utilizado.

    Figura 29. Ligaes do Arduino para o projeto Sete_seguimentos

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    38/56

    37

    8.2. O Software

    Para editar o programa, execute o aplicativo Arduino. Ser aberta a pgina

    como modelo (template) do arquivo que ser criado para o programa. Salve o novo

    programa com o nome Sete_segmentos. As Figuras 30 e 31 mostram o programa j

    editado. Copie o programa no modelo aberto.

    Inicialmente so definidas constantes com os nomes dos segmentos do

    display, atribuindo a elas os nmeros dos pinos do Arduino aos quais os segmentos

    estaro conectados. Essas constantes esto de acordo com a Figura 1 em que

    esto definidos os pinos do display correspondentes aos segmentos.

    A seguir, esses pinos so todos definidos com sadas, pois o display de sete

    segmentos do tipo catodo comum. Assim, para ser acionado um segmento,

    necessrio colocar um nvel lgico HIGH no pino correspondente. Na Figura 31

    mostrado o loop que executado indefinidamente, enquanto a alimentao estiver

    ligada.

    Figura 30

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    39/56

    38

    Figura 31

    No loop cada segmento alimentado por uma instruo digitalWrite(nome

    do pino, HIGH), seguindo-se um intervalo de 500 ms definido pela instruo

    delay(500). A seguir, o mesmo segmento apagado por uma instruo

    digitalWrite(nome do pino, LOW). Esse processo inicia-se no segmento A e repete-

    se at atingir o segmento G. O processo ento repetido indefinidamente, sendo os

    segmentos acesos sucessivamente, na ordem alfabtica.

    Compile o programa e faa o upload para a placa do Arduino observe seufuncionamento. Corrija ou faa as modificaes que julgar interessantes.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    40/56

    39

    9. Experincia 08 - Contador

    Inmeras situaes exigem que sejam exibidos no display de sete segmentos

    os nmeros decimais correspondentes a uma determinada operao, por exemplo

    indicar o resultado de uma leitura de tenso. No caso de apenas um display os

    nmeros podem variar apenas entre 0 e 9, inclusive.

    O exemplo aqui ilustrado procura mostrar como o display pode ser acionado

    para exibir o nmero desejado. Ser mostrada a utilizao da instruo switch

    case.A instruo switch case permite escolher uma entre vrias aes possveis

    em funo de uma varivel. A Figura 30 ilustra sua execuo.

    Figura 32. A instruo "switch case"

    Por exemplo, o cdigo da Figura 1 utiliza como parmetro para a instruo

    switch case a varivel valor. Essa varivel determinar qual valor ser atribudo

    varivel x. Ao ser executada a instruo switch case a execuo ser desviada

    para a linha case correspondente ao valor do parmetro valor. Por exemplo, se

    no instante de execuo da instruo a varivel valor for igual a 2, varivel x

    ser atribudo o valor 4. Aps a execuo da instruo ou conjunto de instrues do

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    41/56

    40

    case, a execuo continua fora da instruo switch case, em funo do comando

    break.

    Para utilizao do display como contador, ser definida uma varivel cont

    que ser variada de 0 a 9. Dependendo desse valor, dentro de uma instruo swtich

    case, sero ativados os segmentos necessrios para que o nmero correspondente

    seja exibido no display.

    9.1. O Hardware

    A Figura 31 mostra o esquema eltrico do hardware a ser utilizado, que o mesmoj utilizado para teste do display de sete segmentos.

    Figura 33. Ligaes do Arduino para o projeto ContadorFonte: Desenhado no software Fritzing

    9.2. O Software

    Para editar o programa, execute o aplicativo Arduino. Ser aberta a pgina

    como modelo (template) do arquivo que ser criado para o programa. Salve o novo

    programa com o nome Sete_segmentos. As Figuras 34, 35, 36 mostram o programa

    j editado. Copie o programa no modelo aberto.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    42/56

    41

    Inicialmente so definidos os pinos do Arduino aos quais se conectam os

    segmentos A, B, C, D, E, F e G do display. A seguir, no set up so definidos todos

    os pinos do Arduino utilizados como sada, para alimentar os LEDs do display.

    Figura 34. O incio do programa ContadorFonte: Desenhado no software Fritzing

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    43/56

    42

    No incio do loop, utilizado um lao for para atribuir todos os valores da

    varivel cont que ser passada como parmetro instruo switch case, para

    definir quais os segmentos que iro ser ativados para exibir o nmero decimal

    correspondente contagem. Observe que o loop for ser executado com a

    varivel cont inicializada em 0 e sendo incrementada de uma unidade a cada

    passagem. Terminado o loop, esse voltar a ser executado desde o incio, quando

    a varivel cont ser reinicializada em 0. Assim, o display ficar continuamente

    exibindo a contagem de 0 a 9, com intervalo de 1 s, entre as contagens.

    Figura 35. Incio "loop" do programa Contador

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    44/56

    43

    Ainda na Figura 33, observe o caso para a exibio do nmero 0 no display.

    Apenas o segmento G estar apagado, com os restantes mantidos acesos.

    Figura 36. Os casos para o s nmeros 1 e 2

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    45/56

    44

    Figura 37. Os casos para os nmeros 3 e 4

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    46/56

    45

    Figura 38. Os casos para os nmeros 5 e 6

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    47/56

    46

    Figura 39. Os casos para os nmeros 7 e 8

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    48/56

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    49/56

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    50/56

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    51/56

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    52/56

    51

    Figura 42. Shield LCD

    10.4. O programa Hello World!

    O programa seguinte foi extrado dos exemplos do prprio IDE do Arduino, feitas

    as adaptaes e esclarecimentos necessrios para maior compreenso. As Figuras

    43 e 44 mostram o programa j editado. Copie o programa no modelo aberto.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    53/56

    52

    Figura 43. Incio do programa

    Inicialmente so definidos os pinos de conexo do LCD com o Arduino,

    conforme j mostrado anteriormente. interessante registrar essa pinagem, pois

    nem sempre haver o texto para acompanhamento e isso pode ser necessrio para

    futuras mudanas ou reutilizao de parte do programa.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    54/56

    53

    Observe que os comentrios referentes pinagem, por ultrapassarem uma linha,

    iniciam-se por /* e terminam por */.

    Figura 44. Continuao do programa

    Inicialmente, necessrio incluir na compilao do programa a biblioteca defunes do LCD. Isso feito com a diretiva #include LiquidCrystal.h. A seguir, so

    definidos os pinos do Arduino que correspondero aos pinos atribudos na biblioteca,para controle e para comunicao. No loop de setup, que executado apenas

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    55/56

    54

    uma vez,so chamadas duas funes da biblioteca do LCD. A primeiraLCD.begin(16,2) define qual tipo dedisplay est sendo utilizado, no caso, de 16colunas e 2 linhas.A segunda, LCD.print(hello world!) envia uma string entre aspas

    duplas, que ser exibida no display.

    No loop principal, de execuo cclica, so chamadas duas outras funes dabiblioteca do LCD, sendo a primeira destinada a posicionar o curso na segunda linha(definida como linha 1, pois a primeira considerada linha 0. A segunda funo, a

    mesma j utilizada, imprime um valor em segundos no display, utilizando a funomillis( ).

    A funo millis( ) fornece um valor numrico correspondente ao tempo

    decorrido aps o reset do Arduino em milissegundos. Como o valor dentro da funoprint est dividido por 1000, a cada segundo o display exibir um valor atualizado.

    10.5. Outros programas

    Existem outros programas prontos nos exemplos do IDE do Arduino. Procureno menu Arquivo/Exemplos/LiquidCrystal esses programas e grave-os no Arduino. Aexecuo explicar o que podem fazer esses outros comandos de deslocamento dodisplay, ajuste do cursor, etc.

    Figura 45. Acesso a outros programas para o LCD

    Procure analisar os programas e verificar como os exemplos foram

    desenvolvidos.

  • 7/23/2019 Apostila de Experincias Do Mini Curso de Arduino Fatec Sorocaba

    56/56

    11. Programas Finais

    Termmetro com LM35 e display LCD (No usar isqueiro)

    Cronmetro com pausa e reset 2 botes (conta at 60seg) no LCD

    Semforo: Um semforo para veculos e um para pedestres

    Para veculos: Verde 20 segundos

    Vermelho 15 Segundos

    Amarelo 05 Segundos

    Para Pedestres: Verde 15 SegundosVermelho 25 Segundos