Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
main.cpp@1:8596494b7d9d, 2019-04-05 (annotated)
- Committer:
- nmirandal
- Date:
- Fri Apr 05 19:38:58 2019 +0000
- Revision:
- 1:8596494b7d9d
- Parent:
- 0:d66493246074
- Child:
- 2:ecd33165145b
PID y RTC
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
caarbelaezg | 0:d66493246074 | 1 | #include "mbed.h" |
caarbelaezg | 0:d66493246074 | 2 | #include <stdio.h> |
nmirandal | 1:8596494b7d9d | 3 | #include "ds3231.h" |
nmirandal | 1:8596494b7d9d | 4 | #include "TextLCD.h" |
nmirandal | 1:8596494b7d9d | 5 | |
nmirandal | 1:8596494b7d9d | 6 | Serial master(USBTX,USBRX);// Tx, Rx Computador |
nmirandal | 1:8596494b7d9d | 7 | Serial GSM(PTE22,PTE23);// Tx, Rx Módulo de bluetooth |
nmirandal | 1:8596494b7d9d | 8 | Ds3231 rtc(A4, A5); |
caarbelaezg | 0:d66493246074 | 9 | |
caarbelaezg | 0:d66493246074 | 10 | |
nmirandal | 1:8596494b7d9d | 11 | /* |
caarbelaezg | 0:d66493246074 | 12 | DigitalOut LedVerde(LED2); |
caarbelaezg | 0:d66493246074 | 13 | DigitalOut LedRojo(LED1); |
caarbelaezg | 0:d66493246074 | 14 | DigitalOut LedAzul(LED3); |
nmirandal | 1:8596494b7d9d | 15 | */ |
caarbelaezg | 0:d66493246074 | 16 | |
nmirandal | 1:8596494b7d9d | 17 | |
nmirandal | 1:8596494b7d9d | 18 | int vo, hb, lb; |
nmirandal | 1:8596494b7d9d | 19 | int P, I, D,S,AAAA=2000,MM,DD,wd=1,HH,mm,ss,mode,am_pm; |
nmirandal | 1:8596494b7d9d | 20 | float p,i,d,s,q0,q1,q2,e,e_1,e_2,u,u_1; |
nmirandal | 1:8596494b7d9d | 21 | char command[16], control='F'; |
nmirandal | 1:8596494b7d9d | 22 | float Kp=12.0, Ki=5.0, Kd=0.02, sp=2.0/3.3, T=0.02; |
nmirandal | 1:8596494b7d9d | 23 | bool PID,CLK; |
nmirandal | 1:8596494b7d9d | 24 | uint8_t vo_lb, vo_hb, j, aa; |
nmirandal | 1:8596494b7d9d | 25 | uint16_t rtn_val; |
nmirandal | 1:8596494b7d9d | 26 | char chain[40], character; |
nmirandal | 1:8596494b7d9d | 27 | |
nmirandal | 1:8596494b7d9d | 28 | ds3231_time_t hora = {HH,mm,ss=45,am_pm,mode};//{horas,minutos,segundos,AM/PM,12/24H} |
nmirandal | 1:8596494b7d9d | 29 | ds3231_calendar_t fecha= {AAAA,MM,DD,wd};//{años,mes,días,dia de semana} |
nmirandal | 1:8596494b7d9d | 30 | |
nmirandal | 1:8596494b7d9d | 31 | |
nmirandal | 1:8596494b7d9d | 32 | AnalogIn input(PTB1); // voltage measurement |
nmirandal | 1:8596494b7d9d | 33 | AnalogOut u_control(PTE30);// Input voltage for the circuit |
nmirandal | 1:8596494b7d9d | 34 | DigitalOut LedVerde(LED2); |
nmirandal | 1:8596494b7d9d | 35 | |
nmirandal | 1:8596494b7d9d | 36 | TextLCD lcd(PTE5, PTE4, PTE3, PTE2, PTB11, PTB10); // rs, e, d4-d7 |
nmirandal | 1:8596494b7d9d | 37 | |
nmirandal | 1:8596494b7d9d | 38 | Timer k,t,rtc_t; |
nmirandal | 1:8596494b7d9d | 39 | |
nmirandal | 1:8596494b7d9d | 40 | //########### Reads a incoming chain of characters ############################# |
nmirandal | 1:8596494b7d9d | 41 | void get_chain() |
nmirandal | 1:8596494b7d9d | 42 | { |
nmirandal | 1:8596494b7d9d | 43 | j=0; |
nmirandal | 1:8596494b7d9d | 44 | k.start(); |
nmirandal | 1:8596494b7d9d | 45 | while(1) { |
nmirandal | 1:8596494b7d9d | 46 | |
nmirandal | 1:8596494b7d9d | 47 | |
nmirandal | 1:8596494b7d9d | 48 | if(GSM.readable()) { |
nmirandal | 1:8596494b7d9d | 49 | character=GSM.getc(); |
nmirandal | 1:8596494b7d9d | 50 | chain[j]=character; |
nmirandal | 1:8596494b7d9d | 51 | |
nmirandal | 1:8596494b7d9d | 52 | j++; |
nmirandal | 1:8596494b7d9d | 53 | } |
nmirandal | 1:8596494b7d9d | 54 | if(k.read()>.2) { |
nmirandal | 1:8596494b7d9d | 55 | k.stop(); |
nmirandal | 1:8596494b7d9d | 56 | k.reset(); |
nmirandal | 1:8596494b7d9d | 57 | break; |
nmirandal | 1:8596494b7d9d | 58 | } |
nmirandal | 1:8596494b7d9d | 59 | } |
nmirandal | 1:8596494b7d9d | 60 | } |
nmirandal | 1:8596494b7d9d | 61 | |
nmirandal | 1:8596494b7d9d | 62 | //############### Removes all the data in the buffer ########################### |
nmirandal | 1:8596494b7d9d | 63 | void reset_var() |
nmirandal | 1:8596494b7d9d | 64 | { |
nmirandal | 1:8596494b7d9d | 65 | for (int i=0; i<sizeof(chain); i++) { |
nmirandal | 1:8596494b7d9d | 66 | chain[i]='\0'; |
nmirandal | 1:8596494b7d9d | 67 | } |
nmirandal | 1:8596494b7d9d | 68 | } |
nmirandal | 1:8596494b7d9d | 69 | |
nmirandal | 1:8596494b7d9d | 70 | |
nmirandal | 1:8596494b7d9d | 71 | //########### This function configures the RTC ################################ |
nmirandal | 1:8596494b7d9d | 72 | |
nmirandal | 1:8596494b7d9d | 73 | void set_rtc() |
nmirandal | 1:8596494b7d9d | 74 | { |
nmirandal | 1:8596494b7d9d | 75 | ds3231_time_t hora = {HH, mm, ss, am_pm, 1}; |
nmirandal | 1:8596494b7d9d | 76 | ds3231_calendar_t fecha= {AAAA%100,MM,DD,wd}; |
nmirandal | 1:8596494b7d9d | 77 | |
nmirandal | 1:8596494b7d9d | 78 | if(!rtc.set_calendar(fecha)) { |
nmirandal | 1:8596494b7d9d | 79 | |
nmirandal | 1:8596494b7d9d | 80 | master.printf("\r\n\r\n Reloj Configurado el %d / %d / %d ",DD,MM,AAAA); |
nmirandal | 1:8596494b7d9d | 81 | |
nmirandal | 1:8596494b7d9d | 82 | if(!rtc.set_time(hora)) { |
nmirandal | 1:8596494b7d9d | 83 | if(hora.am_pm)master.printf("a las %d:%d:%d PM\r\n\r\n\r\n",HH,mm,ss); |
nmirandal | 1:8596494b7d9d | 84 | else master.printf("a las %d:%d:%d AM\r\n\r\n\r\n",HH,mm,ss); |
nmirandal | 1:8596494b7d9d | 85 | } |
nmirandal | 1:8596494b7d9d | 86 | } |
nmirandal | 1:8596494b7d9d | 87 | |
nmirandal | 1:8596494b7d9d | 88 | } |
nmirandal | 1:8596494b7d9d | 89 | |
nmirandal | 1:8596494b7d9d | 90 | |
nmirandal | 1:8596494b7d9d | 91 | //############## This function processes the received data depending on what |
nmirandal | 1:8596494b7d9d | 92 | //############## it's suppoused to be for ##################################### |
nmirandal | 1:8596494b7d9d | 93 | |
nmirandal | 1:8596494b7d9d | 94 | |
nmirandal | 1:8596494b7d9d | 95 | void request() |
nmirandal | 1:8596494b7d9d | 96 | { |
nmirandal | 1:8596494b7d9d | 97 | lcd.cls(); |
nmirandal | 1:8596494b7d9d | 98 | if(chain[0]=='R') { |
nmirandal | 1:8596494b7d9d | 99 | control='N'; |
nmirandal | 1:8596494b7d9d | 100 | |
nmirandal | 1:8596494b7d9d | 101 | |
nmirandal | 1:8596494b7d9d | 102 | |
nmirandal | 1:8596494b7d9d | 103 | } else if (chain[0]=='S') { |
nmirandal | 1:8596494b7d9d | 104 | control='F'; |
nmirandal | 1:8596494b7d9d | 105 | |
nmirandal | 1:8596494b7d9d | 106 | |
nmirandal | 1:8596494b7d9d | 107 | |
nmirandal | 1:8596494b7d9d | 108 | } else if (chain[0]=='P') { |
nmirandal | 1:8596494b7d9d | 109 | sscanf (chain,"%*s %d%f%*s %d%f%*s %d%f%*s %d%f",&P,&p,&I,&i,&D,&d,&S,&s); |
nmirandal | 1:8596494b7d9d | 110 | master.printf ("P= %d\r\np= %f\r\nI= %d\r\ni= %f\r\nD= %d\r\nd= %f\r\nS= %d\r\ns= %f\r\n",P,p,I,i,D,d,S,s); |
nmirandal | 1:8596494b7d9d | 111 | Kp=P+p; |
nmirandal | 1:8596494b7d9d | 112 | Ki=I+i; |
nmirandal | 1:8596494b7d9d | 113 | Kd=D+d; |
nmirandal | 1:8596494b7d9d | 114 | sp=(S+s)/3.3; |
nmirandal | 1:8596494b7d9d | 115 | master.printf ("Kp= %f\r\nKi= %f\r\nKd= %f\r\nsp= %f\r\n",Kp,Ki,Kd,3.3*sp); |
nmirandal | 1:8596494b7d9d | 116 | |
nmirandal | 1:8596494b7d9d | 117 | |
nmirandal | 1:8596494b7d9d | 118 | |
nmirandal | 1:8596494b7d9d | 119 | } else if (chain[0]=='A') { |
nmirandal | 1:8596494b7d9d | 120 | sscanf (chain,"%*s %d%*s %d%*s %d%*s %d%*s %d",&AAAA,&MM,&DD,&HH,&mm); |
nmirandal | 1:8596494b7d9d | 121 | master.printf ("AAAA= %d\r\nMM= %d\r\nDD= %d\r\nHH= %d\r\nmm= %d\r\n",AAAA,MM,DD,HH,mm); |
nmirandal | 1:8596494b7d9d | 122 | if(HH>12) { |
nmirandal | 1:8596494b7d9d | 123 | HH=HH-12; |
nmirandal | 1:8596494b7d9d | 124 | am_pm=1; |
nmirandal | 1:8596494b7d9d | 125 | } else { |
nmirandal | 1:8596494b7d9d | 126 | if(HH==0)HH=12; |
nmirandal | 1:8596494b7d9d | 127 | am_pm=0; |
nmirandal | 1:8596494b7d9d | 128 | } |
nmirandal | 1:8596494b7d9d | 129 | |
nmirandal | 1:8596494b7d9d | 130 | set_rtc(); |
nmirandal | 1:8596494b7d9d | 131 | |
nmirandal | 1:8596494b7d9d | 132 | } else if (chain[0]=='K') { |
nmirandal | 1:8596494b7d9d | 133 | CLK=1; |
nmirandal | 1:8596494b7d9d | 134 | |
nmirandal | 1:8596494b7d9d | 135 | } else if (chain[0]=='J') { |
nmirandal | 1:8596494b7d9d | 136 | PID=!PID; |
nmirandal | 1:8596494b7d9d | 137 | |
nmirandal | 1:8596494b7d9d | 138 | } else if (chain[0]=='k') { |
nmirandal | 1:8596494b7d9d | 139 | CLK=0; |
nmirandal | 1:8596494b7d9d | 140 | lcd.locate(0,0); |
nmirandal | 1:8596494b7d9d | 141 | lcd.printf("No device is"); |
nmirandal | 1:8596494b7d9d | 142 | lcd.locate(0,1); |
nmirandal | 1:8596494b7d9d | 143 | lcd.printf("connected!"); |
nmirandal | 1:8596494b7d9d | 144 | } else if (chain[0]=='j') { |
nmirandal | 1:8596494b7d9d | 145 | PID=0; |
nmirandal | 1:8596494b7d9d | 146 | lcd.locate(0,0); |
nmirandal | 1:8596494b7d9d | 147 | lcd.printf("No device is"); |
nmirandal | 1:8596494b7d9d | 148 | lcd.locate(0,1); |
nmirandal | 1:8596494b7d9d | 149 | lcd.printf("connected!"); |
nmirandal | 1:8596494b7d9d | 150 | } |
nmirandal | 1:8596494b7d9d | 151 | } |
nmirandal | 1:8596494b7d9d | 152 | |
nmirandal | 1:8596494b7d9d | 153 | //############### This is a function which manages the incoming data ########### |
nmirandal | 1:8596494b7d9d | 154 | |
nmirandal | 1:8596494b7d9d | 155 | void in_data() |
nmirandal | 1:8596494b7d9d | 156 | { |
nmirandal | 1:8596494b7d9d | 157 | get_chain(); |
nmirandal | 1:8596494b7d9d | 158 | master.printf("\r\n%s\r\n",chain); |
nmirandal | 1:8596494b7d9d | 159 | request(); |
nmirandal | 1:8596494b7d9d | 160 | reset_var(); |
nmirandal | 1:8596494b7d9d | 161 | } |
nmirandal | 1:8596494b7d9d | 162 | |
nmirandal | 1:8596494b7d9d | 163 | |
nmirandal | 1:8596494b7d9d | 164 | |
nmirandal | 1:8596494b7d9d | 165 | |
nmirandal | 1:8596494b7d9d | 166 | |
nmirandal | 1:8596494b7d9d | 167 | |
nmirandal | 1:8596494b7d9d | 168 | |
nmirandal | 1:8596494b7d9d | 169 | |
nmirandal | 1:8596494b7d9d | 170 | |
nmirandal | 1:8596494b7d9d | 171 | //########################################## Main starts here ################## |
nmirandal | 1:8596494b7d9d | 172 | |
nmirandal | 1:8596494b7d9d | 173 | |
nmirandal | 1:8596494b7d9d | 174 | |
caarbelaezg | 0:d66493246074 | 175 | int main(void) |
nmirandal | 1:8596494b7d9d | 176 | { |
nmirandal | 1:8596494b7d9d | 177 | |
nmirandal | 1:8596494b7d9d | 178 | GSM.baud(9600); |
nmirandal | 1:8596494b7d9d | 179 | GSM.format(8,Serial::None,1); |
nmirandal | 1:8596494b7d9d | 180 | LedVerde=1.0; |
nmirandal | 1:8596494b7d9d | 181 | |
nmirandal | 1:8596494b7d9d | 182 | t.start(); |
nmirandal | 1:8596494b7d9d | 183 | rtc_t.start(); |
nmirandal | 1:8596494b7d9d | 184 | |
nmirandal | 1:8596494b7d9d | 185 | GSM.attach(&in_data, Serial::RxIrq); |
nmirandal | 1:8596494b7d9d | 186 | lcd.cls(); |
nmirandal | 1:8596494b7d9d | 187 | lcd.locate(0,0); |
nmirandal | 1:8596494b7d9d | 188 | lcd.printf("Welcome!"); |
nmirandal | 1:8596494b7d9d | 189 | lcd.locate(0,1); |
nmirandal | 1:8596494b7d9d | 190 | lcd.printf("RTC & PID"); |
nmirandal | 1:8596494b7d9d | 191 | while(1) { |
nmirandal | 1:8596494b7d9d | 192 | |
nmirandal | 1:8596494b7d9d | 193 | |
nmirandal | 1:8596494b7d9d | 194 | vo = input.read_u16(); |
nmirandal | 1:8596494b7d9d | 195 | vo_hb=vo/256; //calculo la cifra mas significativa |
nmirandal | 1:8596494b7d9d | 196 | vo_lb=vo-vo_hb*256; //calculo la cifra menos significativa |
nmirandal | 1:8596494b7d9d | 197 | GSM.putc(vo_hb); |
nmirandal | 1:8596494b7d9d | 198 | GSM.putc(vo_hb); //mas significativa primero, menos despues si no no funciona!!! y con la orden PUTC solo asi le envia binarios |
nmirandal | 1:8596494b7d9d | 199 | |
nmirandal | 1:8596494b7d9d | 200 | /* |
nmirandal | 1:8596494b7d9d | 201 | vo_lb=vo&0xFF; |
nmirandal | 1:8596494b7d9d | 202 | vo_hb=vo>>8; |
nmirandal | 1:8596494b7d9d | 203 | GSM.putc(vo_lb); |
nmirandal | 1:8596494b7d9d | 204 | GSM.putc(vo_hb); |
nmirandal | 1:8596494b7d9d | 205 | |
nmirandal | 1:8596494b7d9d | 206 | if(vo<256) { //debo generar dos casos a APP inventor solo me recibe hex asi: 0xhhhh (4 cifras) |
nmirandal | 1:8596494b7d9d | 207 | GSM.putc(0); //si el numero es hasta 255 se le ponen dos ceros adelante a la secuencia de bits |
nmirandal | 1:8596494b7d9d | 208 | GSM.putc(vo); //luego la cifra menos significativa |
nmirandal | 1:8596494b7d9d | 209 | } |
nmirandal | 1:8596494b7d9d | 210 | if(vo>255) { //pero si es mayor a 255 las cifras deben ser convertidas a un hex de dos bytes de la siguiente forma |
nmirandal | 1:8596494b7d9d | 211 | vo_hb=vo/256; //calculo la cifra mas significativa |
nmirandal | 1:8596494b7d9d | 212 | vo_lb=vo-vo_hb*256; //calculo la cifra menos significativa |
nmirandal | 1:8596494b7d9d | 213 | GSM.putc(vo_hb); |
nmirandal | 1:8596494b7d9d | 214 | GSM.putc(vo_hb); //mas significativa primero, menos despues si no no funciona!!! y con la orden PUTC solo asi le envia binarios |
nmirandal | 1:8596494b7d9d | 215 | } |
nmirandal | 1:8596494b7d9d | 216 | |
nmirandal | 1:8596494b7d9d | 217 | */ |
nmirandal | 1:8596494b7d9d | 218 | if(t.read()>T && PID) { |
nmirandal | 1:8596494b7d9d | 219 | if(control=='N') { |
nmirandal | 1:8596494b7d9d | 220 | e=sp-1.0*input; |
nmirandal | 1:8596494b7d9d | 221 | |
nmirandal | 1:8596494b7d9d | 222 | q0=Kp+Ki*T/2.0+Kd/T; |
nmirandal | 1:8596494b7d9d | 223 | q1=-Kp+Ki*T/2.0-2.0*Kd/T; |
nmirandal | 1:8596494b7d9d | 224 | q2=Kd/T; |
nmirandal | 1:8596494b7d9d | 225 | |
nmirandal | 1:8596494b7d9d | 226 | u=u_1+q0*e+q1*e_1+q2*e_2; |
nmirandal | 1:8596494b7d9d | 227 | |
nmirandal | 1:8596494b7d9d | 228 | u_1=u; |
nmirandal | 1:8596494b7d9d | 229 | e_1=e; |
nmirandal | 1:8596494b7d9d | 230 | e_2=e_1; |
nmirandal | 1:8596494b7d9d | 231 | |
nmirandal | 1:8596494b7d9d | 232 | |
nmirandal | 1:8596494b7d9d | 233 | if(u>1.0)u=1.0; |
nmirandal | 1:8596494b7d9d | 234 | else if(u<0.0)u=0.0; |
nmirandal | 1:8596494b7d9d | 235 | LedVerde=0.0; |
nmirandal | 1:8596494b7d9d | 236 | } else { |
nmirandal | 1:8596494b7d9d | 237 | u=0.0; |
nmirandal | 1:8596494b7d9d | 238 | LedVerde=1.0; |
nmirandal | 1:8596494b7d9d | 239 | } |
caarbelaezg | 0:d66493246074 | 240 | |
nmirandal | 1:8596494b7d9d | 241 | u_control=u; |
nmirandal | 1:8596494b7d9d | 242 | t.stop(); |
nmirandal | 1:8596494b7d9d | 243 | t.reset(); |
nmirandal | 1:8596494b7d9d | 244 | t.start(); |
nmirandal | 1:8596494b7d9d | 245 | |
nmirandal | 1:8596494b7d9d | 246 | } else if (t.read()>T && PID) { |
nmirandal | 1:8596494b7d9d | 247 | u=0.0; |
nmirandal | 1:8596494b7d9d | 248 | LedVerde=1.0; |
nmirandal | 1:8596494b7d9d | 249 | }// end for if(t.read()>T) |
nmirandal | 1:8596494b7d9d | 250 | |
nmirandal | 1:8596494b7d9d | 251 | |
nmirandal | 1:8596494b7d9d | 252 | |
nmirandal | 1:8596494b7d9d | 253 | if(rtc_t.read()>=1.0 && CLK) { |
nmirandal | 1:8596494b7d9d | 254 | |
nmirandal | 1:8596494b7d9d | 255 | rtc.get_calendar(&fecha); |
nmirandal | 1:8596494b7d9d | 256 | rtc.get_time(&hora); |
nmirandal | 1:8596494b7d9d | 257 | if(aa==99 && fecha.year==0) { |
nmirandal | 1:8596494b7d9d | 258 | AAAA++; |
nmirandal | 1:8596494b7d9d | 259 | lcd.cls(); |
nmirandal | 1:8596494b7d9d | 260 | } |
nmirandal | 1:8596494b7d9d | 261 | aa=fecha.year; |
nmirandal | 1:8596494b7d9d | 262 | if(hora.seconds==0)lcd.cls(); |
nmirandal | 1:8596494b7d9d | 263 | if(hora.am_pm) { |
nmirandal | 1:8596494b7d9d | 264 | master.printf("HORA: %d:%d:%d PM ",hora.hours,hora.minutes,hora.seconds); |
nmirandal | 1:8596494b7d9d | 265 | lcd.locate(14,0); |
nmirandal | 1:8596494b7d9d | 266 | lcd.printf("PM"); |
nmirandal | 1:8596494b7d9d | 267 | } else { |
nmirandal | 1:8596494b7d9d | 268 | master.printf("HORA: %d:%d:%d AM ",hora.hours,hora.minutes,hora.seconds); |
nmirandal | 1:8596494b7d9d | 269 | lcd.locate(14,0); |
nmirandal | 1:8596494b7d9d | 270 | lcd.printf("AM"); |
nmirandal | 1:8596494b7d9d | 271 | } |
nmirandal | 1:8596494b7d9d | 272 | lcd.locate(0,0); |
nmirandal | 1:8596494b7d9d | 273 | lcd.printf("HORA %d:%d:%d",hora.hours,hora.minutes,hora.seconds); |
nmirandal | 1:8596494b7d9d | 274 | master.printf("FECHA %d / %d / %d \r\n",fecha.date,fecha.month,AAAA); |
nmirandal | 1:8596494b7d9d | 275 | lcd.locate(0,1); |
nmirandal | 1:8596494b7d9d | 276 | lcd.printf("FECHA %d/%d/%d",fecha.date,fecha.month,AAAA); |
nmirandal | 1:8596494b7d9d | 277 | |
nmirandal | 1:8596494b7d9d | 278 | |
nmirandal | 1:8596494b7d9d | 279 | rtc_t.stop(); |
nmirandal | 1:8596494b7d9d | 280 | rtc_t.reset(); |
nmirandal | 1:8596494b7d9d | 281 | rtc_t.start(); |
nmirandal | 1:8596494b7d9d | 282 | |
nmirandal | 1:8596494b7d9d | 283 | |
nmirandal | 1:8596494b7d9d | 284 | } else if (rtc_t.read()>=0.1 && PID) { |
nmirandal | 1:8596494b7d9d | 285 | |
nmirandal | 1:8596494b7d9d | 286 | lcd.locate(0,0); |
nmirandal | 1:8596494b7d9d | 287 | lcd.printf("Voltaje: %.2f V",3.3*input.read()); |
nmirandal | 1:8596494b7d9d | 288 | lcd.locate(0,1); |
nmirandal | 1:8596494b7d9d | 289 | lcd.printf("Set_point: %.2f V",3.3*sp); |
nmirandal | 1:8596494b7d9d | 290 | rtc_t.stop(); |
nmirandal | 1:8596494b7d9d | 291 | rtc_t.reset(); |
nmirandal | 1:8596494b7d9d | 292 | rtc_t.start(); |
nmirandal | 1:8596494b7d9d | 293 | } else if(rtc_t.read()>=1.0 && !PID && !CLK) { |
nmirandal | 1:8596494b7d9d | 294 | // lcd.cls(); |
nmirandal | 1:8596494b7d9d | 295 | }//end for if(rtc_t.read()>=1.0) |
nmirandal | 1:8596494b7d9d | 296 | |
nmirandal | 1:8596494b7d9d | 297 | |
nmirandal | 1:8596494b7d9d | 298 | |
nmirandal | 1:8596494b7d9d | 299 | |
nmirandal | 1:8596494b7d9d | 300 | }//end for while(1) |
nmirandal | 1:8596494b7d9d | 301 | }//end for void main() |
nmirandal | 1:8596494b7d9d | 302 | |
nmirandal | 1:8596494b7d9d | 303 | |
nmirandal | 1:8596494b7d9d | 304 | |
nmirandal | 1:8596494b7d9d | 305 |