aula1 arduino

Download Aula1 Arduino

Post on 20-Dec-2015

214 views

Category:

Documents

0 download

Embed Size (px)

DESCRIPTION

Arduino e aplicações

TRANSCRIPT

Arduino Bsico

Michel Rodrigues Machado

Arduino e aplicaesNeste mdulo estudaremos as principais aplicaes da plataforma arduino para montagem de artefatos robticos

Alm da programao utilizaremos os seguintes componentes para aulas prticas:

- Leds- Potencimetros- Botes

Arduino e aplicaes

Arduino e aplicaes

Aps conhecermos a arquitetura da plataforma, o prximo passo e aprender a programar o microcontrolador.

A linguagem de programao que utilizaremos baseada em linguagem C.

A seguir, vamos elabora um cdigo no Arduino, apartir da sua estrutura principal.

Arduino e aplicaesVoid setup() {// Escreva o cdigo que ser executado apenas uma vez.

}

Void loop() {// Escreva o cdigo que ser executado infinitas vezes

}

Arduino e aplicaes

A funo setup() chamada quando o cdigo(sketch) executado.

Use-a para:- Iniciar variveis.- O modo como os pinos devem operar: entrada(INPUT) ou sada(OUTPUT)- Bibliotecas*- Cabealhos*

Arduino e aplicaes

Cuidado!

Tudo o que estiver no setup() ser executado apenas uma vez imediatamente aps o microcontrolador ser energizado.Caso o boto de reset que se encontra na placa do arduino for pressionada ou a energia cair o cdigo ser reinicializado e nessa condio especial o setup() novamente executado.

Arduino e aplicaes

A funo loop() tem um propsito fundamental repetir infinitamente o que est escrito. Bem... mas qual a finalidade disso? Ao repetir a mesma funo o microntrolador nunca para de funcionar.

Arduino e aplicaes

Imagine como seria se ao digitar uma letra seu editor de texto parasse de funcionar e fosse preciso abri-lo novamente para escrever a outra letras da palavra? Ou aps um carro passar num semforo de trnsito as luzes no brilharem mais?

Arduino e aplicaes

Basicamente o loop() ser o seu escravo e o setup() dir como o escravo se comporta.

Arduino e aplicaes

Ligando leds na Arduino

Arduino e aplicaes

void setup(){pinMode(12,OUTPUT);//Declara que o pino 12 do arduino de Sada. Vai mandar dados, energia...}void loop(){digitalWrite(12,HIGH);// Diz que o pino12do arduino est Ligado. Logo LED ONdelay(1000);// Espera por 1sdigitalWrite(12,LOW);// Diz que o pino12do arduino est Desligado. Logo: LED OFFdelay(1000);// Espera por 1s}

Arduino e aplicaes

Comentrio do cdigo:Este o cdigo chamado Blink. Nele temos declarado nosetup()que usaremos o pino 12 do Arduino e este no far leitura de dados mas enviar por isso Sada(OUTPUT).

Arduino e aplicaes

Ento se temos o LED ligado por 1s e desligado por 1s ele liga e desliga muito rpido. Como essa informao est noloop()que executa infinitas vezes teremos o LED piscando o tempo todo.

Arduino e aplicaes

No Arduino encontramos tambm a funo Serial.begin void setup(){

Serial.begin(9600);

}

Arduino e aplicaes

Esta funo serve para ajustar a taxa de transferncia de em bits por segundo (baud) da comunicao serial entre o Arduino e o computador.No caso do cdigo anterior estamos ajustando a taxa em 9600 bits por segundo.

Arduino e aplicaes

Podemos, entretanto, especificar outras velocidades por exemplo para comunicao atravs dos pinos 0 e 1 com um componente que requer uma taxa especfica.Exemplos: 300, 1200, 2400, 4800, 14400, 19200, 28800, 57600, 115200

Arduino e aplicaes

Este exemplo pode ser usado como um caso particular do Arduino Megavoid setup(){Serial.begin(9600);Serial1.begin(38400);Serial2.begin(19200);Serial3.begin(4800);

Serial.println("Hello Computer");Serial1.println("Hello Serial 1");Serial2.println("Hello Serial 2");Serial3.println("Hello Serial 3");}

Arduino e aplicaes

Tambm podemos verificar os valores e monitorar em tempo real tudo que est acontecendo em nosso programa, atravs do Serial monitor do ArduinoUm dos comandos que utilizaremos :Serial.println

Arduino e aplicaes

ExemploVoid loop(){

Serial.println(valorPotenciometro);

}

Arduino e aplicaes

Retomando com exemplos:- pinMode define o pino que utilizaremos;- pinMode (12, OUTPUT) define o pino 12 como sada (mas podemos utilizar os valores de 0 a 13);- pinMode (12, INPUT) define o pino 12 como entrada;- digitalWrite(led_pin, HIGH); // acende o led conectado ao pino;- digitalWrite(led_pin, LOW); // apaga o led conectado ao pino;

Arduino e aplicaes

Nesses exemplos, estamos trabalhando com pinos digitais;Para usar os pinos analgicos (Analog In) utilizamos os comandos analogReadUm bom exemplo declarar uma varivel para um pino de entrada analgica Ex:analogin = A1;

Arduino e aplicaes

Apartir dessa varivel, iremos ler o valor analgico que nos ser fornecido externamente.Exemplo:analogRead(analogin); // Nesse cdigo a varivel analogin ir receber todos os valores possveis de acordo com o componente conectado ao pino (potencimetro, sensor, boto, etc)

Arduino e aplicaes

Para utilizarmos o Serial Monitor junto com esses valores declaramos uma varivel inteira para receber os valores lidos e expor na tela do programa.Ex:int valor = 0; //varivel inteira que recebe o valor do pino analgico, inicializada em zero

Arduino e aplicaes

O cdigo ento fica da seguinte forma:void loop(){valor = analogRead(analogin); // a varivel valor ir receber todos os valores que o componente fornecer.Serial.println(valor); // o valor ser mostrado no Serial Monitor. }

Arduino e aplicaes

Utilizando a condicional If e else:If ( condio ) {

}else{

}

Arduino e aplicaes

Exemplos:if (valorpotenciomentro < 10); // Se o valor lido for menor que 10{ digitalWrite (led_pin, HIGH); // acende um determinado led} else{ digitalWrite (led_pin, LOW); //apaga o led em questo}

Arduino e aplicaes

void setup(){Serial.begin(9600); pinMode(led_pin, OUTPUT); }void loop(){valor = analogRead(analogin);Serial.println(valor);delay(250);if (valor < 30){ digitalWrite(led_pin, HIGH);} else{ digitalWrite(led_pin, LOW);}}

Arduino e aplicaes

Exerccio:Agora que voc domina alguns comandos importantes do cdigo da plataforma Arduino, faa um circuito e um programa colocando um boto para controlar um led.O circuito tem que ser simples e quando o boto for pressionado, o led ter que acender.

Arduino e aplicaes

Soluo:Para este projeto precisamos definir um pino de sada para o led e um pino de entrada para o boto.Importante! preciso definir uma varivel para receber o valor de estado do boto (0 para desligado e 1 para ligado).

Arduino e aplicaes

Primeiro vamos fazer a ligao do boto na Arduino.

Arduino e aplicaes

Note que o boto est sendo energizado pelos 5v da placa, ou seja, o pino que ele estiver conectado vai receber a verificao de estado do boto. Em resumo, se estiver pressionado e o circuito estiver fechado, o valor que ser atribudo ser 1, do contrrio ser 0.A seguir, temos enfim, o cdigo para este exerccio.

Arduino e aplicaes

Arduino e aplicaes

Note agora que alm de declararmos variveis do tipo int, que se refere a um valor inteiro, tambm declaramos constantes, como exemplo, temos na 1 linha do cdigo:const int led = 8;Que significa que esse valor no ir se alterar, ao contrrio do valor de estado do boto:int estadobotao = 0;Alm dele ser inicializado em zero, vai ficar alternando entre os valores 1 e 0, ou seja, a prpria definio de varivel.

Arduino e aplicaes

Aps inserir um led no pino 8, este led deve acender sempre que o boto for pressionado.Utilize o mesmo circuito para fazer variaes deste projeto.Um bom exemplo de implementao colocar um valor de delay para quando o boto for pressionado e o led estiver aceso. Coloque valores a partir de 3 segundos (3000 milisegundos).

Arduino e aplicaes

Arduino e aplicaes

Potencimetro O potencimetro atua como uma resistncia eltrica ajustvel, dessa forma serve como um divisor de tenso.Na arduino o pino esquerdo do potencimetro conectado aos 5v da placa, o pino central conectado a algum pino de entrada analgica (Analog IN) e o pino da direita conectado ao GND.Dessa forma feita a leitura de valores que ele ir fornecer.

Arduino e aplicaes

Arduino e aplicaes

Ao girar o potencimetro, teremos uma variao de valores de 0 a 5v. Porm como na plataforma Arduino temos presente um circuito interno chamado Conversor Analgico-Digital esta voltagem convertida em um valor entre 0 e 1023.Logo, temos que configurar nosso programa, baseando-se na faixa de valores de 0 a 1023.

Arduino e aplicaes

Exerccio resolvido:Fazer um circuito que leia o valor mximo e o mnimo de um potencimetro e acenda um led para o valor mximo e outro para o valor mnimo.Soluo:Declaramos trs variveis, duas para os leds e uma para o pino de sinal do potencimetro. Logo aps, definiremos os pinos dos leds como sada e o do potencimetro como entrada analgica.

Arduino e aplicaes

Arduino e aplicaes

|

Arduino e aplicaes

Exerccio :Fazer o cdigo e um circuito com seis leds controlados pelo potencimetro, onde cada led corresponda a uma faixa de valor referente ao potencimetro, ou seja, o valor ser gradativo acompanhando o acionamento de cada led.

Arduino e aplicaes

Contato:michel.r.machado@gmail.com