SERVO MOTOR POTENCIÔMETRO E RGB
1 - Controle de servo motor, usando código, vejam abaixo o material do potenciômetro e servo motor, vocês verão que é bem simples. Um exemplo do esquema de ligação do ServoMotor ao Arduino Código para copiar e colar no arduino #include <Servo.h> Servo servo; int value = 0; void setup(){ servo.attach(9); void loop() { for(value = 0; value <= 180; value+=5) { servo.write(value); delay(30); for(value = 180; value >=0; value-=5) { servo.write(value); delay(30);
2 - Esquema de ligação do ServoMotor + Potenciômetro ao Arduino Esquema de ligação do ServoMotor + Potenciômetro ao Arduino com alimentação externa, devemos usar uma fonte de alimentação externa pois a corrente que vem do Arduino é muito baixa.
Código para copiar e colar no arduino // Controle de motor de servo com potenciometro #include <Servo.h> Servo servo; // cria um objeto do tipo servo para acessar os métodos int potpin = 0; // define o pino analógico 0 para ligar o potenciómetro int val; // variavel para armazenar o valor lido do pino analógico 0 void setup() { servo.attach(9); // atribui o pino 9 do arduino para ser controlado pelo objeto void loop() { val = analogread(potpin); // lê o valor do potenciometro (valores entre 0 e 1023) val = map(val, 0, 1023, 0, 180 ); //escalas usadas pelo servo (valores entre 0 e 180) servo.write(val); // seta o servo de acordo com a posição (scala) lida acima por analogread() 3 - Controlando as cores de um LED RGB com código simples. Um exemplo do esquema de ligação do LED RGB ao Arduino
Código para copiar e colar no arduino int greenpin = 9; // Green LED, Conectado ao pino digital 9 int redpin = 10; // Red LED, Conectado ao pino digital 10 int bluepin = 11; // Blue LED, Conectado ao pino digital 11 void setup() { pinmode(redpin, OUTPUT); // Configura pinos como Saída pinmode(greenpin, OUTPUT); pinmode(bluepin, OUTPUT); analogwrite(redpin, 0); // Desliga LED vermelho analogwrite(greenpin, 0); // Desliga LED verde analogwrite(bluepin, 0); // Desliga LED azul void loop () { // Branco analogwrite(redpin, 255); analogwrite(greenpin, 255); analogwrite(bluepin, 255); delay(3000); // Verde analogwrite(redpin, 0); analogwrite(greenpin, 255); analogwrite(bluepin, 0); delay(3000); // Cyan analogwrite(redpin, 0); analogwrite(greenpin, 255); analogwrite(bluepin, 255); delay(3000); // Vermelho analogwrite(redpin, 255); analogwrite(greenpin, 0); analogwrite(bluepin, 0); delay(3000); // Amarelo analogwrite(redpin, 255); analogwrite(greenpin, 255); analogwrite(bluepin, 0); delay(3000); // Azul analogwrite(redpin, 0); analogwrite(greenpin, 0); analogwrite(bluepin, 255); delay(3000);
// Lilas analogwrite(redpin, 255); analogwrite(greenpin, 0); analogwrite(bluepin, 255); delay(3000); 4 - Fazendo efeito aleatório com LEDs RGB via código. Um exemplo do esquema de ligação de 2 LEDs RGB ao Arduino Código para copiar e colar no arduino /*-------------LED RGB FELLIPE COUTO 07/07/2012 --------------*/ #define Red1 5 #define Red2 10 #define Green1 9 #define Green2 3 #define Blue1 6 #define Blue2 11
int int int int int int RedOld = 0; GreenOld = 0; BlueOld = 0; RedOld2 = 0; GreenOld2 = 0; BlueOld2 = 0; void setup(){ pinmode(red1, OUTPUT); pinmode(red2, OUTPUT); pinmode(green1, OUTPUT); pinmode(green2, OUTPUT); pinmode(blue1, OUTPUT); pinmode(blue2, OUTPUT); randomseed(analogread(0)); //Para o random não repetir a sequencia. Pisca(); void loop(){ Pisca(); SequenciaRapida(); SequenciaAleatoria(); void SequenciaAleatoria(){ for (int i=0; i<15; i++){ CoresRGB(random(7) + 1, random(250) + 50); //fade = 50 a 299. delay(40000); void SequenciaRapida(){ for (int j=0; j<3; j++){ for (int i=1; i<=7; i++){ CoresRGB(i, 10); delay(2000); void Pisca(){ for (int i=1; i<=30; i++){ CoresRGB(random(8), 0); delay(random(150)); void CoresRGB(int cor, int fade){ /* 0- APAGADO 1- VERMELHO 2- VERDE 3- AZUL
4567*/ VERMELHO+AZUL VERDE+AZUL VERMELHO+VERDE VERMELHO+VERDE+AZUL for (int i=0; i<=365; i++){ /* -- LED 1 -- */ switch(cor){ case 0: RedOld--; GreenOld--; BlueOld--; case 1: RedOld++; GreenOld--; BlueOld--; case 2: RedOld--; GreenOld++; BlueOld--; case 3: RedOld--; GreenOld--; BlueOld++; case 4: RedOld++; GreenOld--; BlueOld++; case 5: RedOld--; GreenOld++; BlueOld++; case 6: RedOld++; GreenOld++; BlueOld--; case 7: RedOld++;
GreenOld++; BlueOld++; if (RedOld > 255){ RedOld = 255; else if (RedOld < 0) { RedOld = 0; if (GreenOld > 255){ GreenOld = 255; else if (GreenOld < 0) { GreenOld = 0; if (BlueOld > 255){ BlueOld = 255; else if (BlueOld < 0) { BlueOld = 0; if (RedOld <= 255 && RedOld >= 0){ analogwrite(red1, RedOld); if (GreenOld <= 255 && GreenOld >= 0){ analogwrite(green1, GreenOld); if (BlueOld <= 255 && BlueOld >= 0){ analogwrite(blue1, BlueOld); /* -- LED 2 -- */ if (i >= 110){ switch(cor){ case 0: RedOld2--; GreenOld2--; BlueOld2--; case 1: RedOld2++; GreenOld2--; BlueOld2--; case 2: RedOld2--; GreenOld2++; BlueOld2--;
case 3: RedOld2--; GreenOld2--; BlueOld2++; case 4: RedOld2++; GreenOld2--; BlueOld2++; case 5: RedOld2--; GreenOld2++; BlueOld2++; case 6: RedOld2++; GreenOld2++; BlueOld2--; case 7: RedOld2++; GreenOld2++; BlueOld2++; if (RedOld2 > 255){ RedOld2 = 255; else if (RedOld2 < 0) { RedOld2 = 0; if (GreenOld2 > 255){ GreenOld2 = 255; else if (GreenOld2 < 0) { GreenOld2 = 0; if (BlueOld2 > 255){ BlueOld2 = 255; else if (BlueOld2 < 0) { BlueOld2 = 0; if (RedOld2 <= 255 && RedOld2 >= 0){
analogwrite(red2, RedOld2); if (GreenOld2 <= 255 && GreenOld2 >= 0){ analogwrite(green2, GreenOld2); if (BlueOld2 <= 255 && BlueOld2 >= 0){ analogwrite(blue2, BlueOld2); delay(fade); Para assistir a diversas vídeo-aulas, basta acessar o nosso canal no youtube: http://youtube.com/smesergio Use o link que disponibilizamos a seguir para a aula nº 05: https://www.youtube.com/watch?v=iwv7f2iirya A seguir temos o nosso trabalho para casa ou mão na massa, que é um desafio onde disponibilizamos um tutorial e/ou uma vídeo-aula onde o aluno ou os alunos do grupo deverão executar a tarefa proposta e trazer o resultado em nosso próximo encontro.
Veja abaixo 2 imagens do nosso carrinho pronto.
Use o link que disponibilizamos a seguir para assistir a vídeo-aula do Mão na Massa 05: https://www.youtube.com/watch?v=wtbggwldf80 Na montagem temos que tomar alguns cuidados básicos: Observe a polaridade dos fios do suporte de pilhas. Observe a posição do transistor. Tenha cuidado na soldagem do LDR que é um componente delicado. Instale o LDR num pedaço de canudinho ou em pedaço de tubo da caneta protegido com fita isolante ou adesiva escura. Tome muito cuidado com o ferro de solda. Cuidado com a cola quente. Teste e uso: Tampe o LDR de modo que ele não receba luz. Coloque as pilhas no suporte Deixando bater luz no LDR ou iluminando-o com a lanterna o motor deve girar. Se o motor não girar verifique se as pilhas estão bem encaixadas no suporte. Comprovado o funcionamento instale o circuito no carrinho, colando o motor, suporte de pilhas e fixando o circuito com o LDR devidamente posicionado. Se o carrinho andar de para trás, inverta as ligações do fio do motor. Comprovado o funcionamento, você deve procurar obter o máximo de desempenho do seu carrinho, alterando alguns elementos, como por exemplo: Experimente diversos tipos de engrenagens. Troque as rodas se achar necessário. Lubrifique os eixos. Obtenha o acionamento em linha reta. Diminua o peso onde for necessário. Mude a aerodinâmica do projeto onde for possível.
Não se esqueça... Crie o seu Cantinho da Reciclagem Para assistir a diversas vídeo-aulas, basta acessar o nosso canal no youtube: http://youtube.com/smesergio Criadores: Giany Abreu gianyabreu@yahoo.com.br Sergio Graças sergiogracas@yahoo.com.br Blog - http://tecnicolinux.blogspot.com