#include "mbed.h" AnalogIn LM35(PTB0); AnalogIn POT(PTB1); DigitalOut dir_1(PTA13); DigitalOut dir_2(PTD5); DigitalOut led(LED_GREEN); DigitalOut rele(PTA12); PwmOut fan(PTD4); Ticker tick; Serial PC(USBTX, USBRX); int aux = 0; //variável global void interrup() { aux = 1; } int main() { int Acao=0; float T = 0.2, D_Temp = 0.5, Temp=0.0, Erro = 0.0, Ref = 0.0; dir_1=1; dir_2=0; //Direção da ponte H fan=0.0; fan.period(0.0001); led=1; rele=1; Acao = !led; tick.attach(&interrup, T); //prepara timer de T seg. while(1) { if (aux==1) { aux = 0; Ref = 15*POT+35; //Referencia varia de 35oC a 50oC ao variar o POT Temp=LM35*330.0; //Converte leitura para oC Erro = -(Ref - Temp); //Ação direta - refrigeração if(Erro > D_Temp) { fan = 1.0; Acao = 1; } else if (Erro < -D_Temp) { fan = 0.0; Acao = 0; } led = !Acao; PC.printf("%d \t %2.1f \t %2.1f\r\n", Acao, Ref, Temp); } } }