Академический Документы
Профессиональный Документы
Культура Документы
Hay una barra horizontal que muestra la tendencia en el nivel relativo de agua
dentro del pozo para una fcil e inmediata lectura.
# Include
#
#
#
#
#
#
#
#
#
Define
Define
Define
Define
Define
Define
Define
Define
Define
PING_PIN 13
BUZZER_PIN 8
SWITCH_INT 0 / * 0 => el pin 2 * /
PI 3.1415926535898
SUPERFICE_BASE (R_POZZO R_POZZO * * PI)
SIZE_BAR (16 * 5)
ALARM_ICON 0 / * cdigo * /
SOUND_ICON 6 / * cdigo * /
SOUND_ICON_ON 7 / * cdigo * /
#
#
#
#
#
#
#
Define
Define
Define
Define
Define
Define
Define
B00011,
};
lcd.createChar (SOUND_ICON, newChar);
newChar = {
B00100,
B10010,
B01001,
B01001,
B01001,
B10010,
B00100,
};
lcd.createChar (SOUND_ICON_ON, newChar);
pinMode (BUZZER_PIN, OUTPUT);
/ **
* BAJA para activar la alarma cada vez que el pin es baja,
* CHANGE para activar la alarma cada vez que cambia el valor pin
* Llegando a desencadenar cuando el pasador va de bajo a alto,
* La cada de cuando el pasador va de mayor a menor.
* /
attachInterrupt (SWITCH_INT, un botn, en aumento);
/ * Inicializar la comunicacin serial * /
Serial.begin (9600);
}
void loop () {
hWatherCm largo plazo;
int litros;
hWatherCm read_height = ();
if (check_alarm (hWatherCm)! = 0) / * lee la altura de nuevo wather * /
hWatherCm read_height = ();
lcd.clear ();
print_histogram (hWatherCm);
lcd.setCursor (0, 1);
lcd.print (hWatherCm);
lcd.print ("cm -");
/ / Litros = SUPERFICE_BASE * (hWather / 100,0) * 1000
l = piso (SUPERFICE_BASE * hWatherCm * 10);
lcd.print (litros);
lcd.print ("l");
lcd.setCursor (14, 1);
lcd.write (SOUND_ICON);
lcd.setCursor (15, 1);
if (! silencio)
lcd.write (SOUND_ICON_ON);
ms
lcd.write ('X');
/ *
Serial.print ("cm =");
Serial.println (hWatherCm);
* /
switch (check_alarm (hWatherCm)) {
Caso 1:
lcd.setCursor (0, 0);
lcd.write (ALARM_ICON);
zumbido (200);
delay (DELAY_1);
break;
Caso 2:
lcd.setCursor (0, 0);
lcd.write (ALARM_ICON);
zumbido (200);
retraso (200);
zumbido (200);
delay (DELAY_2);
break;
case 0: / / no hay ninguna alarma
delay (DELAY_0);
}
}
print_histogram void (int hWatherCm) {
int i;
bloks int;
flotan histograma;
/ / HWatherCm: HPOZZO histograma =: SIZE_BAR
histograma = (* SIZE_BAR hWatherCm) / H_POZZO;
histograma histograma + = 0.5;
bloks = (int) histograma / 5;
for (i = 0; i
lcd.write (5);
if ((int) (histograma)% 5> 0)
lcd.write ((int) (histograma) del 5%);
}
read_height tiempo () {
/ **
* Establecer las variables de duracin de la mesa de ping,
* Y el resultado distancia en centmetros:
* /
larga duracin, hWatherCm;
/ **
* El PING))) es provocada por un pulso de alta de 2 o ms microsegundos.
* Dar un pulso BAJO corto de antemano para asegurar un pulso de alta limpia:
* /
pinMode (PING_PIN, OUTPUT);
digitalWrite (PING_PIN, LOW);
delayMicroseconds (2);
digitalWrite (PING_PIN, HIGH);
delayMicroseconds (5);
digitalWrite (PING_PIN, LOW);
/ **
* El mismo pin se utiliza para leer la seal del PING))): un alto
* Pulso cuya duracin es el tiempo (en microsegundos) a partir del envo
* De la mesa de ping a la recepcin de su eco fuera de un objeto.
* /
pinMode (PING_PIN, INPUT);
= duracin PulseIn (PING_PIN, HIGH);
/ * Convertir el tiempo en una distancia * /