Plamen Totev
/
peltier
peltier with 2 fans
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 */ } }