testfase
Dependencies: TextLCD mbed DS1307 Servo
Diff: main.cpp
- Revision:
- 1:83cbca2c2d86
- Parent:
- 0:09e0c8d681a8
diff -r 09e0c8d681a8 -r 83cbca2c2d86 main.cpp --- a/main.cpp Thu Nov 27 10:09:27 2014 +0000 +++ b/main.cpp Thu Dec 04 09:45:59 2014 +0000 @@ -1,6 +1,8 @@ //Library's #include "mbed.h" #include "TextLCD.h" +#include "Servo.h" +#include "ds1307.h" //Pin initialisatie Serial pc(USBTX,USBRX); @@ -15,17 +17,70 @@ DigitalOut myled3(LED3); TextLCD lcd(p15, p16, p21, p22, p23, p24); // rs, e, d4-d7 PwmOut Servo(p25); +DS1307 my1307(p9, p10); +DigitalOut relais1(p30); +DigitalOut RGBblauw(p29); +DigitalOut RGBgroen(p28); +DigitalOut RGBrood(p27); //variabelen declareren/initialiseren float i = 0; float j = 0; -int temperatuur = 20; -int counter = 0; +int temperatuur = 23; +int counter = 49; +int counter2 = 249; int teller = 0; +int RTC = 0; +int motor = 2; //motor = 2, dan is hij in ruststand + +//variabelen RTC + int sec; + int min; + int hours; + int day; + int date; + int month; + int year; + + void test_rw(int test) { +} //Main Programma int main() { + Servo.period_ms(20); + Servo = (90 * 0.000511 + 0.026); // rust + wait(0.1); + if((i*3.3)>= temperatuur)// te warm + { + motor = 0; + myled1 = 1; + relais1 = 0; //Relais aansturen + RGBrood = 1; //RGB aansturen + RGBgroen = 0; + RGBblauw = 0; + if(motor == 0 || motor == 2)//motor = 0, dan staat hij links + { + Servo.period_ms(20); + Servo = (170 * 0.000511 + 0.026); // rechts + motor = 1; + } + } + if((i*3.3) < temperatuur)// te koud + { + motor = 1; + myled1 = 0; + relais1 = 1; //Relais aansturen + RGBrood = 0; //RGB aansturen + RGBgroen = 1; + RGBblauw = 1; + if(motor == 1 || motor == 2) //motor = 1, dan staat hij rechts + { + Servo.period_ms(20); + Servo = (1 * 0.000511 + 0.026); // links + motor = 0; + } + } pc.printf("\x1B\x48\x1B\x4A"); pc.printf("Temperatuur"); while(1) @@ -48,9 +103,9 @@ } /*------------------------------------------------------------------------*/ //Motor aansturen - Servo.period_ms(20); - if(knopUP) + /*if(knopUP) { + Servo.period_ms(20); Servo = (90 * 0.000511 + 0.026); // rust wait(1); Servo = (7 * 0.000511 + 0.026); // links 7 @@ -59,7 +114,7 @@ wait(1); Servo = (170 * 0.000511 + 0.026); // rechts wait(1); - } + }*/ /*------------------------------------------------------------------------*/ //Menu Instellingen if(knopINSTEL) @@ -83,14 +138,8 @@ if(temperatuur < 20) { temperatuur = 30; - } - lcd.cls(); - lcd.locate(0,0); - lcd.printf("Ingestelde Temp"); - lcd.locate(0,1); - lcd.printf(" %iC ", temperatuur); - wait(0.6); - lcd.cls(); + } + wait(0.2); } if(knopDOWN) { @@ -103,56 +152,202 @@ { temperatuur = 30; } + wait(0.2); + /* lcd.cls(); lcd.locate(0,0); lcd.printf("Ingestelde Temp"); lcd.locate(0,1); lcd.printf(" %iC ", temperatuur); wait(0.6); - lcd.cls(); + lcd.cls();*/ } } + wait(0.5); } /*------------------------------------------------------------------------*/ - //Temperatuur instellen - /*if(knopUP) - { - temperatuur = temperatuur + 1; - if(temperatuur == 30) - { - temperatuur = 24; - } - lcd.cls(); - lcd.locate(0,0); - lcd.printf("ingestelde temp"); - lcd.locate(0,1); - lcd.printf(" %iC ", temperatuur); - wait(1); - }*/ -/*------------------------------------------------------------------------*/ /*Temperatuur: Wanneer temperatuur hoger wordt dan ingesteld - zal een ledje dit aangeven*/ - if((i*3.3)>= temperatuur) + zal een ledje dit aangeven + Relais aansturen + RGB led aansturen + Servomotor aansturen + */ + if((i*3.3)>= temperatuur + 1)// te warm + { + myled1 = 1; + relais1 = 0; //Relais aansturen + RGBrood = 1; //RGB aansturen + RGBgroen = 0; + RGBblauw = 0; + if(motor == 0)//motor = 0, dan staat hij links + { + Servo.period_ms(20); + Servo = (170 * 0.000511 + 0.026); // rechts + motor = 1; + } + } + if((i*3.3) <= temperatuur - 1)// te koud { - myled1 = 1; + myled1 = 0; + relais1 = 1; //Relais aansturen + RGBrood = 0; //RGB aansturen + RGBgroen = 1; + RGBblauw = 1; + if(motor == 1) //motor = 1, dan staat hij rechts + { + Servo.period_ms(20); + Servo = (1 * 0.000511 + 0.026); // links + motor = 0; + } } - if((i*3.3) < temperatuur) +/*------------------------------------------------------------------------*/ + //LCD Display uitschrijven RTC of Temperatuur + if(knopBACK) + { + RTC ++; + if(RTC == 2) + { + RTC = 0; + } + wait(0.5); + } + if(RTC == 0) { - myled1 = 0; + //LCD uitschrijven + counter++; + if(counter == 50) + { + lcd.cls(); + lcd.locate(0,0); + lcd.printf("Temp 1:%4.1fC", i*3.3); + lcd.locate(0,1); + lcd.printf("Temp 2:%4.1fC", j*3.3); + pc.printf("\n\n\rTemperature1 %4.1f C ",i*3.3); + pc.printf("\n\rTemperature2 %4.1f C ",j*3.3); + counter = 0; + } } -/*------------------------------------------------------------------------*/ - //LCD uitschrijven - counter++; - if(counter == 250) - { - lcd.cls(); - lcd.locate(0,0); - lcd.printf("Temp 1:%4.1fC", i*3.3); - lcd.locate(0,1); - lcd.printf("Temp 2:%4.1fC", j*3.3); - pc.printf("\n\n\rTemperature1 %4.1f C ",i*3.3); - pc.printf("\n\rTemperature2 %4.1f C ",j*3.3); - counter = 0; + else if(RTC == 1) + { + //RTC uitschrijven + counter2++; + if(counter2 == 250) + { + lcd.cls(); + test_rw(my1307.gettime( &sec, &min, &hours, &day, &date, &month, &year)); + //Dag uitschrijven op lcd + if(day == 1) + {lcd.locate(3,1); + lcd.printf("Ma");} + if(day == 2) + {lcd.locate(3,1); + lcd.printf("Di");} + if(day == 3) + {lcd.locate(3,1); + lcd.printf("Wo");} + if(day == 4) + {lcd.locate(3,1); + lcd.printf("Do");} + if(day == 5) + {lcd.locate(3,1); + lcd.printf("Vr");} + if(day == 6) + {lcd.locate(3,1); + lcd.printf("Za");} + if(day == 7) + {lcd.locate(3,1); + lcd.printf("Zo");} + //Uur min sec //Dag datum maand jaar + if(sec >= 9 && min >= 9 && hours >= 9) + { + lcd.locate(4,0); + lcd.printf("%d:%d:%d",hours,min,sec); + lcd.locate(6,1); + lcd.printf("%d/%d/%d",date,month,year); + if(knopBACK) + { + RTC = 0; + } + } + if(sec <= 9 && min >= 9 && hours >= 9) + { + lcd.locate(4,0); + lcd.printf("%d:%d:0%d",hours,min,sec); + lcd.locate(6,1); + lcd.printf("%d/%d/%d",date,month,year); + if(knopBACK) + { + RTC = 0; + } + } + if(sec >= 9 && min <= 9 && hours >= 9) + { + lcd.locate(4,0); + lcd.printf("%d:0%d:%d",hours,min,sec); + lcd.locate(6,1); + lcd.printf("%d/%d/%d",date,month,year); + if(knopBACK) + { + RTC = 0; + } + } + if(sec >= 9 && min >= 9 && hours <= 9) + { + lcd.locate(4,0); + lcd.printf("0%d:%d:%d",hours,min,sec); + lcd.locate(6,1); + lcd.printf("%d/%d/%d",date,month,year); + if(knopBACK) + { + RTC = 0; + } + } + if(sec <= 9 && min <= 9 && hours >= 9) + { + lcd.locate(4,0); + lcd.printf("%d:0%d:0%d",hours,min,sec); + lcd.locate(6,1); + lcd.printf("%d/%d/%d",date,month,year); + if(knopBACK) + { + RTC = 0; + } + } + if(sec <= 9 && min >= 9 && hours <= 9) + { + lcd.locate(4,0); + lcd.printf("0%d:%d:0%d",hours,min,sec); + lcd.locate(6,1); + lcd.printf("%d/%d/%d",date,month,year); + if(knopBACK) + { + RTC = 0; + } + } + if(sec >= 9 && min <= 9 && hours <= 9) + { + lcd.locate(4,0); + lcd.printf("0%d:0%d:%d",hours,min,sec); + lcd.locate(6,1); + lcd.printf("%d/%d/%d",date,month,year); + if(knopBACK) + { + RTC = 0; + } + } + if(sec <= 9 && min <= 9 && hours <= 9) + { + lcd.locate(4,0); + lcd.printf("0%d:0%d:0%d",hours,min,sec); + lcd.locate(6,1); + lcd.printf("%d/%d/%d",date,month,year); + if(knopBACK) + { + RTC = 0; + } + } + counter2 = 0; + } } } } \ No newline at end of file