Plamen Totev
/
peltier
peltier with 2 fans
Diff: main.cpp
- Revision:
- 0:f2647a96f764
- Child:
- 1:3aec489c7366
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/main.cpp Tue Apr 08 03:55:31 2014 +0000 @@ -0,0 +1,97 @@ +#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 + */ + } + +}