Material Utilizado:
Código:
//pino analógico onde o potenciômetro está conectado.
int const potenciometro = 0;
//pino digital onde o TIP120 está conectado.
int const transistor = 9;
//pinos digitais
int const ledBranco = 2; //led verde está conectado.
int const ledAzul = 3; //led amarelo está conectado.
int const ledVermelho = 4; //led vermelho está conectado.
int const ledVermelho2 = 5;
const int Buzzer = 12;
//armazenará o valor lido no potenciômetro.
int valPotenciometro = 0;
//void setup é executada uma vez quando o arduino é ligado.
void setup() {
//definindo o pino digital 9 como de saída.
pinMode(transistor, OUTPUT);
//definindo pinos dos leds como de saída
pinMode(ledBranco, OUTPUT);
pinMode(ledAzul, OUTPUT);
pinMode(ledVermelho, OUTPUT);
pinMode(ledVermelho2, OUTPUT);
pinMode(Buzzer, OUTPUT);
}
//Função loop é executada repetidamente enquanto
//o arduino estiver ligado.
void loop() {
//lendo o valor do potenciômetro (0 até 1023) e
//dividindo por 4 para obter um valor entre 0 e 255
//que são valores adequados para a base do TIP120.
valPotenciometro = analogRead(potenciometro) / 4;
//atribuindo o valor lido no potenciômetro a
//base do TIP120.
analogWrite(transistor, valPotenciometro);
//acendendo e pagando leds conforme posição do
//potenciômetro
controlarLeds();
}
void controlarLeds() {
//Led verde - acendendo ou apagando conforme
//posição do potenciômetro.
if (valPotenciometro >= 40) {
digitalWrite(ledBranco,HIGH); }
else {digitalWrite(ledBranco,LOW);
}
//Led amarelo - acendendo ou apagando conforme
//posição do potenciômetro.
if (valPotenciometro >= 125) {
digitalWrite(ledAzul,HIGH);
} else { digitalWrite(ledAzul,LOW);}
//Led vermelho - acendendo ou apagando conforme
//posição do potenciômetro.
if (valPotenciometro >= 210) {
digitalWrite(ledVermelho,HIGH);
} else {digitalWrite(ledVermelho,LOW);}
if (valPotenciometro == 40) {
digitalWrite(Buzzer,HIGH);
delay(200);
}
else {digitalWrite(Buzzer,LOW);}
if (valPotenciometro == 125) {
digitalWrite(Buzzer,HIGH);
delay(200);}
else {digitalWrite(Buzzer,LOW);}
if (valPotenciometro == 210) {
digitalWrite(Buzzer,HIGH);
delay(200);}
else {digitalWrite(Buzzer,LOW);}
if(valPotenciometro >= 250){
digitalWrite(ledVermelho2,HIGH);
digitalWrite(Buzzer,HIGH);
delay(200);
digitalWrite(Buzzer,LOW);
delay(200);
digitalWrite(Buzzer,HIGH);
delay(200);
digitalWrite(Buzzer,LOW);
delay(200);
digitalWrite(Buzzer,HIGH);
delay(200);
digitalWrite(Buzzer,LOW);
}
else {digitalWrite(Buzzer,LOW);
digitalWrite(ledVermelho2,LOW);}
}