Professional Documents
Culture Documents
CURSO:
Electrónica de potencia
TEMA:
PROYECTO FINAL
ALUMNOS:
CCALA ACHAHUANCO MICHAEL RUBEN 20110793
Arequipa-Peru
Control de nivel del agua de un tanque
Una aplicación típica de los sistemas microcontroladores es el control del
llenado de tinacos de agua en un edificio de condominios, ya que es común que
la presión con la que el agua llega a la toma principal del edificio no alcance un
valor suficiente como para subir en forma directa el agua a los tinacos en las
azoteas.
PARTE DE CONTROL
#include <definiciones.h>
void main(){
stup();
while(1){
inicio_flag=0;
nombre();
Delay_ms(1000);
integrantes();
Delay_ms(1000);
menu();
while(!inicio_flag){
kp=0;
do{
if(activado_flag==1){
if((aljibe_vacio==0)&&(aljibe_lleno==0)) Lcd_Out(1,10,"VACIO");
if((pozo_vacio==0)&&(pozo_lleno==0)) Lcd_Out(2,10,"VACIO");
}while (!kp);
tecla();
switch(kp){
}//fin main
void tecla(void);
void activado(void);
void desactivado(void);
void salir(void);
void stup(void);
void fase_inicio(void);
void fase_menu(void);
void fase_activado(void);
void fase_desactivado(void);
void stup(){
ADCON1=0x06;
INTCON=0xA0;
OPTION_REG=0XD5; //preescaler 64
TRISE0_bit=0;
TRISD0_bit=0;
TRISD1_bit=0;
TRISD2_bit=0;
TRISD3_bit=0;
TRISD4_bit=0;
Lcd_Init();
activado_flag=0;
PORTE=0x00;
PORTD=0x00;
void tecla(){
switch (kp) {
//case 10: kp = 42; break; // '*' // Uncomment this block for keypad4x3
//default: kp += 48;
void activado(){
activado_flag=1;
Lcd_Out(1,1,txt16);
Delay_ms(1000);
Lcd_Out(1,1,txt14);
IRP_bit=1;
Lcd_Out(2,1,txt13);
Lcd_Out(1,17,txt15);
Lcd_Out(2,17,txt12);
IRP_bit=0;
void desactivado(){
activado_flag=0;
RE0_bit=0;
RD4_bit=0;
IRP_bit=1;
Lcd_Out(1,1,txt7);
Lcd_Out(2,17,txt12);
IRP_bit=0;
Lcd_Out(2,1,"Desactivado");
void salir(){
inicio_flag=1;
activado_flag=0;
void interrupt(){
if(activado_flag==1){
if((pozo_vacio==0)||aljibe_lleno==1){
RE0_bit=0;
RD4_bit=0;
bomba_flag=0;
if((pozo_lleno==1)&&(aljibe_vacio==0)){
RE0_bit=1;
RD4_bit=1;
bomba_flag=1;
}
TMR0=131;
TMR0IF_bit=0;
void fase_inicio(){
RD0_bit=1;
RD1_bit=0;
RD2_bit=0;
RD3_bit=0;
void fase_menu(){
RD0_bit=0;
RD1_bit=1;
RD2_bit=0;
RD3_bit=0;
void fase_activado(){
RD0_bit=0;
RD1_bit=0;
RD2_bit=1;
RD3_bit=0;
void fase_desactivado(){
RD0_bit=0;
RD1_bit=0;
RD2_bit=0;
RD3_bit=1;
}
void nombre(void);
void integrantes(void);
void menu(void);
void nombre(){
IRP_bit=1;
Lcd_Out(1,1,txt7);
Lcd_Out(2,1,txt9);
IRP_bit=0;
Lcd_Out(1,17,"_______________");
IRP_bit=1;
Lcd_Out(2,17,txt8);
IRP_bit=0;
void integrantes(){
Lcd_Out(1,1,txt21);
Lcd_Out(2,1,".");
Delay_ms(500);
Lcd_Out(2,1,"..");
Delay_ms(500);
Lcd_Out(2,1,"...");
Delay_ms(500);
IRP_bit=1;
Lcd_Out(1,1,txt3);
Lcd_Out(2,1,txt4);
Lcd_Out(1,17,txt6);
Lcd_Out(2,17,txt5);
IRP_bit=0;
void menu(){
IRP_bit=1;
Lcd_Out(1,1,txt7);
Lcd_Out(2,1,txt10);
Lcd_Out(1,17,txt11);
Lcd_Out(2,17,txt12);
IRP_bit=0;
}
BIBLIOGRAFIA:
-https://es.wikipedia.org/wiki/Control_de_nivel
-http://www.aecosensors.com/index.cfm?&fuseaction=prodottiCatPadre&id=2&t=/aeco-level-
controls/&languageID=ES
-https://www.pepperl-fuchs.com/spain/es/classid_261.htm
-https://josebarca1.wordpress.com/2015/12/12/control-de-nivel-de-un-tanque/
-https://www.yoreparo.com/electronica/electronica-digital/preguntas/140371/control-de-
nivel-on-off-de-con-microcontrolador-con-lcd