http://www.prof2000.pt/users/lpa 2 Blocos do Arduino Conversor Serial USB Entradas e sadas digitais CPU Atmel Fonte de alimentao Entradas analgicas Terminais de alimentao 5V 3,3V e Terra (0 V) Microcontrolador Cristal Alimentao USB http://www.prof2000.pt/users/lpa 3 Arquitetura do Arduino http://www.prof2000.pt/users/lpa 4 O microcontrolador Um 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 5 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: 16 MHz http://www.prof2000.pt/users/lpa 6 Arduino uno - Alimentao
O Arduino UNO pode ser alimentado pela porta USB ou por uma entrada do tipo Power Jack atravs 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.
http://www.prof2000.pt/users/lpa 7 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 8 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 9 Ciclo de desenvolvimento http://www.prof2000.pt/users/lpa 10 Funes base void 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 11 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 12 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 13 Programar no Arduino 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 14 Programar no Arduino 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 15 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 16 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 17 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 18 Programar no Arduino http://www.prof2000.pt/users/lpa 19 Programar no Arduino http://www.prof2000.pt/users/lpa 20 Programar no Arduino http://www.prof2000.pt/users/lpa 21 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 22
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 <MsTimer2.h>. 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 23 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 24 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