/* ANALISE EM MALHA ABERTA */ #include #include #include #include #include /* include A to D driver */ void main() { float nivel,niveltq1; float ch_saida,i_saida; float Tensao_motor=0.0; char a; reset_ad(); // Reseta as entradas AD da placa de aquisi‡Ćo reset_da(); // Reseta as saidas DA da placa de aquisi‡Ćo clrscr(); do{ a = ' '; if(kbhit()) { a = getch(); flushall(); } if(a == 'u') { textcolor(WHITE); gotoxy(1,21); cprintf("ENTRE COM O VALOR: "); scanf("%f",&Tensao_motor); gotoxy(1,21); printf(" "); } textcolor(WHITE); gotoxy(30,6); cprintf("NIVEL_TANQUE (CM)"); gotoxy(30,8); cprintf("[u] TENSAO_MOTOR"); gotoxy(30,10); cprintf("[S] PARA SAIR"); /*----- recebendo dados ----------------------*/ nivel=adin(0); //receber sinal conversao niveltq1=6.25*itov(nivel); /*------------ mostrando os dados -------------*/ textcolor(YELLOW); gotoxy(50,8); cprintf("%6.4f",Tensao_motor); gotoxy(50,6); cprintf("%6.4f",niveltq1); /*enviar sinal conversao DA*/ if (Tensao_motor>3) Tensao_motor = 3; if (Tensao_motor<-3) Tensao_motor = -3; i_saida = vtoi(Tensao_motor); // Converte tenso para inteiro ch_saida = 0; daout(ch_saida,i_saida); delay(100); }while ((a!= 'S') && (a!='s')); Tensao_motor = 0.0; i_saida = vtoi(Tensao_motor); ch_saida = 0; daout(ch_saida,i_saida); } /* fim do programa */