T
the_balistic
Guest
Hii Laba diena,
Man ir problēma projektēšana circuit, lai kontrolētu ātrumu AC motoru.Es fāzes leņķis Spridzināšanas méthode.Es izmantoju Microcontroller (AVR) sadedzināšanas Triac, bet es saņēmu anomali rezultātu.Lūdzu, pārbaudiet savu dizainu, (šo simulāciju, izmantojot Proteus 7,2), I use AC signālam ar frekvenci 5 Hz un priekša = 12V, bet izejas ir nepareizi.
<img src="http://images.elektroda.net/37_1266902333_thumb.jpg" border="0" alt="Triac Simulation Using Proteus" title="Triac Modelēšana, izmantojot Proteus"/> Un šeit ir mans kods, lūdzu pārbaudiet: (I use Bascom avr kā manu kompilators)Kods:$ Regfile = "m16def.dat"
$ Kristāla = 12000000
$ Bodu = 9600 "izmantošana bodu likme
$ Hwstack = 32 'noklusējuma izmantot 32 aparatūras kaudze
$ Swstack = 10 'noklusējuma izmantot 10 SW kaudze
$ Framesize = 40'==============================
"LCD inisialisation
"Režīmā 4 bit
"Pin R / W zemes tikai rakstīt
'==============================
Config Lcdpin = Pin, Db4 = Portb.4, Db5 = Portb.5, Db6 = Portb.6, Db7 = Portb.7, E = Portb.1, R = Portb.0
Config LCD = 20 * 2
CLS
Kursora Off Noblink'====================================
"Eksternal Interrupt 0 inisialisation
"Par Noteikt Zero Crossing Signal
'====================================Par Start_timer0 Int0
Int0 Config = FallingDim statusu Bit
Dim Displaystatus Kā Bit'================================================= ===================
"Timer 1 Inisialisation par Countdown Zero Crossing
"AR LĪDZEKĻU 1024/12000000 (CRSYTAL) = 0.08ms
"Tā taimeris 1 būs pārplūdes reizi (0.08ms * 65535 = 5242,8 ms = 5.2s)
'================================================= ====================
Config Timer1 = Taimeris, Prescale = 1024
Dim Nilaitimer1 kā Integer
Dim Waktu par vienuDim Z Kā String * 5
Config Porta.7 = izeja
Triac Alias Porta.7Config Portd.2 = Input
Ddrd.2 = 0
'==========================
"Galvenais Program
'==========================
Galvenais:Atrodiet 1, 1
LCD "Program Zero Cross"
Atrodiet 2, 1
LCD "Ar Liegt Bodat'z"
Reset statussIeslēgt Timer1
Ieslēgt Int0
Ieslēgt PārtraukumiCLSDoKaut Displaystatus = 0
Iet
Displaystatus = 0
Waktu = Nilaitimer1 * 0,08
Atrodiet 1, 1
LCD "Timer1:"; Nilaitimer1
Atrodiet 2, 1
Z = Str (waktu)
Z = sapludinot (waktu, "#.##")
LCD "Laiks", Z, "ms"
Cilpa'=============================
"Ārējās Interrupt 0 Vektor
'=============================
Start_timer0:
Ja Statuss = 0 tam
Timer1 = 0
Sākt Timer1
Kaut Pind.2 = 0
Iet
Waitms 25
Uzstādīt Triac
Waitms 40
Reset Triac
Iestatīt statusu
Vēl
Pietura Timer1
Kaut Pind.2 = 0
Iet
Waitms 25
Uzstādīt Triac
Waitms 40
Reset Triac
Reset statuss
Nilaitimer1 = Timer1
Displaystatus = 1
Beigas Ja
AtgrieztiesBeigas
Man ir problēma projektēšana circuit, lai kontrolētu ātrumu AC motoru.Es fāzes leņķis Spridzināšanas méthode.Es izmantoju Microcontroller (AVR) sadedzināšanas Triac, bet es saņēmu anomali rezultātu.Lūdzu, pārbaudiet savu dizainu, (šo simulāciju, izmantojot Proteus 7,2), I use AC signālam ar frekvenci 5 Hz un priekša = 12V, bet izejas ir nepareizi.
<img src="http://images.elektroda.net/37_1266902333_thumb.jpg" border="0" alt="Triac Simulation Using Proteus" title="Triac Modelēšana, izmantojot Proteus"/> Un šeit ir mans kods, lūdzu pārbaudiet: (I use Bascom avr kā manu kompilators)Kods:$ Regfile = "m16def.dat"
$ Kristāla = 12000000
$ Bodu = 9600 "izmantošana bodu likme
$ Hwstack = 32 'noklusējuma izmantot 32 aparatūras kaudze
$ Swstack = 10 'noklusējuma izmantot 10 SW kaudze
$ Framesize = 40'==============================
"LCD inisialisation
"Režīmā 4 bit
"Pin R / W zemes tikai rakstīt
'==============================
Config Lcdpin = Pin, Db4 = Portb.4, Db5 = Portb.5, Db6 = Portb.6, Db7 = Portb.7, E = Portb.1, R = Portb.0
Config LCD = 20 * 2
CLS
Kursora Off Noblink'====================================
"Eksternal Interrupt 0 inisialisation
"Par Noteikt Zero Crossing Signal
'====================================Par Start_timer0 Int0
Int0 Config = FallingDim statusu Bit
Dim Displaystatus Kā Bit'================================================= ===================
"Timer 1 Inisialisation par Countdown Zero Crossing
"AR LĪDZEKĻU 1024/12000000 (CRSYTAL) = 0.08ms
"Tā taimeris 1 būs pārplūdes reizi (0.08ms * 65535 = 5242,8 ms = 5.2s)
'================================================= ====================
Config Timer1 = Taimeris, Prescale = 1024
Dim Nilaitimer1 kā Integer
Dim Waktu par vienuDim Z Kā String * 5
Config Porta.7 = izeja
Triac Alias Porta.7Config Portd.2 = Input
Ddrd.2 = 0
'==========================
"Galvenais Program
'==========================
Galvenais:Atrodiet 1, 1
LCD "Program Zero Cross"
Atrodiet 2, 1
LCD "Ar Liegt Bodat'z"
Reset statussIeslēgt Timer1
Ieslēgt Int0
Ieslēgt PārtraukumiCLSDoKaut Displaystatus = 0
Iet
Displaystatus = 0
Waktu = Nilaitimer1 * 0,08
Atrodiet 1, 1
LCD "Timer1:"; Nilaitimer1
Atrodiet 2, 1
Z = Str (waktu)
Z = sapludinot (waktu, "#.##")
LCD "Laiks", Z, "ms"
Cilpa'=============================
"Ārējās Interrupt 0 Vektor
'=============================
Start_timer0:
Ja Statuss = 0 tam
Timer1 = 0
Sākt Timer1
Kaut Pind.2 = 0
Iet
Waitms 25
Uzstādīt Triac
Waitms 40
Reset Triac
Iestatīt statusu
Vēl
Pietura Timer1
Kaut Pind.2 = 0
Iet
Waitms 25
Uzstādīt Triac
Waitms 40
Reset Triac
Reset statuss
Nilaitimer1 = Timer1
Displaystatus = 1
Beigas Ja
AtgrieztiesBeigas