Centro de Formação Dr. Rui Grácio :: acção de formação - formador: Jorge de Sousa Pires
Introdução à Robótica: o mundo das coisas acopladas - Physical Computing Technology Enhanced Learning (TEL)

introdução à robótica

.código (sketch)

/* -----------------------------------------------------------------------+
| PROJECTO - 5 LEDS - THERMISTOR - FAN - BUZZER
+ ---------------------------------------------------------------------- */
const int pinAnalogico = A0; // pin analógico de input do sensor
const 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