۰۳-دى-۱۳۹۱, ۲۲:۱۵:۲۸
۰۳-دى-۱۳۹۱, ۲۲:۴۷:۳۴
۰۳-دى-۱۳۹۱, ۲۲:۵۶:۴۳
یه بنده خدایی یادمه میگفت این مدار باهاش یه منبع 0 تا 40 ساخته[attachment=8330]
۰۶-دى-۱۳۹۱, ۰۱:۴۱:۰۸
بله این کار ممکنه ولی باید میکر عمل فیدبکو انجام بده یعنی با بالا رفتن ولتاژ مقدار pwm کنترول کنه که ولتاژ ثابت بمونه و دلیل عدم استفاده به شخص من از این روش عدم اتمینان 100% و سرعت عملکرد تظمینی برای تثبیت ولتاژ است !چون رگلاتور lm2576 دارای معماری است که با گرفتن فیدبک در صورت افزایش یا کاهش ولتاژ ورودی خروجی رو تثبیت میکنه و ثابت نگه میداره
در صورت استفاده از pwm میکرو نیازی به این رگلتور نیست و به جاش یه ماسفت منفی قرار بدین ولی باید از نظر نرم افزاری برنامتون reall time باشه که مشکلی پیش نیاد
در مورد فونت lcd هم به زودی براتون میزارم با سورس کامل
در صورت استفاده از pwm میکرو نیازی به این رگلتور نیست و به جاش یه ماسفت منفی قرار بدین ولی باید از نظر نرم افزاری برنامتون reall time باشه که مشکلی پیش نیاد
در مورد فونت lcd هم به زودی براتون میزارم با سورس کامل
۱۸-دى-۱۳۹۱, ۲۲:۳۷:۱۵
اینم از سورس برنامه امیدوارم به دردتون بخوره
کد:
$regfile = "M8DEF.dat" : $crystal = 1000000 'morfi cerstal va micro'
'------------------by morteza rahim pour----------------------------------------------------
Config Lcdpin = Pin , Db4 = Pinb.5 , Db5 = Pinb.4 , Db6 = Pinb.3 , Db7 = Pinb.2 , E = Pinc.1 , Rs = Pinc.2
Config Lcd = 16 * 2 : Cursor Off : Cls
Config Adc = Single , Prescaler = Auto , Reference = Internal
Cls
Dim A1 As Byte
Dim A2 As Byte
Dim A3 As Byte
Dim A4 As Byte
Dim A5 As Byte
Dim A6 As Byte
Dim Flag As Byte
Dim Sw As Bit
Dim V As Word
Dim S1 As Word
Dim S2 As Word
Dim S3 As Word
Dim I As Word
Dim Vin As Single
Config Pind.2 = Input
Set Portd.2
Config Portd.7 = Output
Cls
Locate 1 , 1 : Lcd "morteza rahimpor"
Locate 2 , 1 : Lcd "+989353524193"
Wait 10
Cls
Locate 1 , 1 : Lcd " pelece.iran@ "
Locate 2 , 1 : Lcd " yahoo.com"
Wait 10
Cls
Do
If Pind.2 = 0 Then
Set Portd.7
Waitms 500
Toggle Sw
Reset Portd.7
End If
V = Getadc(5)
V = V / 4
I = Getadc(4)
If I > 200 Then
Set Portd.7
Locate 1 , 14 : Lcd "Err"
End If
If I < 200 Then
Reset Portd.7
Locate 1 , 14 : Lcd " "
End If
Gosub Nemyesh7seg
Loop
Nemyesh7seg:
If Sw = 0 Then
S1 = V / 10
S1 = S1 * 10
S1 = V - S1
S2 = V / 100
S2 = S2 * 100
S2 = V - S2
S2 = S2 / 10
S3 = V / 100
Vin = I
Vin = Vin / 100
Locate 2 , 4
Lcd Chr(5)
Locate 2 , 8
Lcd Chr(6)
Locate 1 , 13
Lcd "V"
Locate 2 , 12
Lcd Fusing(vin , "#.##") ; "A"
End If
If Sw = 1 Then
S1 = I / 10
S1 = S1 * 10
S1 = I - S1
S2 = I / 100
S2 = S2 * 100
S2 = I - S2
S2 = S2 / 10
S3 = I / 100
Vin = V
Vin = Vin / 10
Locate 2 , 8
Lcd Chr(5)
Locate 2 , 4
Lcd Chr(6)
Locate 1 , 13
Lcd "A"
Locate 2 , 12
If Vin < 10 Then Lcd Fusing(vin , "##.#") ; "V "
If Vin => 10 Then Lcd Fusing(vin , "##.#") ; "V"
End If
Flag = S3
Gosub 7seg
Gosub Add1
Flag = S2
Gosub 7seg
Gosub Add2
Flag = S1
Gosub 7seg
Gosub Add3
Return
Add1:
Gosub Char
Locate 1 , 1
Lcd Chr(a1)
Gosub Char
Locate 1 , 2
Lcd Chr(a2)
Gosub Char
Locate 1 , 3
Lcd Chr(a3)
Gosub Char
Locate 2 , 1
Lcd Chr(a4)
Gosub Char
Locate 2 , 2
Lcd Chr(a5)
Gosub Char
Locate 2 , 3
Lcd Chr(a6)
Return
Add2:
Gosub Char
Locate 1 , 5
Lcd Chr(a1)
Gosub Char
Locate 1 , 6
Lcd Chr(a2)
Gosub Char
Locate 1 , 7
Lcd Chr(a3)
Gosub Char
Locate 2 , 5
Lcd Chr(a4)
Gosub Char
Locate 2 , 6
Lcd Chr(a5)
Gosub Char
Locate 2 , 7
Lcd Chr(a6)
Return
Add3:
Gosub Char
Locate 1 , 9
Lcd Chr(a1)
Gosub Char
Locate 1 , 10
Lcd Chr(a2)
Gosub Char
Locate 1 , 11
Lcd Chr(a3)
Gosub Char
Locate 2 , 9
Lcd Chr(a4)
Gosub Char
Locate 2 , 10
Lcd Chr(a5)
Gosub Char
Locate 2 , 11
Lcd Chr(a6)
Return
Return
7seg:
Select Case Flag
Case 0:
A1 = 1 : A2 = 3 : A3 = 0 : A4 = 1 : A5 = 2 : A6 = 0
Case 1:
A1 = 3 : A2 = 0 : A3 = 5 : A4 = 2 : A5 = 1 : A6 = 2
Case 2 :
A1 = 3 : A2 = 4 : A3 = 0 : A4 = 1 : A5 = 2 : A6 = 2
Case 3:
A1 = 4 : A2 = 4 : A3 = 0 : A4 = 2 : A5 = 2 : A6 = 0
Case 4:
A1 = 1 : A2 = 2 : A3 = 0 : A4 = 5 : A5 = 5 : A6 = 0
Case 5:
A1 = 1 : A2 = 4 : A3 = 3 : A4 = 2 : A5 = 2 : A6 = 0
Case 6:
A1 = 1 : A2 = 4 : A3 = 3 : A4 = 1 : A5 = 2 : A6 = 0
Case 7:
A1 = 3 : A2 = 3 : A3 = 0 : A4 = 5 : A5 = 5 : A6 = 0
Case 8:
A1 = 1 : A2 = 4 : A3 = 0 : A4 = 1 : A5 = 2 : A6 = 0
Case 9:
A1 = 1 : A2 = 4 : A3 = 0 : A4 = 2 : A5 = 2 : A6 = 0
End Select
Return
Char:
Deflcdchar 0 , 30 , 31 , 31 , 31 , 31 , 31 , 31 , 30 ' 0(be rast)
Deflcdchar 1 , 15 , 31 , 31 , 31 , 31 , 31 , 31 , 15 ' 1(be chap)
Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 31 ' 2(payin)
Deflcdchar 3 , 31 , 31 , 32 , 32 , 32 , 32 , 32 , 32 ' 3(bala)
Deflcdchar 4 , 31 , 31 , 32 , 32 , 32 , 32 , 31 , 31 ' 4(balapayin)
Deflcdchar 5 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 ' 5(khali)
Deflcdchar 6 , 32 , 32 , 32 , 32 , 32 , 32 , 14 , 14 ' replace ? with number (0-7)
Return
۱۸-دى-۱۳۹۱, ۲۲:۴۴:۵۶
ممنون
میشم یکم توضیح بدین فونت رو چطوری ساختین
میشم یکم توضیح بدین فونت رو چطوری ساختین
۱۹-دى-۱۳۹۱, ۰۱:۰۷:۱۰
هر فونت تشکیل شده از 6عدد کارکتر که با قرار گرفتن در کنار و زیر هم یک فونت 7seg بزرگ تشکیل میده که برای ساخت عداد 0-9 کارکترهای زیر
وقتی مثلا عدد 1 قرار نمایش داده بشه از جدول زیر شماره کارکتر های مربوط به عدد تو متغیر a1,a2,a3,a4,a5,a6 میرزه
و کارکترهای مربوط به آن عدد با مقادیر گرفته شده از جدول بالا نمایش مید به کمک دستورهای زیر
در این حد کافیه یا سادتر بگم ؟
کد:
Char:
Deflcdchar 0 , 30 , 31 , 31 , 31 , 31 , 31 , 31 , 30 ' 0(be rast)
Deflcdchar 1 , 15 , 31 , 31 , 31 , 31 , 31 , 31 , 15 ' 1(be chap)
Deflcdchar 2 , 32 , 32 , 32 , 32 , 32 , 32 , 31 , 31 ' 2(payin)
Deflcdchar 3 , 31 , 31 , 32 , 32 , 32 , 32 , 32 , 32 ' 3(bala)
Deflcdchar 4 , 31 , 31 , 32 , 32 , 32 , 32 , 31 , 31 ' 4(balapayin)
Deflcdchar 5 , 32 , 32 , 32 , 32 , 32 , 32 , 32 , 32 ' 5(khali)
Deflcdchar 6 , 32 , 32 , 32 , 32 , 32 , 32 , 14 , 14 ' replace ? with number (0-7)
Return
وقتی مثلا عدد 1 قرار نمایش داده بشه از جدول زیر شماره کارکتر های مربوط به عدد تو متغیر a1,a2,a3,a4,a5,a6 میرزه
کد:
7seg:
Select Case Flag
Case 0:
A1 = 1 : A2 = 3 : A3 = 0 : A4 = 1 : A5 = 2 : A6 = 0
Case 1:
A1 = 3 : A2 = 0 : A3 = 5 : A4 = 2 : A5 = 1 : A6 = 2
Case 2 :
A1 = 3 : A2 = 4 : A3 = 0 : A4 = 1 : A5 = 2 : A6 = 2
Case 3:
A1 = 4 : A2 = 4 : A3 = 0 : A4 = 2 : A5 = 2 : A6 = 0
Case 4:
A1 = 1 : A2 = 2 : A3 = 0 : A4 = 5 : A5 = 5 : A6 = 0
Case 5:
A1 = 1 : A2 = 4 : A3 = 3 : A4 = 2 : A5 = 2 : A6 = 0
Case 6:
A1 = 1 : A2 = 4 : A3 = 3 : A4 = 1 : A5 = 2 : A6 = 0
Case 7:
A1 = 3 : A2 = 3 : A3 = 0 : A4 = 5 : A5 = 5 : A6 = 0
Case 8:
A1 = 1 : A2 = 4 : A3 = 0 : A4 = 1 : A5 = 2 : A6 = 0
Case 9:
A1 = 1 : A2 = 4 : A3 = 0 : A4 = 2 : A5 = 2 : A6 = 0
End Select
Return
و کارکترهای مربوط به آن عدد با مقادیر گرفته شده از جدول بالا نمایش مید به کمک دستورهای زیر
کد:
Add1:
Gosub Char
Locate 1 , 1
Lcd Chr(a1)
Gosub Char
Locate 1 , 2
Lcd Chr(a2)
Gosub Char
Locate 1 , 3
Lcd Chr(a3)
Gosub Char
Locate 2 , 1
Lcd Chr(a4)
Gosub Char
Locate 2 , 2
Lcd Chr(a5)
Gosub Char
Locate 2 , 3
Lcd Chr(a6)
Return
در این حد کافیه یا سادتر بگم ؟
۱۹-دى-۱۳۹۱, ۱۱:۴۸:۵۳
نقل قول: وقتی مثلا عدد 1 قرار نمایش داده بشه از جدول زیر شماره کارکتر های مربوط به عدد تو متغیر a1,a2,a3,a4,a5,a6 میرزهاین قسمت و دقیق نفهمیدم
کد:7seg:
Select Case Flag
Case 0:
A1 = 1 : A2 = 3 : A3 = 0 : A4 = 1 : A5 = 2 : A6 = 0
Case 1:
A1 = 3 : A2 = 0 : A3 = 5 : A4 = 2 : A5 = 1 : A6 = 2
Case 2 :
A1 = 3 : A2 = 4 : A3 = 0 : A4 = 1 : A5 = 2 : A6 = 2
Case 3:
A1 = 4 : A2 = 4 : A3 = 0 : A4 = 2 : A5 = 2 : A6 = 0
Case 4:
A1 = 1 : A2 = 2 : A3 = 0 : A4 = 5 : A5 = 5 : A6 = 0
Case 5:
A1 = 1 : A2 = 4 : A3 = 3 : A4 = 2 : A5 = 2 : A6 = 0
Case 6:
A1 = 1 : A2 = 4 : A3 = 3 : A4 = 1 : A5 = 2 : A6 = 0
Case 7:
A1 = 3 : A2 = 3 : A3 = 0 : A4 = 5 : A5 = 5 : A6 = 0
Case 8:
A1 = 1 : A2 = 4 : A3 = 0 : A4 = 1 : A5 = 2 : A6 = 0
Case 9:
A1 = 1 : A2 = 4 : A3 = 0 : A4 = 2 : A5 = 2 : A6 = 0
End Select
Return
میشه بیشتر توضیح بدید؟
ببخشید متوجه شدم؛
یعنی وقتی سون سگمنت میخواد عدد 1 رو نمایش بده باید متغیرها برابر مقادیر case1 قرار بگیرن؛
کد:
A1 = 3 : A2 = 0 : A3 = 5 : A4 = 2 : A5 = 1 : A6 = 2
۱۹-دى-۱۳۹۱, ۲۱:۰۶:۰۷
بله درسته
۲۱-خرداد-۱۳۹۲, ۰۳:۰۷:۵۶
سلام
چند وقتیه درگیر lm2576adj هستم
یه سوالی برام پیش اومده
مگه رگلاتور 3 آمپر نیست؟
چرا منبعی که باهاش درست کردین، 2 آمپریه؟
چند وقتیه درگیر lm2576adj هستم
یه سوالی برام پیش اومده
مگه رگلاتور 3 آمپر نیست؟
چرا منبعی که باهاش درست کردین، 2 آمپریه؟
۲۲-خرداد-۱۳۹۲, ۱۸:۵۷:۰۷
بله 3 آمپر و شما میتونین این آمپر ازش تو همین منبع بکشین ولی من آمپر ایده ال نوشتم 2 آمپر چون 3آمپر برای lm2576 یکم خطرناکهو امکان سوختنش هست بیشترم به دلیل adj بودن ولتاژ و تابت بودن سلف .