Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Nivel Ag
Nivel Ag
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 * /