.código (sketch)
/* -----------------------------------------------------------------------+
| PROJECTO - 5 LEDS - THERMISTOR - FAN - BUZZER
+ ---------------------------------------------------------------------- */
const int pinAnalogico = A0; // pin analógico de input do sensorconst int buzzer = 8; // buzzer no pin 8 (digital)
const int fan = 7; // ventoinha no pin 7 (digital)
int LED[] = {9,10,11,12,13}; // LEDs nos pins 9 a 13 (digital)
int valorSensor = 0; // valor lido do sensor
int valorOutput = 0; // conversão do valor do sensor para 0 a 4
int i=0; // controlo de ciclo para percorrer os 5 LEDs
/* --------------------------------------------------------------------- */
void setup() {// inicializar comunicação série a 9600 bps:
Serial.begin(9600);
// inicializar os 5 LEDs para output
for (i=0;i<5;i++) {
pinMode(LED[i], OUTPUT);
}
pinMode(fan, OUTPUT);
pinMode(buzzer, OUTPUT);
}
/* --------------------------------------------------------------------- */
void loop() {// leitura analógica do sensor de temperatura:
valorSensor = analogRead(pinAnalogico);
// converter o sinal do sensor para valores discretos de 0 a 4:
valorOutput = map(valorSensor, 342, 460, 0, 4);
// percorrer os 5 LEDs e ligá-los/desligá-los de acordo com o valor
// da variável valorOutput:
for (i=0;i<5;i++) {if (valorOutput>=i) digitalWrite(LED[i],HIGH);
if (valorOutput<i) digitalWrite(LED[i],LOW);
}
// se chegar ao valor máximo permitido, o buzzer apita:
if (valorOutput==4) digitalWrite(buzzer,HIGH);
delay(1);
digitalWrite(buzzer,LOW);
// ligar / desligar a fan, quando se atinge o meio - valor 2 de 0 a 4:
if (valorOutput>1) digitalWrite(fan,HIGH);
if (valorOutput<2) digitalWrite(fan,LOW);
// retirar comentário da linha abaixo para observar valores do sensor:
// Serial.println(valorSensor);
}
/* --- FIM --- */
Download do código e esquema da montagem (Fritzing): proj5leds.zip
0 Comentários:
Enviar um comentário
Subscrever Enviar feedback [Atom]
<< Página inicial