A placa Arduino suporta cinco funções do matlab para controle I/O analógico. As funções são:
- configurePin(): Usada para definir qual pino sera entrada/saída
- writePWMVoltage(): Usada paara escrever a tensão PWM no pino digital
- writePWMDutyCycle(): Usada para setar o ciclo PWM no pino digital
- readVoltage(): Usada para leitura analógica do pino referente
Munidos dessas informações iremos agora começar nosso tutorial. Teremos três experiências para fazer, que serão:
- Controle do LED RGB
- Controle de luminosidade
- Leitura analógica de um potenciômetro
LET's GO!
CONTROLE DO LED RGB:
O objetivo desse experimento é realizar o controle de um LED RGB através das portas PWM. Se você possuir um arduino MEGA 2560 as portas PWM serão da 2 a 13, mas se você estiver utilizando um arduino UNO, cuidado! Pois as portas PWM serão: 3,5,6,9,10 e 11.
Portas PWM do arduino MEGA 2560
Portas PWM do arduino UNO.
Antes de continuarmos deveremos nos familiarizar com o LED RGB:
Note que o LED RGB possui mais terminais que um led comum, esse terminais a mais são responsáveis por cada cor, a disposição desses terminais são:
- Terminal 1: Vermelho
- Terminal 2: Pino comum (anodo/catodo)
- Terminal 3: Verde
- Terminal 4: Azul
Para realizar essa experiencia monte o seguinte circuito:
Agora digite seguinte código:
function [] = led_rgb()
board = arduino;
while 1
disp('vermelho');
write_rgb(board,1,1,0); % vermelho
pause(1);
disp('verde');
write_rgb(board,1,0,1); % verde
pause(1);
disp('azul');
write_rgb(board,0,1,1); % azul
pause(1);
disp('amarelo');
write_rgb(board,0,0,1); % amarelo
pause(1);
disp('roxo');
write_rgb(board,0.3,1,0.3); % roxo
pause(1);
disp('aqua');
write_rgb(board,1,0,0); % aqua
pause(1);
end
end
% testing for Arduino Uno
function write_rgb(board,r,g,b)
writePWMDutyCycle(board,2,r);
writePWMDutyCycle(board,3,g);
writePWMDutyCycle(board,4,b);
end
function exitprogram(b)
clear b;
disp('exit');
end
Lembre-se de salvar com o mesmo nome da função, ou seja, led_rgb. Execute o programa no command window do Matlab.
LUMINOSIDADE DOS LEDs:
Nesse experimento iremos controlar o brilho de três leds através da tensão de cada. O suporte para Matlab usando arduino possui a função writePWMVoltage(), a qual seta a tensão nos pinos PWM. Antes de continuar faça o seguinte circuito:
Digite o seguinte código:
function [] = led_brightness()
board = arduino();
finishup = onCleanup(@() exitprogram(board));
disp('Aperte C para sair');
while 1
for k = 0:.1:5
writePWMVoltage(board, 13,k);
pause(.1);
end
for k = 5:-.1:0
writePWMVoltage(board,13,k);
pause(.1);
end
end
end
function exitprogram(b)
clear b;
disp('exit');
end
Você perceberá que o LED fará o efeito de fade.
LEITURA ANALÓGICA
Esse ultimo projeto, você irá aprender a realizar uma leitura analógica entre o Arduino e o Matlab. Iremos usar um potenciômetro de 10K ohms.
Bom pra começar, o que é um potenciômetro? Nada mais é do que um resistor que varia sua resistência. Apenas isso. Se você já meche com arduino há algum tempo com certeza já fez algum experimento usando um potenciômetro.
Bom pra começar, o que é um potenciômetro? Nada mais é do que um resistor que varia sua resistência. Apenas isso. Se você já meche com arduino há algum tempo com certeza já fez algum experimento usando um potenciômetro.
Você deverá ligar o potenciômetro no arduino da seguinte maneira. Um terminal extremo no 5V, o terminal do meio no pino analógico A0 e o outro terminal extremo no GND.
Feita as ligações copie a programação abaixo. Lembre-se de salva o programa no mesmo nome da função.
function [] = potentiometer()
board = arduino();
finishup = onCleanup(@() exitprogram(board));
disp('aperte Ctr-C para sair');
while 1
analog = readVoltage(board,0);
disp(['analog= ',num2str(analog)]);
pause(1);
end
end
function exitprogram(b)
clear b;
disp('Programa finalizado');
end
Por agora é isso pessoal, Proximo tutorial será sobre I²C.
Nenhum comentário:
Postar um comentário