SOBRE

LightBlog
Responsive Ads Here

terça-feira, 14 de maio de 2013

#5 Utilizando Potenciômetro no Arduino (2)


Neste post você irá aprender a manipular o valor gerado pelo potenciômetro e conforme o valor recebido será manipulado e representado pela fileira de LEDS.  A figura abaixo lista os componentes necessários para que o experimento possa ser realizado. 


A imagem abaixo mostra como os componentes devem ser ligados na protoboard. É importante que os componentes sejam ligados ao Arduino quando ele estiver desligado para não correr o risco de danificar a placa. Para esse experimento é aconselhavel utilizar o Arduino Mega, devido o número de portas Analógicas disponível.
Neste experimento é necessário que os LEDs e o potenciômetro sejam ligados nas portas analógicas do Arduino.
O vídeo abaixo mostra como o experimento funciona:


Após ligados os componentes conforme a imagem acima é preciso programar. Ligue o Arduino no computador e abra a interface de desenvolvimento e cole o código abaixo. As // no código significam comentário, ou seja, o que for escrito após as // a IDE do Arduino não considera como parte do código. Após colar o código, pressione  no menu superior e teste o potenciômetro no Arduino.

int potenciometro = 0; // Define a porta do //Arduino em que o potenciômetro vai utilizar
int led = A1;     //LED1
int led2 = A2;   //LED2
int led3 = A3;   //LED3
int led4 = A4;   //LED4
int led5 = A5;   //LED5
int led6 = A6;   //LED6
int valor = 0;   //Variável que irá receber o //valor do potenciômetro

//Funções de cada LED
void ligaLed1(); 
void ligaLed2();
void ligaLed3();
void ligaLed4();
void ligaLed5();
void ligaLed6();


void setup() {
  Serial.begin(9600);
// Seta todos as portas dos leds como saída
  pinMode(led,OUTPUT); 
  pinMode(led2,OUTPUT);
  pinMode(led3,OUTPUT);
  pinMode(led4,OUTPUT);
  pinMode(led5,OUTPUT);
  pinMode(led6,OUTPUT);  
}

void loop() {
//Recebe o valor do potenciômetro
  valor = analogRead(potenciometro); 
//Testa os valores para que seja
//ligar o LED correto
  if(valor < 170){
    ligaLed1();
  }else if (valor > 170 && valor < 340){
    ligaLed2();
  }else if(valor > 340 && valor < 510){
    ligaLed3();
  }else if(valor > 510 && valor < 680){
    ligaLed4();
  }else if(valor > 680 && valor < 850){
    ligaLed5();
  }else{
    ligaLed6();
  }
}
void ligaLed1(){
    analogWrite(led, 255);
    analogWrite(led2, 0);
    analogWrite(led3, 0);
    analogWrite(led4, 0);
    analogWrite(led5, 0);
    analogWrite(led6, 0);
}
void ligaLed2(){
    analogWrite(led,  0);
    analogWrite(led2, 255);
    analogWrite(led3, 0);
    analogWrite(led4, 0);
    analogWrite(led5, 0);
    analogWrite(led6, 0);
}
void ligaLed3(){
    analogWrite(led,  0);
    analogWrite(led2, 0);
    analogWrite(led3, 255);
    analogWrite(led4, 0);
    analogWrite(led5, 0);
    analogWrite(led6, 0);
}
void ligaLed4(){
    analogWrite(led,  0);
    analogWrite(led2, 0);
    analogWrite(led3, 0);
    analogWrite(led4, 255);
    analogWrite(led5, 0);
    analogWrite(led6, 0);
}
void ligaLed5(){
    analogWrite(led,  0);
    analogWrite(led2, 0);
    analogWrite(led3, 0);
    analogWrite(led4, 0);
    analogWrite(led5, 255);
    analogWrite(led6, 0);
}
void ligaLed6(){
    analogWrite(led,  0);
    analogWrite(led2, 0);
    analogWrite(led3, 0);
    analogWrite(led4, 0);
    analogWrite(led5, 0);
    analogWrite(led6, 255);
}