If you can't read please download the document
Upload
jonas-marcelino-laureano
View
251
Download
0
Embed Size (px)
DESCRIPTION
Arduino e aplicações
Citation preview
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:[email protected]