Project_Embedded_C

Dependencies:   mbed DS1307 Servo TextLCD

main.cpp

Committer:
rikvandyck
Date:
2014-12-18
Revision:
2:55b6fd49b738
Parent:
1:7db3698243d8

File content as of revision 2:55b6fd49b738:

//Rik Van Dyck
//Dieter Van Olmen
//Project Embedded C
//18 december 2014 (eerste evaluatie)

#include "mbed.h"                           // libary mbed
#include "TextLCD.h"                        // libary LCD
#include "ds1307.h"                         // libary real time clock met IC DS1307
#include "Servo.h"                          // libary servo
#include "mbed.h"
#include "EthernetNetIf.h"
#include "HTTPServer.h"
#include "RPCFunction.h"

EthernetNetIf eth(
IpAddr(192,168,1,2),                         //ipadress
IpAddr(255,255,255,0),                       //network mask
IpAddr(192,168,1,1),                         //gateway
IpAddr(192,168,1,1)                          //dns
);
HTTPServer svr;

AnalogIn LM35_1(p20);                       // analoge-ngang, temperatuursensor 1
AnalogIn LM35_2(p19);                       // analoge-ngang, temperatuursensor 2

InterruptIn button_up(p11);                 // interrupt-ingang, 
InterruptIn button_menu_back(p13);          // interrupt-ingang,

DigitalIn button_down(p12);                 // digitale-ingang,
DigitalIn button_enter(p14);                // digitale-ingang,

DigitalOut relais(p15);                     // dgitale-uitgang, 

PwmOut LEDrood(p23);                        // PWM-uitgang, 
PwmOut LEDgroen(p22);                       // PWM-uitgang, 
PwmOut LEDblauw(p21);                       // PWM-uitgang, 
PwmOut achtergrondverlichting(p24);         // PWM-uitgang, 

Servo myservo(p26);                         // servo-uitgang 

DS1307 my1307(p9,p10);                      // start DS1307 class and give it pins for connections of the DS1307 device

Serial pc(USBTX, USBRX);                    // tx, rx

TextLCD lcd(p7,p8,p30,p29,p28,p27);         // interrupt-uitgang 

// float variabelen
float temp1;
float temp2;
float temp1a;
float temp2a;
float avg1;
float avg2;
float instel_temp = 20.00;
float backup1 = 20.00;
float instel_temp_serieel;
float min_temp;
float max_temp;
float helderheid = 0.5;
float backup_h = 0;
float verschil;
float uitwijking;

// integer variabelen
int i;
int k = 0;
int m = 0;
int n = 40;
int y;
int z;
int status = 0;
int selectie = 1;
int wachttijd_menu = 0;
int wachttijd_klok = 0;
int wachttijd_up = 0;
int hysteresis = 0;

// variable voor de tijd (integers)
int sec;
int minu;
int hours;
int day;
int date;
int month;
int year;
int junk = 0;
int klok1_u = 6;
int klok2_u = 8;
int klok3_u = 15;
int klok4_u = 22;
int klok1_m = 30;
int klok2_m = 30;
int klok3_m = 30;
int klok4_m = 00;
int backup_klok1_u;
int backup_klok2_u;
int backup_klok3_u;
int backup_klok4_u;
int backup_klok1_m;
int backup_klok2_m;
int backup_klok3_m;
int backup_klok4_m;

void up();
void down();
void menu();
void controle();
void temp_inlezen();
void serieel_printen();
void lcd_printen_temp();
void RTC_junk();
void internet();

void test_rw(int test) {} 

int main()
{   

    EthernetErr ethErr;
    int count = 0;
    do {
        printf("Setting up %d...\n\r", ++count);
        ethErr = eth.setup();
        if (ethErr) printf("Timeout\n\r", ethErr);
    } while (ethErr != ETH_OK);

    printf("Connected OK\n\r");
    const char* hwAddr = eth.getHwAddr();

    IpAddr ethIp = eth.getIp();
    printf("IP address : %d.%d.%d.%d\n\r", ethIp[0], ethIp[1], ethIp[2], ethIp[3]);

    LocalFileSystem local("local");

    //svr.addHandler<SimpleHandler>("/hello");
    svr.addHandler<FSHandler>("");

    svr.bind(80);
    printf("Server listening\n\r");

    //int junk = 0;
    LEDrood = 0;
    LEDblauw = 0;
    LEDgroen = 0;
    myservo = 0.5;
    button_up.mode(PullDown);
    button_down.mode(PullDown);
    button_menu_back.mode(PullDown);
    button_enter.mode(PullDown);
    button_up.rise(&up);
    button_menu_back.rise(&menu);
    achtergrondverlichting = helderheid;
    pc.printf("Temperatuursmeting Embed !!");
    pc.printf("\n\n\r");
    instel_temp_serieel = instel_temp;
    while (1) {
        serieel_printen();
        controle();
        lcd_printen_temp();
    }
}

void RTC_junk()
{
    junk = 0x39;                                    // just a junk value do read and write test to DS1307 ram
    test_rw(my1307.write( 0x20, junk));             // this should write the value of junk to register 0x20 (a ram location) in the ds1307.
    junk = 0;                                       // clear junk to show that when the register is read from the correct value is obtained
    test_rw(my1307.read( 0x20, &junk));             // this should read register 0x20
}

void temp_inlezen()
{
    avg1 = 0;
    avg2 = 0;
    for (i = 0; i < 100; i++ ) {
        avg1 += LM35_1;
        avg2 += LM35_2;
        wait(0.001);
    }
    temp1 =(avg1 * 3.3);
    temp2 =(avg2 * 3.3); 
}

void internet()
{            
        Net::poll();
            FILE *fp = fopen("/local/mydata.htm","w");
            fprintf(fp,"<HTML>\r\n");
            fprintf(fp,"<HEAD>\r\n");
            fprintf(fp,"</HEAD>\r\n");
            fprintf(fp,"<BODY>\r\n");
            fprintf(fp," <center><p><h1>Welcome to Thomas More  </h1></p>\r\n");
            fprintf(fp," <center><p><h1>2EA</h1></p>\r\n");
            fprintf(fp," <body style=background-color:white>\r\n");
            fprintf(fp," <hr><br> <h1 align=left><font color=\"black\">\r\n");
            fprintf(fp," <left><FONT size=+1><h1>Project Embedded C</h1>\r\n");
            fprintf(fp," <TABLE width=500 bgcolor=white border=2 >\r\n");
            fprintf(fp," <TR>\r\n");
            fprintf(fp," <TD align=center colspan=4 bgcolor=red><B><FONT size=+2>Mbed temperatuurregeling</FONT></B></TD></TR>\r\n");
            fprintf(fp," <TR>\r\n");
            fprintf(fp," <TD align=center width=125 colspan=1><B>Binnen</B></TD>\r\n");
            fprintf(fp," <TD align=center width=125 colspan=1><B>Buiten</B></TD>\r\n");
            fprintf(fp," <TD align=center width=125 colspan=1><B>ingesteld</B></TD>\r\n");
            fprintf(fp," <TD align=center width=125 colspan=1><B>Tijd</B></TD>\r\n");
            fprintf(fp," <TR align=center>\r\n");
            fprintf(fp," <TD ><U>%.2f</U>\r\n",temp1);
            fprintf(fp," <TD ><U>%.2f</U>\r\n",temp2);
            fprintf(fp," <TD ><U>%.2f</U>\r\n",instel_temp);
            fprintf(fp," <TD ><U>%d:%d:%d</U>\r\n",hours,minu,sec);
            fprintf(fp," <TR align=center>");      
            fprintf(fp," \r\n");
            fprintf(fp,"</BODY>\r\n");
            fprintf(fp,"</HTML>\r\n");
            fclose(fp);
}

void controle()
{
    temp_inlezen();
    if(selectie == 3)
    {
        if(hours >= klok1_u && minu >= klok1_m && hours <= klok2_u && minu < klok2_m)
        {
            if(m == 0)
            {
                min_temp = instel_temp - 0.5;
                max_temp = instel_temp + 0.5;
                if (temp1 < min_temp)
                {
                    LEDrood = 1;
                    LEDgroen = 0;
                    LEDblauw = 0;
                    relais = 0;
                    status = 1;   
                }
                else if (temp1 > max_temp)
                {
                    LEDrood = 0;
                    LEDgroen = 0;
                    LEDblauw = 0.25;
                    relais = 1;
                    status = 0; 
                }
                else{}
            }
            m++;
            if(m > 15){m = 0;}   
        }
        else if(hours >= klok3_u && minu >= klok3_m && hours <= klok4_u && minu < klok4_m)
        {
            if(m == 0)
            {
                min_temp = instel_temp - 0.5;
                max_temp = instel_temp + 0.5;
                if (temp1 < min_temp)
                {
                    LEDrood = 1;
                    LEDgroen = 0;
                    LEDblauw = 0;
                    relais = 0;
                    status = 1;   
                }
                else if (temp1 > max_temp)
                {
                    LEDrood = 0;
                    LEDgroen = 0;
                    LEDblauw = 0.25;
                    relais = 1;
                    status = 0; 
                }
                else{}
            }
            m++;
            if(m > 15){m = 0;}   
        }
        else
        {   
            if(m == 0)
            {
                min_temp = 18.0 - 0.5;
                max_temp = 18.0 + 0.5;
                if (temp1 < min_temp)
                {
                    LEDrood = 1;
                    LEDgroen = 0;
                    LEDblauw = 0;
                    relais = 0;
                    status = 1;   
                }
                else if (temp1 > max_temp)
                {
                    LEDrood = 0;
                    LEDgroen = 0;
                    LEDblauw = 0.25;
                    relais = 1;
                    status = 0; 
                }
                else{}
            }
            m++;
            if(m > 15){m = 0;}     
        } 
    }
    else
    {
        if(m == 0)
        {
            min_temp = instel_temp - 0.5;
            max_temp = instel_temp + 0.5;
            if (temp1 < min_temp)
            {
                LEDrood = 1;
                LEDgroen = 0;
                LEDblauw = 0;
                relais = 1;
                status = 1;   
            }
            else if (temp1 > max_temp)
            {
                LEDrood = 0;
                LEDgroen = 0;
                LEDblauw = 0.25;
                relais = 0;
                status = 0; 
            }
            else{}
        }
    }
    verschil = temp1 - instel_temp;
    if(verschil > 0)
    {
        uitwijking = verschil / 10;
        if(uitwijking > 0.5)
        {
            uitwijking = 0.5;
        }
        uitwijking = uitwijking + 0.5;
    }
    if(verschil < 0)
    {   
        verschil = instel_temp - temp1;
        uitwijking = verschil / 10;
        if(uitwijking > 0.5)
        {
            uitwijking = 0.5;
        }
        uitwijking = 0.5 - uitwijking;
    }
    if(verschil == 0)
    {
        uitwijking = 0.5;
    }
    myservo = uitwijking;
    m++;
    if(m > 15){m = 0;}
}

void serieel_printen()
{
    pc.printf("Tijd:");
    pc.printf("\n\n\r");
    pc.printf("Binnen temperatuur: %.2fC",temp1);
    pc.printf("\n\r");
    pc.printf("Buiten temperatuur: %.2fC",temp2);
    pc.printf("\n\r");
    pc.printf("Instel temperatuur: %.2fC",instel_temp_serieel);
    pc.printf("\n\n\n\r");
}

void lcd_printen_temp()
{
    if (k == 1 || k > 7){
        temp1a = temp1;
        temp2a = temp2;
        wachttijd_menu = 0;
        wachttijd_klok = 0;
        wachttijd_up = 0; 
    }
    if(k < 7) {
        lcd.cls();
        lcd.locate(0,0);
        lcd.printf("Binnen:%5.1f%cC", temp1a,0xDF);
        lcd.locate(0,1);
        lcd.printf("Buiten:%5.1f%cC", temp2a,0xDF);
        k++;
    } else if(k < 14) {
        lcd.cls();
        lcd.locate(0,0);
        lcd.printf("Instel:%5.1f%cC",instel_temp,0xDF);
        lcd.locate(0,1);
        test_rw(my1307.gettime( &sec, &minu, &hours, &day, &date, &month, &year));
        lcd.printf("Tijd:   %d:%d:%d",hours,minu,sec);
        RTC_junk();
        k++;
    } else if(k < 21) {
        lcd.cls();
        lcd.locate(0,0);
        switch (selectie) {
            case (1):
                lcd.printf("Stand: Continu");
                break;
            case (2):
                lcd.printf("Stand: Nacht");
                break;
            case (3):
                lcd.printf("Stand: Klokje");
                break;
        }
        lcd.locate(0,1);
        switch (status) {
            case (0):
                lcd.printf("Status: Af");
                break;
            case (1):
                lcd.printf("Status: Op");
                break;
        }
        k++;
    } else {
        k = 0;
    }
    internet();
}

void menu()
{
    if(wachttijd_up < 10 && wachttijd_menu < 10) {
        wachttijd_menu = 0;
        z = 0;
        wait(0.5);
        while(button_enter == 0 && button_menu_back == 0 && wachttijd_menu < n) {
            controle();
            lcd.cls();
            lcd.locate(0,0);
            lcd.printf("** Menu **");
            if (button_up == 1) {
                z++;
                wachttijd_menu = 0;
            } else if(button_down == 1) {
                z--;
                wachttijd_menu = 0;
            } else {
                wachttijd_menu++;
            }
            if (z > 3){
                z = 0;
            }
            if (z < 0) {
                z = 3;
            }
            if (z == 0) {
                lcd.locate(0,1);
                lcd.printf("Continu");
            } else if (z == 1) {
                lcd.locate(0,1);
                lcd.printf("Nacht");
            } else if (z == 2) {
                lcd.locate(0,1);
                lcd.printf("Klokje");
            } else if (z == 3) {
                lcd.locate(0,1);
                lcd.printf("Helderheid");
            }
            lcd.locate(14,1);
            lcd.printf("<");
            lcd.locate(15,1);
            lcd.printf(">");
        }
        if (button_enter == 1) {
            switch (z) {
                case (0):
                    if (selectie == 2)
                    {
                        instel_temp = backup1;
                    }
                    selectie = 1;
                    break;
                case (1):
                    selectie = 2;
                    backup1 = instel_temp;
                    instel_temp = 18.00;
                    break;
                case (2):
                    if (selectie == 2)
                    {
                        instel_temp = backup1;
                    }
                    //
                    lcd.cls();
                    lcd.locate(0,0);
                    lcd.printf("Instelling tijd");
                    wait(1);
                    backup_klok1_u = klok1_u;
                    backup_klok2_u = klok2_u;
                    backup_klok3_u = klok3_u;
                    backup_klok4_u = klok4_u;
                    backup_klok1_m = klok1_m;
                    backup_klok2_m = klok2_m;
                    backup_klok3_m = klok3_m;
                    backup_klok4_m = klok4_m;
                    lcd.cls();
                    wachttijd_klok = 0;
                    while (button_enter == 0 && button_menu_back == 0 && wachttijd_klok < n) {
                        controle();
                        lcd.cls();
                        lcd.locate(0,0);
                        lcd.printf("'S morgens op  u");
                        if(button_up == 1)
                        {
                            klok1_u = klok1_u + 1;
                            wachttijd_klok = 0;
                        }
                        else if(button_down == 1)
                        {
                            klok1_u = klok1_u - 1;
                            wachttijd_klok = 0;
                        }
                        else
                        {
                            wachttijd_klok ++;
                        }
                        if (klok1_u > 23)
                        {
                            klok1_u = 0;
                        }
                        if (klok1_u < 0)
                        {
                            klok1_u = 23;
                        }
                        lcd.locate(0,1);
                        lcd.printf("Tijd:   %d:%d",klok1_u,klok1_m);
                    }
                    if (button_enter == 1)
                    {
                        wachttijd_klok = 0;
                        lcd.cls();
                        lcd.locate(0,0);
                        lcd.printf("'S morgens op  m");
                        wait(0.5);
                        while (button_enter == 0 && button_menu_back == 0 && wachttijd_klok < n) {
                            controle();
                            lcd.cls();
                            lcd.locate(0,0);
                            lcd.printf("'S morgens op  m");
                            if(button_up == 1)
                            {
                                klok1_m = klok1_m + 1;
                                wachttijd_klok = 0;
                            }
                            else if(button_down == 1)
                            {
                                klok1_m = klok1_m - 1;
                                wachttijd_klok = 0;
                            }
                            else
                            {
                                wachttijd_klok ++;
                            }
                            if (klok1_m > 60)
                            {
                                klok1_m = 0;
                            }
                            if (klok1_m < 0)
                            {
                                klok1_m = 59;
                            }
                            lcd.locate(0,1);
                            lcd.printf("Tijd:   %d:%d",klok1_u,klok1_m);
                        }
                        if (button_enter == 1)
                        {
                            wachttijd_klok = 0;
                            lcd.cls();
                            lcd.locate(0,0);
                            lcd.printf("'S morgens af  u");
                            wait(0.5);
                            while (button_enter == 0 && button_menu_back == 0 && wachttijd_klok < n) {
                                controle();
                                lcd.cls();
                                lcd.locate(0,0);
                                lcd.printf("'S morgens af  u");
                                if(button_up == 1)
                                {
                                    klok2_u = klok2_u + 1;
                                    wachttijd_klok = 0;
                                }
                                else if(button_down == 1)
                                {
                                    klok2_u = klok2_u - 1;
                                    wachttijd_klok = 0;
                                }
                                else
                                {
                                    wachttijd_klok ++;
                                }
                                if (klok2_u > 60)
                                {
                                    klok2_u = 0;
                                }
                                if (klok2_u < 0)
                                {
                                    klok2_u = 59;
                                }
                                lcd.locate(0,1);
                                lcd.printf("Tijd:   %d:%d",klok2_u,klok2_m);
                            }
                            if (button_enter == 1)
                            {
                                wachttijd_klok = 0;
                                lcd.cls();
                                lcd.locate(0,0);
                                lcd.printf("'S morgens af  m");
                                wait(0.5);
                                while (button_enter == 0 && button_menu_back == 0 && wachttijd_klok < n) {
                                    controle();
                                    lcd.cls();
                                    lcd.locate(0,0);
                                    lcd.printf("'S morgens af  m");
                                    if(button_up == 1)
                                    {
                                        klok2_m = klok2_m + 1;
                                        wachttijd_klok = 0;
                                    }
                                    else if(button_down == 1)
                                    {
                                        klok2_m = klok2_m - 1;
                                        wachttijd_klok = 0;
                                    }
                                    else
                                    {
                                        wachttijd_klok ++;
                                    }
                                    if (klok2_m > 60)
                                    {
                                        klok2_m = 0;
                                    }
                                    if (klok2_m < 0)
                                    {
                                        klok2_m = 59;
                                    }
                                    lcd.locate(0,1);
                                    lcd.printf("Tijd:   %d:%d",klok2_u,klok2_m);
                                }
                                if (button_enter == 1)
                                {
                                    wachttijd_klok = 0;
                                    lcd.cls();
                                    lcd.locate(0,0);
                                    lcd.printf("'S avonds op   u");
                                    wait(0.5);
                                    while (button_enter == 0 && button_menu_back == 0 && wachttijd_klok < n) {
                                        controle();
                                        lcd.cls();
                                        lcd.locate(0,0);
                                        lcd.printf("'S avonds op   u");
                                        if(button_up == 1)
                                        {
                                            klok3_u = klok3_u + 1;
                                            wachttijd_klok = 0;
                                        }
                                        else if(button_down == 1)
                                        {
                                            klok3_u = klok3_u - 1;
                                            wachttijd_klok = 0;
                                        }
                                        else
                                        {
                                            wachttijd_klok ++;
                                        }
                                        if (klok3_u > 60)
                                        {
                                            klok3_u = 0;
                                        }
                                        if (klok3_u < 0)
                                        {
                                            klok3_u = 59;
                                        }
                                        lcd.locate(0,1);
                                        lcd.printf("Tijd:   %d:%d",klok3_u,klok3_m);
                                    }
                                    if (button_enter == 1)
                                    {
                                        wachttijd_klok = 0;
                                        lcd.cls();
                                        lcd.locate(0,0);
                                        lcd.printf("'S avonds op   m");
                                        wait(0.5);
                                        while (button_enter == 0 && button_menu_back == 0 && wachttijd_klok < n) {
                                            controle();
                                            lcd.cls();
                                            lcd.locate(0,0);
                                            lcd.printf("'S avonds op   m");
                                            if(button_up == 1)
                                            {
                                                klok3_m = klok3_m + 1;
                                                wachttijd_klok = 0;
                                            }
                                            else if(button_down == 1)
                                            {
                                                klok3_m = klok3_m - 1;
                                                wachttijd_klok = 0;
                                            }
                                            else
                                            {
                                                wachttijd_klok ++;
                                            }
                                            if (klok3_m > 60)
                                            {
                                                klok3_m = 0;
                                            }
                                            if (klok3_m < 0)
                                            {
                                                klok3_m = 59;
                                            }
                                            lcd.locate(0,1);
                                            lcd.printf("Tijd:   %d:%d",klok3_u,klok3_m);
                                        }
                                        if (button_enter == 1)
                                        {
                                            wachttijd_klok = 0;
                                            lcd.cls();
                                            lcd.locate(0,0);
                                            lcd.printf("'S avonds af   u");
                                            wait(0.5);
                                            while (button_enter == 0 && button_menu_back == 0 && wachttijd_klok < n) {
                                                controle();
                                                lcd.cls();
                                                lcd.locate(0,0);
                                                lcd.printf("'S avonds af   u");
                                                if(button_up == 1)
                                                {
                                                    klok4_u = klok4_u + 1;
                                                    wachttijd_klok = 0;
                                                }
                                                else if(button_down == 1)
                                                {
                                                    klok4_u = klok4_u - 1;
                                                    wachttijd_klok = 0;
                                                }
                                                else
                                                {
                                                    wachttijd_klok ++;
                                                }
                                                if (klok4_u > 60)
                                                {
                                                    klok4_u = 0;
                                                }
                                                if (klok4_u < 0)
                                                {
                                                    klok4_u = 59;
                                                }
                                                lcd.locate(0,1);
                                                lcd.printf("Tijd:   %d:%d",klok4_u,klok4_m);
                                            }
                                            if (button_enter == 1)
                                            {   
                                                wachttijd_klok = 0;
                                                lcd.cls();
                                                lcd.locate(0,0);
                                                lcd.printf("'S avonds af   m");
                                                wait(0.5);
                                                while (button_enter == 0 && button_menu_back == 0 && wachttijd_klok < n) {
                                                    controle();
                                                    lcd.cls();
                                                    lcd.locate(0,0);
                                                    lcd.printf("'S avonds af   m");
                                                    if(button_up == 1)
                                                    {
                                                        klok4_m = klok4_m + 1;
                                                        wachttijd_klok = 0;
                                                    }
                                                    else if(button_down == 1)
                                                    {
                                                        klok4_m = klok4_m - 1;
                                                        wachttijd_klok = 0;
                                                    }
                                                    else
                                                    {
                                                        wachttijd_klok ++;
                                                    }
                                                    if (klok4_m > 60)
                                                    {
                                                        klok4_m = 0;
                                                    }
                                                    if (klok4_m < 0)
                                                    {
                                                        klok4_m = 59;
                                                    }
                                                    lcd.locate(0,1);
                                                    lcd.printf("Tijd:   %d:%d",klok4_u,klok4_m);
                                                }
                                                if (button_enter == 1)
                                                {
                                                    selectie = 3;  
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                    if(button_menu_back == 1 || wachttijd_klok > n)
                    {
                        klok1_u = backup_klok1_u;
                        klok2_u = backup_klok2_u;
                        klok3_u = backup_klok3_u;
                        klok4_u = backup_klok4_u;
                        klok1_m = backup_klok1_m;
                        klok2_m = backup_klok2_m;
                        klok3_m = backup_klok3_m;
                        klok4_m = backup_klok4_m;
                    }                 
                    break;
                case (3):
                    lcd.cls();
                    lcd.locate(0,0);
                    lcd.printf("Helderheid");
                    wait(0.5);
                    backup_h = helderheid;
                    lcd.cls();
                    wachttijd_menu = 0;
                    while (button_enter == 0 && button_menu_back == 0 && wachttijd_menu < n) {
                        controle();
                        lcd.cls();
                        lcd.locate(0,0);
                        lcd.printf("Helderheid");
                        if(button_up == 1) {
                            helderheid = helderheid + 0.1;
                            wachttijd_menu = 0;
                        } else if(button_down == 1) {
                            helderheid = helderheid - 0.1;
                            wachttijd_menu = 0;
                        } else {
                            wachttijd_menu ++;
                        }
                        if (helderheid > 1.1) {
                            helderheid = 0;
                        }
                        if (helderheid < 0) {
                            helderheid = 1;
                        }
                        lcd.locate(0,1);
                        lcd.printf("=> %.1f",helderheid);
                        achtergrondverlichting = helderheid;
                    }
                    if (button_menu_back == 1) {
                        helderheid = backup_h;
                    }
                    achtergrondverlichting = helderheid;
                    break;
            }
        }
    }
    wachttijd_menu = 20;
    wachttijd_klok = 20;
    wachttijd_up = 0;
    k = 0;
}

void up()
{
    if((selectie == 1 || selectie == 3) && wachttijd_menu < 10 && wachttijd_klok < 10 && wachttijd_up < 10) {
        backup1 = instel_temp;
        lcd.cls();
        wachttijd_up = 0;
        while (button_enter == 0 && button_menu_back == 0 && wachttijd_up < n) {
            controle();
            lcd.cls();
            lcd.locate(0,0);
            lcd.printf("Instel: %.2f C",instel_temp);
            if(button_up == 1) {
                instel_temp = instel_temp + 0.5;
                wachttijd_up = 0;
            } else if(button_down == 1) {
                instel_temp = instel_temp - 0.5;
                wachttijd_up = 0;
            } else {
                wachttijd_up ++;
            }
        }
        if (button_enter == 1) {
            instel_temp = instel_temp;
            instel_temp_serieel = instel_temp;
            wachttijd_up = 0;
        } else if (button_menu_back == 1) {
            instel_temp = backup1;
            instel_temp_serieel = backup1;
            wachttijd_up = 20;
        } else {
            instel_temp = backup1;
            instel_temp_serieel = backup1;
        }
        serieel_printen();
    }
    wachttijd_menu = 0;
    wachttijd_klok = 0;
    wachttijd_up = 20;
    k = 0;
}