سلام به همه
برای اینکه بخوایم ولتاژ 220 ولت رو کم کنیم ساده ترین روش استفاده از دیمر هست .
دیمر آنالوگ قابلیت زیادی نداره ولی اگر بخوایم یک نمایشگر به مدارمون اضافه کنیم یا اینکه میزان زاویه آتش تریاک رو دقیق کنترل کنیم و ... احتیاج به دیمر دیجیتال داریم
اصل این مدار رو از سایت مهندس لاچینی به آدرس زیر گرفتم:
http://www.hlachini.com/Projects/Dimer-Digital-Atmega8/Dimer-Digital-Atmega8.htm
که اون رو مطابق میکرو pic تغییر دادم.
توضیحات رو لطفا تا اونجا که میشه از روی همون سایت بردارید
درصورتی که سوالی بود بفرمایید در خدمتم .
محتویات فایل پروژه
شماتیک
برنامه برای -pic16f877a-pcwhd-picc:
توضیح عملکرد مدار
و غیره!! :mrgreen:
موفق باشید
یا علی
برای اینکه بخوایم ولتاژ 220 ولت رو کم کنیم ساده ترین روش استفاده از دیمر هست .
دیمر آنالوگ قابلیت زیادی نداره ولی اگر بخوایم یک نمایشگر به مدارمون اضافه کنیم یا اینکه میزان زاویه آتش تریاک رو دقیق کنترل کنیم و ... احتیاج به دیمر دیجیتال داریم
اصل این مدار رو از سایت مهندس لاچینی به آدرس زیر گرفتم:
http://www.hlachini.com/Projects/Dimer-Digital-Atmega8/Dimer-Digital-Atmega8.htm
که اون رو مطابق میکرو pic تغییر دادم.
توضیحات رو لطفا تا اونجا که میشه از روی همون سایت بردارید
درصورتی که سوالی بود بفرمایید در خدمتم .
محتویات فایل پروژه
شماتیک
برنامه برای -pic16f877a-pcwhd-picc:
توضیح عملکرد مدار
و غیره!! :mrgreen:
کد:
//!In the name of god the compassionate the merciful #include <16F877A.h> //------------------------------------------------------- #device WRITE_EEPROM = NOINT//ASYNC//this argument is for preventing interrupt service routin problem during writting EEProm #use delay(clock=10000000) //------------------------------------------------------- #FUSES HS #FUSES noPROTECT #FUSES NOPUT #FUSES NOBROWNOUT #FUSES NOWDT #fuses NOLVP #fuses NOCPD //-------------------------------Global Variables------------------- unsigned int16 takhir;// a variable for controlling triac gate-takhir says that how much time should be waitted ( in us ) from begining of the cycle ( half cycle ) to start the triac conduction.so Takhir tell us how much of the cycle should be removed from the begining //------------------------Pins---------------------- #define pin_zero pin_a5 #define triac_order_pin pin_a1 //-------------------------------Functions Prototype------------------------ void set_primary(void);// setting primary values to the system //------------------------------------Interrupts------------------- #int_ext void external_interrupt_service_routin(void)//for controlling triac_controlling_pin when zero cross section give a pulse { delay_us(takhir); output_low(triac_order_pin); delay_us(400); output_high(triac_order_pin); } //------------------------------------Main------------------- void main(void) { //! set_primary(); while(1) { } } void set_primary(void) { enable_interrupts(global); enable_interrupts(INT_EXT); enable_interrupts(INT_TIMER1); }
موفق باشید
یا علی
دیدگاه