Quando usamos as portas analógicas do Arduino, o arduino irá fazer uma leitura de 0-1023 na porta digital, a leitura vai ser 0-1, mas na programação colocamos HIGH (1) e LOW (0).
O circuito do PushButton é fácil de montar mas tem que prestar atenção no botão nos terminais, ver onde ficar o NA e o NF (Normalmente Aberto e Fechado). O circuito do RGB é independente do botão os circuitos não se misturam como mostra a imagem a seguir:
Programação:
int led13 = 13;
int R = 11;
int G = 10;
int B = 9;
int botao13 = 2;
int valor13 = 0;
int botaoR = 3;
int valorR = 0;
int botaoG = 4;
int valorG = 0;
int botaoB = 5;
int valorB = 0;
int botaoReset = 6;
int valorReset = 0;
void setup()
{
pinMode(led13, OUTPUT);
pinMode(R, OUTPUT);
pinMode(G, OUTPUT);
pinMode(B, OUTPUT);
pinMode(botao13, INPUT);
pinMode(botaoR, INPUT);
pinMode(botaoG, INPUT);
pinMode(botaoB, INPUT);
pinMode(botaoReset, INPUT);
}
void loop()
{
// Liga a Desliga o Led13
valor13=digitalRead(botao13);
if(valor13 == HIGH)
{
digitalWrite(led13, HIGH);
}
else
{
digitalWrite(led13, LOW);
}
// Liga a Desliga Cores do RGB
valorR=digitalRead(botaoR);
valorG=digitalRead(botaoG);
valorB=digitalRead(botaoB);
valorReset=digitalRead(botaoReset);
if(valorR == HIGH)
{
digitalWrite(R, HIGH);
digitalWrite(G, LOW);
digitalWrite(B, LOW);
}
if(valorG == HIGH)
{
digitalWrite(R, LOW);
digitalWrite(G, HIGH);
digitalWrite(B, LOW);
}
if(valorB == HIGH)
{
digitalWrite(R, LOW);
digitalWrite(G, LOW);
digitalWrite(B, HIGH);
}
if(valorReset == HIGH)
{
digitalWrite(R, LOW);
digitalWrite(G, LOW);
digitalWrite(B, LOW);
}
}
Explicando a primeira parte da programação, o 1º botão só vai servir para ligar o LED quando for pressionado, quando não for, o LED fica apagado. Para fazer isso como vimos usei a programação else serve para fazer o contrario (dependendo da programação) do if, o Arduino irá ler assim: "SE (if) botão for igual a 1 (HIGH), o LED acende, DO CONTRARIO (else) caso o botão não fique pressionado o LED apaga. Não colocando o else, o Microcontrolador irá entender que quando pressionar uma vez o LED ficará acesso e não apaga.
Na programação, devemos sempre colocar até os mínimos detalhes como você quer, quando quer que uma situação (exemplo) o LED acenda e outra situação o LED apague, porque se não pode gerar conflito dependendo da programação.
Na segunda parte da programação, ai usei 4 botões para isso, cada um vai ligar uma única cor (sem fazer misturas de cores) e o quarto botão vai ser um botão de Reset que vai apagar todas as cores independendo de qual cor esteja acesso.
Como falei um pouco antes, eu tive que detalhar a programação falando como eu queria que funcionasse, que se eu aperta o botaoR, quero que só a cor vermelha acenda fique HIGH e outras LOW. Caso aperte o botaoG quero que só o verde acenda e os outros apaguem e caso eu aperte o botaoB só o azul fique HIGH e o resto LOW. Mas tipo fazendo isso em qualquer sequencia de quando eu apertar o botão, ai no botaoReset como quero que apague tudo deixei claro que quando eu aperta-se o botão, todos vão se apagar, vão ficar LOW.

Nenhum comentário:
Postar um comentário