سلام
من می خوام از ولتاژ خط به عنوان تغذیه مدار استفاده کنم تا نیازی به منبع تغذیه ی جانبی نداشته باشد
ولتاژ خط در حالت آزاد 50 ولت dc میباشد ولی در مورد بوق اشغال یا حالت دریافت تماس متاسفانه اطلاعات زیادی ندارم فقط می دونم که به صورت سینوسی می باشند
ورودی رگولاتور باید بین 7.5 تا 16 ولت باشد
اگر از ترانسی(چوک آبی) که در مدار (برای ایزوله کردن ) استفاده کنم ولتاژ dc طرف ثانویه صفر میشود و فقط در حالت برقراری تماس ولتاژ در ثانویه به صورت ac وجود دارد سوالی از شما دارم اینه که من باید اولیه ترانس رو باید به ورودی مدار یکسو ساز و رگولاتور اعمال کنم؟ اگر اینطور هست مدار یکسوساز باید چه مشخصاتی داشته باشه (منظورم مشخصات پل دیود مثل جریان و ولتاژ و اندازه خازن بعد از آن ) ؟
فایلی که پیوست کردم شبیه سازیه پروژه منه
(دو کلید در کنار هم به جای سنسور شعله گذاشتم که در حالت عادی 1 و در حالت وقوع آتش 0 است )
در مورد پروژه باید بگم که که شماره تلفنی به عنوان شماره پیش گزیده در داخل برنامه وجود دارد که وسیله ی کیپد قابل تغییر می باشد ولی اگر تغذیه مدار قطع شود دوباره شماره قبلی جای آن را می گیرد.
برنامه زیر برای تست نوشته شده که خیلی ناقص هست.
من می خوام اگر کلید sw در حالت 1 قرار گیرد کیپد فعال شود و شماره جدید وارد شود در غیر این صورت شماره پیش گزیده ذخیره شود
بعد از 3 بار تماس مدتی صبر کند و دوباره تماس بگیرد و همچنین اگر خط اشغال بود پس از مدتی در صورت برقراری شرط دوباره تماس بگیرد
کد:
$regfile = "m16def.dat"
$crystal = 8000000
Config Portd.7 = Output : Relay Alias Portd.7 : Reset Relay
Config Lcd = 16 * 2
Config Lcdpin = Pin , Db4 = Porta.2 , Db5 = Porta.3 , Db6 = Porta.4 , Db7 = Porta.5 , E = Porta.1 , Rs = Porta.0
Display Off
Config Adc = Single , Prescaler = Auto , Reference = Avcc
Start Adc
Config Porta.7 = Input 'rc5 receiver
Config Portd.0 = Input 'sw
Enable Interrupts
Dim W As Word
Dim Input_mv As Single
Dim Temp As Single
Dim Num As String * 16
Dim N As Word
Do
If Pind.0 = 1 Then
Goto Kbd
Else
Num = "09360071465" : Exit Do
End If
Loop
Do
Main:
Gosub Read_the_adc
If Temp >= 50 Then
Bitwait Pina.7 , Reset
Gosub Dialing
Else
Exit Do
End If
Loop
End
'************************************
Read_the_adc:
W = Getadc(6)
Input_mv = W * 4.8828125
Temp = Input_mv / 10
Return
'***********************************
Dialing:
Display On
Cls
Lcd "dialing....."
Wait 1
Locate 2 , 1
Lcd Num
Set Relay : Waitms 500
Dtmfout Num , 50
Display Off
Wait 4
If N = 3 Then
Wait 60
Reset N
End If
Incr N
Return
'***********************************************
Kbd:
Do
Config Kbd = Portc , Debounce = 50 , Delay = 150
Display On
Dim Keyread As Byte
Dim Key As Byte
Num = ""
Cls
Lcd "Insert Number:"
Waitms 100
Locate 2 , 1
Noum:
Do
Keyread = Getkbd()
If Keyread >= 16 Then Goto Noum
Key = Lookup(keyread , Dta)
If Key = 15 Then Exit Do
Waitms 100
Lcd Key
Num = Num + Str(key)
Loop
Cls
Lcd "saving ..."
Locate 2 , 1
Lcd Num
Wait 2
Display Off
Goto Main
Loop
'**********************************************
Dta:
Data 7 , 4 , 1 , 15 , 8 , 5 , 2 , 0 , 9 , 6 , 3 , 14 , 10 , 11 , 12 , 13