iniciação ao arduino

27
Iniciação ao Arduino uno Lucínio Preza de Araújo

Upload: frajola

Post on 08-Nov-2015

25 views

Category:

Documents


12 download

DESCRIPTION

arduino

TRANSCRIPT

  • Iniciao ao Arduino uno

    Lucnio Preza de Arajo

  • http://www.prof2000.pt/users/lpa 2

    Blocos do Arduino

    Conversor

    Serial USB

    Entradas e sadas digitais

    CPU

    AtmelFonte de

    alimentao

    Entradas analgicas

    ou sadas digitaisTerminais de alimentao

    5V 3,3V e Terra (0 V)

    Microcontrolador

    Cristal

    Jack

    Alimentao

    Jack

    USB

  • http://www.prof2000.pt/users/lpa 3

    Resumo da placa Arduino uno

  • http://www.prof2000.pt/users/lpa 4

    Arquitetura do Arduino

  • http://www.prof2000.pt/users/lpa 5

    O microcontroladorUm microcontrolador, ao contrrio de um microprocessador, desenhado e

    construdo de forma a integrar diversos componentes (CPU, RAM, ROM,

    Porta srie, Porta paralela, etc.) num nico circuito integrado.

    Microcontrolador: ATmega328 (datasheet)

  • http://www.prof2000.pt/users/lpa 6

    Arduino uno - Caratersticas Microcontrolador: ATmega328 Tenso de operao: 5V Tenso recomendada (entrada): 7-12V Limite da tenso de entrada: 6-20V Pinos digitais: 14 (seis pinos com sada PWM) Entrada analgica: 6 pinos Corrente contnua por pino de entrada e sada: 40 mA Corrente para o pino de 3.3 V: 50 mA Quantidade de memria FLASH: 32 KB (ATmega328) onde

    0.5 KB usado para o bootloader

    Quantidade de memria SRAM: 2 KB (ATmega328) Quantidade de memria EEPROM: 1 KB (ATmega328) Velocidade de clock (cristal): 16 MHz

  • http://www.prof2000.pt/users/lpa 7

    Arduino uno - AlimentaoInternamente, o circuito do Arduino alimentado

    com uma tenso de 5V.

    O Arduino UNO pode ser alimentado pela porta USB

    ou por uma entrada do tipo Power Jack (com o positivo ao centro) atravs de uma fonte externa DC.

    A recomendao que a fonte externa seja de 7 V a

    12 V e pode ser ligada diretamente no conector de

    fonte ou nos pinos Vin e Gnd.

    A seguir so exibidos os conectores de alimentao para conexo de shields e mdulos na

    placa Arduino UNO:

    3,3 V. - Fornece tenso de 3,3V. para

    alimentao de shield e mdulos externos.

    Corrente mxima de 50 mA.

    5 V - Fornece tenso de 5 V para alimentao de

    shields e circuitos externos.

    GND - pinos de referncia, terra.

    VIN - pino para alimentar a placa atravs de

    shield ou bateria externa. Quando a placa

    alimentada atravs do conector Jack, a tenso da

    fonte estar nesse pino.

  • http://www.prof2000.pt/users/lpa 8

    Software

    O 1 passo consiste em efectuar o download do respectivo software de

    desenvolvimento, o Arduino IDE 1.0.5, atravs do site oficial Arduino

    O 2 passo consiste em descompactar o ficheiro .ZIP para uma pasta sua escolha.

    O 3 passo consiste em ligar a placa Arduino ao computador atravs do cabo

    USB e instalar os drivers FTDI, para permitir uma converso de USB para srie.

    O 4 passo consiste em configurar a porta

    srie a ser utilizada e qual o tipo de modelo

    Arduino, que nos encontramos a utilizar. Para

    tal, necessitamos de abrir o Software de

    desenvolvimento e escolher na barra de

    separadores a opo Tools.

    O 5 passo para a utilizao do Software

    consiste em elaborar o seu Sketch (programa),

    compilar e, caso no tenha erros, fazer o

    uploading para a placa Arduino.

  • http://www.prof2000.pt/users/lpa 9

    Arduino IDE

    O monitor serial utilizado para

    comunicao entre o Arduino e

    o computador (PC).

    As principais funcionalidades do IDE do

    Arduino so:

    - Escrever o cdigo do programa

    - Salvar o cdigo do programa

    - Compilar um programa

    - Transportar o cdigo compilado para a

    placa do Arduino

  • http://www.prof2000.pt/users/lpa 10

    Ciclo de desenvolvimento

  • http://www.prof2000.pt/users/lpa 11

    Funes basevoid setup() - Esta funo apenas executada uma vez e normalmente utilizada para executar a inicializao de variveis, a inicializao da utilizao bibliotecas, a definio dos

    pinos (como input ou output), o incio do uso de comunicao srie, entre outros. Esta funo

    apenas volta a ser executada novamente ao ser efectuado o reset ou quando se desligar e

    volta a ligar a placa de desenvolvimento Arduino.

    void loop() - Esta funo faz um loop sucessivo (como o prprio nome indica), ou seja, todos os comandos existentes no interior desta funo so sucessivamente repetidos, o que

    pode permitir a leitura sucessiva de portas, a leitura sucessiva de parmetros provenientes de

    sensores externos e actuar de acordo com as condies estabelecidas.

  • http://www.prof2000.pt/users/lpa 12

    Programar no Arduino

    Comentrios

    Muitas vezes importante comentar alguma parte do cdigo do programa.

    Existem duas maneiras de adicionar comentrios a um programa em

    Arduino.

    A primeira usando //, como no exemplo abaixo:

    // Este um comentrio de linha

    A segunda usando /* */, como no exemplo abaixo:

    /* Este um comentrio de bloco. Permite acrescentar comentrios com

    mais de uma linha */

    Nota: Quando o programa compilado os comentrios so automaticamente suprimidos do

    arquivo executvel, aquele que ser gravado na placa do Arduino.

  • http://www.prof2000.pt/users/lpa 13

    Programar no Arduino

    Constantes

    No Arduino existem algumas constantes previamente definidas e so

    consideradas palavras reservadas.

    As constantes definidas so:

    true indica valor lgico verdadeiro false indica valor lgico falso HIGH indica que uma porta est ativada, ou seja, est em 5V. LOW indica que uma porta est desativada, ou seja, est em 0V. INPUT indica que uma porta ser de entrada de dados. OUTPUT indica que uma porta ser de sada de dados.

  • http://www.prof2000.pt/users/lpa 14

    Entradas analgicas e digitais

    Portas digitais e analgicas

    O Arduino possui tanto portas digitais como portas

    analgicas.

    As portas servem para comunicao entre o Arduino e

    dispositivos externos, por exemplo: ler um boto,

    acender um led ou uma lmpada.

    Conforme j mencionado, o Arduino UNO, possui 14

    portas digitais e 6 portas analgicas (que tambm

    podem ser utilizadas como portas digitais).

    Os conversores analgicos-digitais (ADC) do Arduino

    so de 10 bits.

    Os valores lidos numa porta analgica variam de 0 a

    1023 (10 bits), onde 0 representa 0V e 1023

    representa 5V.

    Portas digitais

    As portas digitais trabalham com valores bem definidos, ou seja, no caso do Arduino esses

    valores so 0V e 5V.

    0V indica a ausncia de um sinal e 5V indica a presena de um sinal.

    Para escrever numa porta digital basta utilizar a funo digitalWrite(pin, estado).

    Para ler um valor numa porta digital basta utilizar a funo digitalRead(pin).

  • http://www.prof2000.pt/users/lpa 15

    Sadas PWM

    O que PWM?

    PWM, do ingls Pulse Width Modulation,

    uma tcnica utilizada por sistemas

    digitais para variao do valor mdio de

    uma forma de onda peridica. A tcnica

    consiste em manter a frequncia de uma

    onda quadrada fixa e variar o tempo que

    o sinal fica em nvel lgico alto. Esse

    tempo chamado de duty cycle, ou seja,

    o ciclo ativo da forma de onda. No

    grfico ao lado so exibidas algumas

    modulaes PWM.

  • http://www.prof2000.pt/users/lpa 16

    Entradas analgica

    Portas Analgicas

    As portas analgicas so utilizadas para entrada de

    dados.

    O Arduino UNO possui 6 (seis) portas analgicas.

    As portas analgicas no Arduino UNO so

    identificadas como A0, A1, A2, A3, A4 e A5. Estas

    portas tambm podem ser identificadas por 14 (A0),

    15 (A1), 16 (A2), 17 (A3), 18 (A4) e 19 (A5).

    Por padro todas as portas analgicas so definidas

    como entrada de dados, desta forma no

    necessrio fazer esta definio na funo setup().

    Os valores lidos numa porta analgica variam de 0V

    a 5V.

    Para ler uma valor numa porta analgica basta

    utilizar a funo analogRead(pin).

  • http://www.prof2000.pt/users/lpa 17

    Programar no Arduino

    Para definir uma porta como entrada ou sada necessrio explicitar

    essa situao no programa.

    A funo pinMode(pin, estado) utilizada para definir se a porta ser de

    entrada ou sada de dados.

    Exemplo:

    Define que a porta 13 ser de sada

    pinMode(13, OUTPUT)

    Define que a porta 7 ser de entrada

    pinMode(7, INPUT)

  • http://www.prof2000.pt/users/lpa 18

    Programa explicado/*

    -----------------------------------

    1 Exerccio

    -----------------------------------

    Ligar e desligar um LED por um segundo

    */

    //------------------------------------

    //Funo principal

    //------------------------------------

    void setup() // Executa-se quando o arduino ligado

    {

    pinMode(13,OUTPUT); // Inicializa o pin 13 como uma sada

    }

    //------------------------------------

    //Funo repetitiva

    //------------------------------------

    void loop() // Esta funo executa-se o instante todo

    // quando est ligado o Arduino

    {digitalWrite(13,HIGH); // Liga o LED

    delay(1000); // Temporiza um segundo (1s = 1000ms)

    digitalWrite(13,LOW); // Desliga o LED

    delay(1000); // Temporiza um segundo (1s = 1000ms)

    }

  • http://www.prof2000.pt/users/lpa 19

    Programar no Arduino

    Numa linguagem de programao existem vrios operadores que

    permitem operaes do tipo: Aritmtica, Relacional, Lgica e Composta.

  • http://www.prof2000.pt/users/lpa 20

    Programar no Arduino

  • http://www.prof2000.pt/users/lpa 21

    Programar no Arduino

  • http://www.prof2000.pt/users/lpa 22

    Programar no Arduino

  • http://www.prof2000.pt/users/lpa 24

    Shields

    possvel agregar novas

    funcionalidades a uma placa do

    Arduino.

    As extenses das placas do Arduino

    so chamadas de shields.

    Existem shields para as mais diversas

    funcionalidades, por exemplo:

    Comunicao ethernet

    Comunicao wifi

    Comunicao bluethooth

    Ponte H

    Banco de rels

    Ethernet Shield

  • http://www.prof2000.pt/users/lpa 25

    Adicionar uma biblioteca Possivelmente algum dia vai precisar de adicionar uma biblioteca para trabalhar

    com algum sensor ou outro componente no Arduino. Existem diversas bibliotecas

    disponveis na internet, que pode baixar e utilizar. Entretanto tem que adicion-las

    ao seu IDE para que o mesmo reconhea os comandos que est a utilizar.

    Para mostrar como proceder, vamos adicionar a biblioteca MsTimer2.h como

    exemplo. Primeiro vamos baix-la na pgina do Arduino

    (http://arduino.cc/playground/Main/MsTimer2). Feito isso, descompacte o

    arquivo.zip que foi baixado. Agora v at pasta onde instalou o seu IDE para o Arduino e procure pela pasta libraries. Dentro deste diretrio copie a pasta que foi

    extrada anteriormente.

    Por fim, vamos verificar se a biblioteca foi mesmo detectada pelo IDE. V a Files

    > Examples e verifique se a biblioteca que acabamos de adicionar est ali. Se

    sim, a instalao ocorreu bem e j pode comear a utilizar a sua nova biblioteca.

    Agora s cham-la no seu cdigo, que neste caso ficaria: #include . Vale a pena destacar que na prpria pgina onde baixou a

    biblioteca, possui as instrues de como utilizar a mesma.

  • http://www.prof2000.pt/users/lpa 26

    Exerccios propostos

    1.Faa um circuito onde trs LEDs acendam em sequncia, com um atraso

    de um segundo entre eles, e depois apaguem igualmente em sequncia.

    2.Usando um LED vermelho, um amarelo e um verde, crie um semforo de

    transito ou seja, o LED verde deve ficar ligado por um determinado intervalo de tempo, seguido pelo amarelo, depois o vermelho, voltando

    para o verde.

    3.Crie um LED inteligente: ou seja, utilizando um sensor de luminosidade,

    faa-o ligar se o ambiente estiver escuro demais.

    4.Projete o prottipo de uma fechadura com senha - ou seja, a porta s

    abre se a senha digitada for correta. Para facilitar, utilize um LED

    vermelho para representar a porta fechada e um LED verde para indicar

    que a senha digitada foi aceite.

    5.Melhore seu prottipo adicionando um atuador sonoro, que avisa caso a

    senha esteja errada, caso ela esteja certa, e denuncie caso algum erre a

    senha mais de trs vezes Utilize sons diferentes para cada caso.

  • http://www.prof2000.pt/users/lpa 27

    Fontes de informao

    Site oficial Arduino

    http://www.arduino.cc

    Para comandos, consultar o guia de referncias em

    http://arduino.cc/en/Reference/HomePage

    Biblioteca MsTimer2

    http://arduino.cc/playground/Main/MsTimer2

    Simulador de Arduino: Virtual Breadboard

    http://www.virtualbreadboard.com/Main.aspx?TAB=Downloads