Project embedded C:16/12/2014

Dependencies:   DS1307 TextLCD mbed

Committer:
ninoderkinderen
Date:
Tue Dec 16 14:23:38 2014 +0000
Revision:
0:9bf4c3c71b7a
Project embedded C: programma 16/12/2014

Who changed what in which revision?

UserRevisionLine numberNew contents of line
ninoderkinderen 0:9bf4c3c71b7a 1 //library's
ninoderkinderen 0:9bf4c3c71b7a 2 #include "mbed.h"
ninoderkinderen 0:9bf4c3c71b7a 3 #include "TextLCD.h"
ninoderkinderen 0:9bf4c3c71b7a 4 #include "ds1307.h"
ninoderkinderen 0:9bf4c3c71b7a 5 //Pin initialisatie
ninoderkinderen 0:9bf4c3c71b7a 6 AnalogIn binnen(p19);//pin 19:Analog In
ninoderkinderen 0:9bf4c3c71b7a 7 AnalogIn buiten(p20);//pin 20:Analog In
ninoderkinderen 0:9bf4c3c71b7a 8 TextLCD lcd(p15, p16, p21, p22, p23, p24); //rs, e, d4-d7
ninoderkinderen 0:9bf4c3c71b7a 9 InterruptIn knopUP(p6);//pin6:Interrupt
ninoderkinderen 0:9bf4c3c71b7a 10 InterruptIn knopDOWN(p5);//pin5:Interrupt
ninoderkinderen 0:9bf4c3c71b7a 11 InterruptIn knopINSTEL(p7);//pin7:Interrupt
ninoderkinderen 0:9bf4c3c71b7a 12 InterruptIn knopBACK(p8);//pin8:Interrupt
ninoderkinderen 0:9bf4c3c71b7a 13 DS1307 my1307(p9, p10);//pin9:sda I2C
ninoderkinderen 0:9bf4c3c71b7a 14 DigitalOut relais(p30);//pin10:scl I2C
ninoderkinderen 0:9bf4c3c71b7a 15 DigitalOut RGBblauw(p29);//pin29:digital out
ninoderkinderen 0:9bf4c3c71b7a 16 DigitalOut RGBgroen(p28);//pin28:digital out
ninoderkinderen 0:9bf4c3c71b7a 17 DigitalOut RGBrood(p27);//pin27:digital out
ninoderkinderen 0:9bf4c3c71b7a 18 PwmOut Servo(p25);//p25:pwm out
ninoderkinderen 0:9bf4c3c71b7a 19 Serial pc(USBTX,USBRX);//serial port:USB
ninoderkinderen 0:9bf4c3c71b7a 20 //variabelen
ninoderkinderen 0:9bf4c3c71b7a 21 float i = 0;//waarde om binnentempertauur in te steken
ninoderkinderen 0:9bf4c3c71b7a 22 float j = 0;//waarde om buitentemperatuur in te steken
ninoderkinderen 0:9bf4c3c71b7a 23 int reftemp = 20;//referentietemperatuur
ninoderkinderen 0:9bf4c3c71b7a 24 int load=0;//load program
ninoderkinderen 0:9bf4c3c71b7a 25 //variabelen RTC
ninoderkinderen 0:9bf4c3c71b7a 26 int sec;
ninoderkinderen 0:9bf4c3c71b7a 27 int min;
ninoderkinderen 0:9bf4c3c71b7a 28 int hours;
ninoderkinderen 0:9bf4c3c71b7a 29 int day;
ninoderkinderen 0:9bf4c3c71b7a 30 int date;
ninoderkinderen 0:9bf4c3c71b7a 31 int month;
ninoderkinderen 0:9bf4c3c71b7a 32 int year;
ninoderkinderen 0:9bf4c3c71b7a 33 //RTC read routine
ninoderkinderen 0:9bf4c3c71b7a 34 void test_rw(int test) {
ninoderkinderen 0:9bf4c3c71b7a 35 }
ninoderkinderen 0:9bf4c3c71b7a 36 //interruptroutine: referentietemp instellen
ninoderkinderen 0:9bf4c3c71b7a 37 void instellen()
ninoderkinderen 0:9bf4c3c71b7a 38 {
ninoderkinderen 0:9bf4c3c71b7a 39 knopINSTEL.rise(NULL);
ninoderkinderen 0:9bf4c3c71b7a 40 knopDOWN.rise(NULL);
ninoderkinderen 0:9bf4c3c71b7a 41 knopUP.rise(NULL);//interrupt disable
ninoderkinderen 0:9bf4c3c71b7a 42 wait(0.5);
ninoderkinderen 0:9bf4c3c71b7a 43
ninoderkinderen 0:9bf4c3c71b7a 44 while(knopINSTEL == 0)
ninoderkinderen 0:9bf4c3c71b7a 45 {
ninoderkinderen 0:9bf4c3c71b7a 46 lcd.locate(0,0);
ninoderkinderen 0:9bf4c3c71b7a 47 lcd.printf(" Instellen Temp");
ninoderkinderen 0:9bf4c3c71b7a 48 lcd.locate(0,1);
ninoderkinderen 0:9bf4c3c71b7a 49 lcd.printf(" Temp = %iC", reftemp);//Printen ingestelde referentietemp
ninoderkinderen 0:9bf4c3c71b7a 50 if(knopUP == 1)//knopUP bediend --> reftemp +1
ninoderkinderen 0:9bf4c3c71b7a 51 {
ninoderkinderen 0:9bf4c3c71b7a 52 reftemp++;
ninoderkinderen 0:9bf4c3c71b7a 53 wait(0.4);
ninoderkinderen 0:9bf4c3c71b7a 54 }
ninoderkinderen 0:9bf4c3c71b7a 55 if(knopDOWN == 1)//knopDOWN bediend --> reftemp -1
ninoderkinderen 0:9bf4c3c71b7a 56 {
ninoderkinderen 0:9bf4c3c71b7a 57 reftemp--;
ninoderkinderen 0:9bf4c3c71b7a 58 wait(0.4);
ninoderkinderen 0:9bf4c3c71b7a 59 }
ninoderkinderen 0:9bf4c3c71b7a 60 if (reftemp == 33)//hysteresis reftemp
ninoderkinderen 0:9bf4c3c71b7a 61 {
ninoderkinderen 0:9bf4c3c71b7a 62 reftemp = 15;
ninoderkinderen 0:9bf4c3c71b7a 63 }
ninoderkinderen 0:9bf4c3c71b7a 64 if (reftemp == 14)//hysteresis reftemp
ninoderkinderen 0:9bf4c3c71b7a 65 {
ninoderkinderen 0:9bf4c3c71b7a 66 reftemp = 32;
ninoderkinderen 0:9bf4c3c71b7a 67 }
ninoderkinderen 0:9bf4c3c71b7a 68 }
ninoderkinderen 0:9bf4c3c71b7a 69 }
ninoderkinderen 0:9bf4c3c71b7a 70 //interruptroutine: tijdsweergave
ninoderkinderen 0:9bf4c3c71b7a 71 void back()
ninoderkinderen 0:9bf4c3c71b7a 72 {
ninoderkinderen 0:9bf4c3c71b7a 73 wait(0.5);
ninoderkinderen 0:9bf4c3c71b7a 74 lcd.cls();//LCD clead
ninoderkinderen 0:9bf4c3c71b7a 75 knopBACK.rise(NULL);
ninoderkinderen 0:9bf4c3c71b7a 76 knopUP.rise(NULL);//disable interrupt
ninoderkinderen 0:9bf4c3c71b7a 77 while(knopBACK == 0)//doorolopen wanneer knopBack NIET is ingedrukt,bij bediening uit routine
ninoderkinderen 0:9bf4c3c71b7a 78 {
ninoderkinderen 0:9bf4c3c71b7a 79 test_rw(my1307.gettime( &sec, &min, &hours, &day, &date, &month, &year));//uitlezen tijd RTC
ninoderkinderen 0:9bf4c3c71b7a 80 //Dag uitschrijven op lcd
ninoderkinderen 0:9bf4c3c71b7a 81 if(day == 1)
ninoderkinderen 0:9bf4c3c71b7a 82 {lcd.locate(3,1);
ninoderkinderen 0:9bf4c3c71b7a 83 lcd.printf("Ma");}
ninoderkinderen 0:9bf4c3c71b7a 84 if(day == 2)
ninoderkinderen 0:9bf4c3c71b7a 85 {lcd.locate(3,1);
ninoderkinderen 0:9bf4c3c71b7a 86 lcd.printf("Di");}
ninoderkinderen 0:9bf4c3c71b7a 87 if(day == 3)
ninoderkinderen 0:9bf4c3c71b7a 88 {lcd.locate(3,1);
ninoderkinderen 0:9bf4c3c71b7a 89 lcd.printf("Wo");}
ninoderkinderen 0:9bf4c3c71b7a 90 if(day == 4)
ninoderkinderen 0:9bf4c3c71b7a 91 {lcd.locate(3,1);
ninoderkinderen 0:9bf4c3c71b7a 92 lcd.printf("Do");}
ninoderkinderen 0:9bf4c3c71b7a 93 if(day == 5)
ninoderkinderen 0:9bf4c3c71b7a 94 {lcd.locate(3,1);
ninoderkinderen 0:9bf4c3c71b7a 95 lcd.printf("Vr");}
ninoderkinderen 0:9bf4c3c71b7a 96 if(day == 6)
ninoderkinderen 0:9bf4c3c71b7a 97 {lcd.locate(3,1);
ninoderkinderen 0:9bf4c3c71b7a 98 lcd.printf("Za");}
ninoderkinderen 0:9bf4c3c71b7a 99 if(day == 7)
ninoderkinderen 0:9bf4c3c71b7a 100 {lcd.locate(3,1);
ninoderkinderen 0:9bf4c3c71b7a 101 lcd.printf("Zo");}
ninoderkinderen 0:9bf4c3c71b7a 102 wait(0.2);
ninoderkinderen 0:9bf4c3c71b7a 103 test_rw(my1307.gettime( &sec, &min, &hours, &day, &date, &month, &year));//uitlezen tijd RTC
ninoderkinderen 0:9bf4c3c71b7a 104 //Uur min sec //Dag datum maand jaar
ninoderkinderen 0:9bf4c3c71b7a 105 if(sec >= 9 && min >= 9 && hours >= 9)
ninoderkinderen 0:9bf4c3c71b7a 106 {
ninoderkinderen 0:9bf4c3c71b7a 107 lcd.locate(4,0);
ninoderkinderen 0:9bf4c3c71b7a 108 lcd.printf("%d:%d:%d",hours,min,sec);
ninoderkinderen 0:9bf4c3c71b7a 109 lcd.locate(6,1);
ninoderkinderen 0:9bf4c3c71b7a 110 lcd.printf("%d/%d/%d",date,month,year);
ninoderkinderen 0:9bf4c3c71b7a 111 }
ninoderkinderen 0:9bf4c3c71b7a 112 if(sec <= 9 && min >= 9 && hours >= 9)
ninoderkinderen 0:9bf4c3c71b7a 113 {
ninoderkinderen 0:9bf4c3c71b7a 114 lcd.locate(4,0);
ninoderkinderen 0:9bf4c3c71b7a 115 lcd.printf("%d:%d:0%d",hours,min,sec);
ninoderkinderen 0:9bf4c3c71b7a 116 lcd.locate(6,1);
ninoderkinderen 0:9bf4c3c71b7a 117 lcd.printf("%d/%d/%d",date,month,year);
ninoderkinderen 0:9bf4c3c71b7a 118 }
ninoderkinderen 0:9bf4c3c71b7a 119 if(sec >= 9 && min <= 9 && hours >= 9)
ninoderkinderen 0:9bf4c3c71b7a 120 {
ninoderkinderen 0:9bf4c3c71b7a 121 lcd.locate(4,0);
ninoderkinderen 0:9bf4c3c71b7a 122 lcd.printf("%d:0%d:%d",hours,min,sec);
ninoderkinderen 0:9bf4c3c71b7a 123 lcd.locate(6,1);
ninoderkinderen 0:9bf4c3c71b7a 124 lcd.printf("%d/%d/%d",date,month,year);
ninoderkinderen 0:9bf4c3c71b7a 125 }
ninoderkinderen 0:9bf4c3c71b7a 126 if(sec >= 9 && min >= 9 && hours <= 9)
ninoderkinderen 0:9bf4c3c71b7a 127 {
ninoderkinderen 0:9bf4c3c71b7a 128 lcd.locate(4,0);
ninoderkinderen 0:9bf4c3c71b7a 129 lcd.printf("0%d:%d:%d",hours,min,sec);
ninoderkinderen 0:9bf4c3c71b7a 130 lcd.locate(6,1);
ninoderkinderen 0:9bf4c3c71b7a 131 lcd.printf("%d/%d/%d",date,month,year);
ninoderkinderen 0:9bf4c3c71b7a 132 }
ninoderkinderen 0:9bf4c3c71b7a 133 if(sec <= 9 && min <= 9 && hours >= 9)
ninoderkinderen 0:9bf4c3c71b7a 134 {
ninoderkinderen 0:9bf4c3c71b7a 135 lcd.locate(4,0);
ninoderkinderen 0:9bf4c3c71b7a 136 lcd.printf("%d:0%d:0%d",hours,min,sec);
ninoderkinderen 0:9bf4c3c71b7a 137 lcd.locate(6,1);
ninoderkinderen 0:9bf4c3c71b7a 138 lcd.printf("%d/%d/%d",date,month,year);
ninoderkinderen 0:9bf4c3c71b7a 139 }
ninoderkinderen 0:9bf4c3c71b7a 140 if(sec <= 9 && min >= 9 && hours <= 9)
ninoderkinderen 0:9bf4c3c71b7a 141 {
ninoderkinderen 0:9bf4c3c71b7a 142 lcd.locate(4,0);
ninoderkinderen 0:9bf4c3c71b7a 143 lcd.printf("0%d:%d:0%d",hours,min,sec);
ninoderkinderen 0:9bf4c3c71b7a 144 lcd.locate(6,1);
ninoderkinderen 0:9bf4c3c71b7a 145 lcd.printf("%d/%d/%d",date,month,year);
ninoderkinderen 0:9bf4c3c71b7a 146 }
ninoderkinderen 0:9bf4c3c71b7a 147 if(sec >= 9 && min <= 9 && hours <= 9)
ninoderkinderen 0:9bf4c3c71b7a 148 {
ninoderkinderen 0:9bf4c3c71b7a 149 lcd.locate(4,0);
ninoderkinderen 0:9bf4c3c71b7a 150 lcd.printf("0%d:0%d:%d",hours,min,sec);
ninoderkinderen 0:9bf4c3c71b7a 151 lcd.locate(6,1);
ninoderkinderen 0:9bf4c3c71b7a 152 lcd.printf("%d/%d/%d",date,month,year);
ninoderkinderen 0:9bf4c3c71b7a 153 }
ninoderkinderen 0:9bf4c3c71b7a 154 if(sec <= 9 && min <= 9 && hours <= 9)
ninoderkinderen 0:9bf4c3c71b7a 155 {
ninoderkinderen 0:9bf4c3c71b7a 156 lcd.locate(4,0);
ninoderkinderen 0:9bf4c3c71b7a 157 lcd.printf("0%d:0%d:0%d",hours,min,sec);
ninoderkinderen 0:9bf4c3c71b7a 158 lcd.locate(6,1);
ninoderkinderen 0:9bf4c3c71b7a 159 lcd.printf("%d/%d/%d",date,month,year);
ninoderkinderen 0:9bf4c3c71b7a 160 }
ninoderkinderen 0:9bf4c3c71b7a 161 wait(0.3);
ninoderkinderen 0:9bf4c3c71b7a 162 }
ninoderkinderen 0:9bf4c3c71b7a 163 }
ninoderkinderen 0:9bf4c3c71b7a 164 //interruptroutine: start programma
ninoderkinderen 0:9bf4c3c71b7a 165 void start()
ninoderkinderen 0:9bf4c3c71b7a 166 {
ninoderkinderen 0:9bf4c3c71b7a 167 knopINSTEL.rise(NULL);
ninoderkinderen 0:9bf4c3c71b7a 168 knopBACK.rise(NULL);
ninoderkinderen 0:9bf4c3c71b7a 169 knopDOWN.rise(NULL);
ninoderkinderen 0:9bf4c3c71b7a 170 knopUP.rise(NULL);//disable interrupt
ninoderkinderen 0:9bf4c3c71b7a 171 lcd.cls();//LCD clear
ninoderkinderen 0:9bf4c3c71b7a 172 /*OPSTART ROUTINE START*/
ninoderkinderen 0:9bf4c3c71b7a 173 lcd.locate(0,0);
ninoderkinderen 0:9bf4c3c71b7a 174 lcd.printf("SYSTEM START");
ninoderkinderen 0:9bf4c3c71b7a 175 lcd.locate(0,1);
ninoderkinderen 0:9bf4c3c71b7a 176 lcd.printf("LOAD PROGRAM");
ninoderkinderen 0:9bf4c3c71b7a 177 wait(2);
ninoderkinderen 0:9bf4c3c71b7a 178 lcd.cls();
ninoderkinderen 0:9bf4c3c71b7a 179 lcd.locate(0,0);
ninoderkinderen 0:9bf4c3c71b7a 180 lcd.printf("SYSTEM START");
ninoderkinderen 0:9bf4c3c71b7a 181 lcd.locate(0,1);
ninoderkinderen 0:9bf4c3c71b7a 182 lcd.printf("LOAD: %d",load);
ninoderkinderen 0:9bf4c3c71b7a 183 for(int l=0;l<=40;l++)
ninoderkinderen 0:9bf4c3c71b7a 184 {
ninoderkinderen 0:9bf4c3c71b7a 185 load = l;
ninoderkinderen 0:9bf4c3c71b7a 186 lcd.locate(0,1);
ninoderkinderen 0:9bf4c3c71b7a 187 lcd.printf("LOAD: %d",load);
ninoderkinderen 0:9bf4c3c71b7a 188 wait(0.1);
ninoderkinderen 0:9bf4c3c71b7a 189 }
ninoderkinderen 0:9bf4c3c71b7a 190 wait(1);
ninoderkinderen 0:9bf4c3c71b7a 191 for(int l=40;l<=70;l++)
ninoderkinderen 0:9bf4c3c71b7a 192 {
ninoderkinderen 0:9bf4c3c71b7a 193 load = l;
ninoderkinderen 0:9bf4c3c71b7a 194 lcd.locate(0,1);
ninoderkinderen 0:9bf4c3c71b7a 195 lcd.printf("LOAD: %d",load);
ninoderkinderen 0:9bf4c3c71b7a 196 wait(0.2);
ninoderkinderen 0:9bf4c3c71b7a 197 }
ninoderkinderen 0:9bf4c3c71b7a 198 wait(1);
ninoderkinderen 0:9bf4c3c71b7a 199 for(int l=70;l<=100;l++)
ninoderkinderen 0:9bf4c3c71b7a 200 {
ninoderkinderen 0:9bf4c3c71b7a 201 load = l;
ninoderkinderen 0:9bf4c3c71b7a 202 lcd.locate(0,1);
ninoderkinderen 0:9bf4c3c71b7a 203 lcd.printf("LOAD: %d",load);
ninoderkinderen 0:9bf4c3c71b7a 204 wait(0.2);
ninoderkinderen 0:9bf4c3c71b7a 205 }
ninoderkinderen 0:9bf4c3c71b7a 206 wait(1);
ninoderkinderen 0:9bf4c3c71b7a 207 lcd.cls();
ninoderkinderen 0:9bf4c3c71b7a 208 lcd.locate(0,0);
ninoderkinderen 0:9bf4c3c71b7a 209 lcd.printf("SYSTEM START");
ninoderkinderen 0:9bf4c3c71b7a 210 lcd.locate(0,1);
ninoderkinderen 0:9bf4c3c71b7a 211 lcd.printf("PROGRAM START");
ninoderkinderen 0:9bf4c3c71b7a 212 wait(3);
ninoderkinderen 0:9bf4c3c71b7a 213 /*OPSTARTROUTINE END*/
ninoderkinderen 0:9bf4c3c71b7a 214 }
ninoderkinderen 0:9bf4c3c71b7a 215 //interruptroutine: programma stoppen
ninoderkinderen 0:9bf4c3c71b7a 216 void afsluiten()
ninoderkinderen 0:9bf4c3c71b7a 217 {
ninoderkinderen 0:9bf4c3c71b7a 218 knopUP.rise(&start);//interrupt koppelen met routine
ninoderkinderen 0:9bf4c3c71b7a 219 knopINSTEL.rise(NULL);
ninoderkinderen 0:9bf4c3c71b7a 220 knopBACK.rise(NULL);
ninoderkinderen 0:9bf4c3c71b7a 221 knopDOWN.rise(NULL);//disabel interrupt
ninoderkinderen 0:9bf4c3c71b7a 222 lcd.cls();//lcd clear
ninoderkinderen 0:9bf4c3c71b7a 223 /*AFSLUITROUTINE START*/
ninoderkinderen 0:9bf4c3c71b7a 224 lcd.locate(0,0);
ninoderkinderen 0:9bf4c3c71b7a 225 lcd.printf("SYSTEM SHUTDOWN");
ninoderkinderen 0:9bf4c3c71b7a 226 wait(2);
ninoderkinderen 0:9bf4c3c71b7a 227 relais = 0;//relais uit
ninoderkinderen 0:9bf4c3c71b7a 228 RGBrood = 0;
ninoderkinderen 0:9bf4c3c71b7a 229 RGBgroen = 0;
ninoderkinderen 0:9bf4c3c71b7a 230 RGBblauw = 0; //RGB uit
ninoderkinderen 0:9bf4c3c71b7a 231 while(knopUP == 0)
ninoderkinderen 0:9bf4c3c71b7a 232 {
ninoderkinderen 0:9bf4c3c71b7a 233 lcd.cls();
ninoderkinderen 0:9bf4c3c71b7a 234 lcd.locate(0,0);
ninoderkinderen 0:9bf4c3c71b7a 235 lcd.printf("SYSTEM OFF");
ninoderkinderen 0:9bf4c3c71b7a 236 wait(0.2);
ninoderkinderen 0:9bf4c3c71b7a 237 }
ninoderkinderen 0:9bf4c3c71b7a 238 /*AFSLUITROUTINE END*/
ninoderkinderen 0:9bf4c3c71b7a 239 }
ninoderkinderen 0:9bf4c3c71b7a 240 /*MAIN PROGRAM*/
ninoderkinderen 0:9bf4c3c71b7a 241 int main()
ninoderkinderen 0:9bf4c3c71b7a 242 {
ninoderkinderen 0:9bf4c3c71b7a 243 while(1)
ninoderkinderen 0:9bf4c3c71b7a 244 {
ninoderkinderen 0:9bf4c3c71b7a 245 knopINSTEL.rise(&instellen);
ninoderkinderen 0:9bf4c3c71b7a 246 knopBACK.rise(&back);
ninoderkinderen 0:9bf4c3c71b7a 247 knopDOWN.rise(&afsluiten);//interrupts koppelen met routines(bovenaan gedeclareerd)
ninoderkinderen 0:9bf4c3c71b7a 248 i=0;
ninoderkinderen 0:9bf4c3c71b7a 249 j=0;//variabele temperatuurwaardes 0 zetten
ninoderkinderen 0:9bf4c3c71b7a 250 for(int a=0;a<5;a++)
ninoderkinderen 0:9bf4c3c71b7a 251 {
ninoderkinderen 0:9bf4c3c71b7a 252 for(int t=0;t<100;t++)
ninoderkinderen 0:9bf4c3c71b7a 253 {
ninoderkinderen 0:9bf4c3c71b7a 254 i=i+binnen.read(); //uitlezen temp
ninoderkinderen 0:9bf4c3c71b7a 255 }
ninoderkinderen 0:9bf4c3c71b7a 256 for(int k=0;k<100;k++)
ninoderkinderen 0:9bf4c3c71b7a 257 {
ninoderkinderen 0:9bf4c3c71b7a 258 j=j+buiten.read(); //uitlezen temp
ninoderkinderen 0:9bf4c3c71b7a 259 }
ninoderkinderen 0:9bf4c3c71b7a 260 wait(0.1);
ninoderkinderen 0:9bf4c3c71b7a 261 }
ninoderkinderen 0:9bf4c3c71b7a 262 i = (i*3.3)/5;
ninoderkinderen 0:9bf4c3c71b7a 263 j = (j*3.3)/5;//berekening juiste temperatuur: Waarde*3.3V/5(for lus van 5)
ninoderkinderen 0:9bf4c3c71b7a 264 lcd.cls();//lcd clear
ninoderkinderen 0:9bf4c3c71b7a 265 lcd.locate(0,0);
ninoderkinderen 0:9bf4c3c71b7a 266 lcd.printf("Binnen:%4.1fC", i);
ninoderkinderen 0:9bf4c3c71b7a 267 lcd.locate(0,1);
ninoderkinderen 0:9bf4c3c71b7a 268 lcd.printf("Buiten:%4.1fC", j);//LCD print temperaturen
ninoderkinderen 0:9bf4c3c71b7a 269 wait(0.1);
ninoderkinderen 0:9bf4c3c71b7a 270 wait(2);
ninoderkinderen 0:9bf4c3c71b7a 271 pc.printf("\n\n\rTemperatuur binnen: %4.1f C",i);
ninoderkinderen 0:9bf4c3c71b7a 272 pc.printf("\n\n\rTemperatuur buiten: %4.1f C",j);
ninoderkinderen 0:9bf4c3c71b7a 273 pc.printf("\n\n\r------------------------------------------");//PC print temperaturen
ninoderkinderen 0:9bf4c3c71b7a 274 if(i > (reftemp + 2) && i <= (reftemp +4))//Temperatuur te HOOG: reftemp >2 en reftemp <=4
ninoderkinderen 0:9bf4c3c71b7a 275 {
ninoderkinderen 0:9bf4c3c71b7a 276 wait(2);
ninoderkinderen 0:9bf4c3c71b7a 277 relais = 1;//relais aan
ninoderkinderen 0:9bf4c3c71b7a 278 RGBrood = 1;
ninoderkinderen 0:9bf4c3c71b7a 279 RGBgroen = 1;
ninoderkinderen 0:9bf4c3c71b7a 280 RGBblauw = 0;//rgb rood + groen = oranje
ninoderkinderen 0:9bf4c3c71b7a 281 wait(1);
ninoderkinderen 0:9bf4c3c71b7a 282 Servo.period_ms(20);//servo pwm periode
ninoderkinderen 0:9bf4c3c71b7a 283 Servo = (130 * 0.000511 + 0.026); // rechts-half servo
ninoderkinderen 0:9bf4c3c71b7a 284 }
ninoderkinderen 0:9bf4c3c71b7a 285 else if(i > (reftemp + 3.5))//Temperatuur te HOOG: reftemp > 3.5 (hysteresis ingebouwd)
ninoderkinderen 0:9bf4c3c71b7a 286 {
ninoderkinderen 0:9bf4c3c71b7a 287 wait(2);
ninoderkinderen 0:9bf4c3c71b7a 288 relais = 1;//relais aan
ninoderkinderen 0:9bf4c3c71b7a 289 RGBrood = 1;
ninoderkinderen 0:9bf4c3c71b7a 290 RGBgroen = 0;
ninoderkinderen 0:9bf4c3c71b7a 291 RGBblauw = 0;//rgb rood
ninoderkinderen 0:9bf4c3c71b7a 292 wait(1);
ninoderkinderen 0:9bf4c3c71b7a 293 Servo.period_ms(20);//servo pwm periode
ninoderkinderen 0:9bf4c3c71b7a 294 Servo = (160 * 0.000511 + 0.026); // rechts servo
ninoderkinderen 0:9bf4c3c71b7a 295 }
ninoderkinderen 0:9bf4c3c71b7a 296 else if(i < (reftemp - 2) && i >= (reftemp -4))//Temperatuur te LAAG: reftemp>2 & reftemp <4
ninoderkinderen 0:9bf4c3c71b7a 297 {
ninoderkinderen 0:9bf4c3c71b7a 298 wait(2);
ninoderkinderen 0:9bf4c3c71b7a 299 relais = 0;//relais uit
ninoderkinderen 0:9bf4c3c71b7a 300 RGBrood = 1;
ninoderkinderen 0:9bf4c3c71b7a 301 RGBgroen = 0;
ninoderkinderen 0:9bf4c3c71b7a 302 RGBblauw = 1;//rgb rood + blauw= paars
ninoderkinderen 0:9bf4c3c71b7a 303 wait(1);
ninoderkinderen 0:9bf4c3c71b7a 304 Servo.period_ms(20);//servo pwm periode
ninoderkinderen 0:9bf4c3c71b7a 305 Servo = (55 * 0.000511 + 0.026); // links-half servo
ninoderkinderen 0:9bf4c3c71b7a 306 }
ninoderkinderen 0:9bf4c3c71b7a 307 else if(i < (reftemp - 3.5))//Temperatuur te LAAG: reftemp>4
ninoderkinderen 0:9bf4c3c71b7a 308 {
ninoderkinderen 0:9bf4c3c71b7a 309 wait(2);
ninoderkinderen 0:9bf4c3c71b7a 310 relais = 0;//relais uit
ninoderkinderen 0:9bf4c3c71b7a 311 RGBrood = 0;
ninoderkinderen 0:9bf4c3c71b7a 312 RGBgroen = 0;
ninoderkinderen 0:9bf4c3c71b7a 313 RGBblauw = 1;//rgb blauw
ninoderkinderen 0:9bf4c3c71b7a 314 wait(1);
ninoderkinderen 0:9bf4c3c71b7a 315 Servo.period_ms(20);//servo pwm period
ninoderkinderen 0:9bf4c3c71b7a 316 Servo = (5 * 0.000511 + 0.026); // links servo
ninoderkinderen 0:9bf4c3c71b7a 317 }
ninoderkinderen 0:9bf4c3c71b7a 318 else//Temperatuur OKE: reftemp binnen hysteresis +2 & -2
ninoderkinderen 0:9bf4c3c71b7a 319 {
ninoderkinderen 0:9bf4c3c71b7a 320 wait(1);
ninoderkinderen 0:9bf4c3c71b7a 321 relais = 0;
ninoderkinderen 0:9bf4c3c71b7a 322 RGBrood = 0;
ninoderkinderen 0:9bf4c3c71b7a 323 RGBgroen = 1;
ninoderkinderen 0:9bf4c3c71b7a 324 RGBblauw = 0;//rgb groen
ninoderkinderen 0:9bf4c3c71b7a 325 wait(1);
ninoderkinderen 0:9bf4c3c71b7a 326 Servo.period_ms(20);//servo pwm period
ninoderkinderen 0:9bf4c3c71b7a 327 Servo = (90 * 0.000511 + 0.026); // 0-positie servo
ninoderkinderen 0:9bf4c3c71b7a 328 }
ninoderkinderen 0:9bf4c3c71b7a 329 }
ninoderkinderen 0:9bf4c3c71b7a 330 }