#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, 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); //=(Temp-Ref) Ação direta - refrigeração if(Erro > 0) { fan = 1.0; Acao = 1; } else { fan = 0.0; Acao = 0; } led = !Acao; PC.printf("%d \t %2.1f \t %2.1f\r\n", Acao, Ref, Temp); } } }