peltier with 2 fans

Dependencies:   mbed TextLCD

main.cpp

Committer:
redplam
Date:
2014-04-08
Revision:
0:f2647a96f764
Child:
1:3aec489c7366

File content as of revision 0:f2647a96f764:

#include "mbed.h"

PwmOut peltier_cold(PTA12);
PwmOut peltier_hot(PTA4);
DigitalOut en_drv1(PTC13);
DigitalOut en_drv2(PTC16);
DigitalOut fan_in_peltier(PTC11);                                       // Peltier FAN inside  the camber
DigitalOut fan_out_peltier(PTC10);                                      // Peltier FAN outside of the chamber

unsigned int peltier_hot_pulsewidth;
unsigned int peltier_green_pulsewidth;
unsigned int peltier_cold_pulsewidth;
unsigned int peltier_period =1000;
unsigned int peltier_pulsewidth = 0;
unsigned int peltier_step = 10;

unsigned int pwm_cold_peltier(int brightness )
{
    if (brightness==1) {
        peltier_cold_pulsewidth=peltier_cold_pulsewidth+peltier_step;
        peltier_cold.pulsewidth_us(peltier_cold_pulsewidth);
    };
    if (brightness==0) {
        peltier_cold_pulsewidth=peltier_cold_pulsewidth-peltier_step;
        peltier_cold.pulsewidth_us(peltier_cold_pulsewidth);
    };
    return peltier_cold_pulsewidth;
}
unsigned int pwm_hot_peltier(int brightness)
{
    if (brightness==1) {
        peltier_hot_pulsewidth=peltier_hot_pulsewidth+peltier_step;
        peltier_hot.pulsewidth_us(peltier_hot_pulsewidth);
    }
    if (brightness==0) {
        peltier_hot_pulsewidth=peltier_hot_pulsewidth-peltier_step;
        peltier_hot.pulsewidth_us(peltier_hot_pulsewidth);
    }
    return peltier_hot_pulsewidth;
}
int main(void)
{
    en_drv1=0;//disable
    en_drv2=0;//disable
    fan_in_peltier=1;//enable
    fan_out_peltier=1;//enable



    en_drv1=1;//enable
    en_drv2=1;//enable
    while(1) {
        en_drv1=1;
        en_drv2=1;


        // for cold
        //   peltier_cold.period_us(peltier_period);
        //    peltier_cold_pulsewidth=500;
        //   pwm_cold_peltier(1);

        peltier_hot.period_us(peltier_period);
        peltier_hot_pulsewidth=500;//at 50%
        pwm_hot_peltier(1);
        wait(1.0);



        /* peltier_cold.period_us(peltier_period);
         peltier_cold_pulsewidth=peltier_pulsewidth;
         for (int i=1; i<=100; i++) {
             pwm_cold_peltier(1);
             wait (0.1);
         }
         for (int i=1; i<=100; i++) {
             pwm_cold_peltier(0);
             wait (0.1);
         }
         peltier_cold_pulsewidth=10;    // set to 0
         pwm_cold_peltier(0);           // set to 0

         peltier_hot.period_us(peltier_period);
         peltier_hot_pulsewidth=peltier_pulsewidth;
         for (int i=1; i<=100; i++) {
             pwm_hot_peltier(1);
             wait (0.1);
         }
         for (int i=1; i<=100; i++) {
             pwm_hot_peltier(0);
             wait (0.1);
         }
         peltier_hot_pulsewidth=10;    // set to 0
         pwm_hot_peltier(0);           // set to 0
         */
    }

}