سلام به تمامی مهندسین این انجمن ....دوستان کسی هست یک فانکشن دیجیتالی توپ درست کنه که تا 2کیلو هرتز نوسان کنه وفرکانس با عدد اعشارش روی ال سی دی نمایش داده بشه و ولوم مربوط به عرض پالس رو هم داشته باشه...خواهش میکنم کمکم کنید میدونم بیشتر شما دوستان برنامه نویسیتون خوبه وکار با بیشتر نرم افزارها رو بلدین اقایی میکنین تورو خدا :cry2:
اطلاعیه
Collapse
No announcement yet.
کمک برای ساخت فانکشن با میکرو
Collapse
X
-
پاسخ : کمک برای ساخت فانکشن با میکرو
سلام
صفحات زیر رو یه نگاهی بندازین بد نیست :
http://www.eca.ir/forum2/index.php?topic=40150.0
http://projects.m32.ir/800/
چرا ناراحتی پاتریک!
+ امروز ی بچه دیدم سرچهارراه گل میفروخت
- از دیدنش ناراحت شدی؟
+ نه
پس چی ناراحتت کرده
+ اینکه دیدن اینجور بچه ها انقدر واسم عادی شده که دیگه ناراحتم نمیکنه
------------------------------------------------------------------------------------------------------
تاحالا فکر کردی بیسواد کیه؟- بی سواد یعنی کسی که نمیتونه ذهنیاتش رو عملی کنه!
------------------------------------------------------------------------------------------------------
محصولات
دیدگاه
-
پاسخ : کمک برای ساخت فانکشن با میکرو
pouyaojaghi جان مدار برای یک اسکوپ دیجیتال میخوام که با موج انالوگ سازگاریی نداره...مشخصات کاملش اینه یک فانکشن دیجیتال با موج مربعی با دامنه متغیر با ولوم و نمایشگر ال سی دی برای فرکانس با اعداد اعشار یعنی فرکانس کامل نشون بده مثل1991.5هرتز و ولوم واسه کنترل عرض پالس فقط نمیدونم میشه همچین مداری ساخت یا نه :cry:
دیدگاه
-
پاسخ : کمک برای ساخت فانکشن با میکرو
مهندسین عزیز من چندتا عکس میزارم فقط به من بگین این فانکشن که 5عدد کلید داره که تا1کیلوهرتز بسته میشه چرا تو ال سی دی عدد9.143کیلو هرتز بنمایش در اومده...مگه نه اینکه باید تا یک کیلو نوسان کنه یکم توضیح بدین من هرچی بیشتر نگاش میکنم بیشتر گیج میشم
اینم لینک عکسها
http://upir.ir/files/626f44d541372.jpg
http://upir.ir/files/e202240bd7cc1.jpg
http://upir.ir/files/89e80ad027803.jpg
دیدگاه
-
پاسخ : کمک برای ساخت فانکشن با میکرو
سلام من مهندس ادیسون هستم
و یک فانکشن ژنراتور تمام دیجیتال ساخته ام که به شما معرفی می کنم
این مدار تست شده و مشکلی نداشته است
در این مدار توسط کلید فرکانس دامنه دیوتی سایکل و نوع موج رو انتخاب می کنید و در آخر موج براتون تولید میشه :wow:
ابتدا برنامه مدار رو براتون قرار میدهم که به زبان بیسیک و میکرو مگا 8 و کریستال 16 مگا هرتز کار می کنه
کد:$regfile = "m8def.dat" $crystal = 16000000 Config Lcdpin = Pin , Db4 = Portc.2 , Db5 = Portc.3 , Db6 = Portc.4 , Db7 = Portc.5 , E = Portc.1 , Rs = Portc.0 Config Lcd = 16 * 2 Cursor Off Config Portd = Output Dim A As Byte Dim B As Word Dim C As Byte Dim D As Word Dim E As Word Dim F As Word Dim G As Byte Dim H As Byte Dim I As Word Dim J As Single Dim K As Byte Dim L As Byte Dim M As Byte Ddrb.0 = 0 : Portb.0 = 1 Ddrb.1 = 0 : Portb.1 = 1 Ddrb.2 = 0 : Portb.2 = 1 Ddrb.3 = 0 : Portb.3 = 1 Ddrb.4 = 0 : Portb.4 = 1 Ddrb.5 = 0 : Portb.5 = 1 Declare Sub A0 Declare Sub A1 Declare Sub A2 Declare Sub A3 Declare Sub A4 Declare Sub A5 Declare Sub A6 Declare Sub A7 Declare Sub A8 Declare Sub A9 Declare Sub A10 Declare Sub A11 Declare Sub A12 Declare Sub A13 Declare Sub A14 Declare Sub A15 Declare Sub A16 Declare Sub A17 A = 1 B = 200 C = 50 F = 500 G = 99 Config Debounce = 30 Cls Main1: Cls Do Debounce Pinb.2 , 0 , A1 Debounce Pinb.0 , 0 , A2 Home Lcd "SELECT WAVEFORM?" Lowerline If A = 1 Then Lcd "WAVE IS:SINE " Elseif A = 2 Then Lcd "WAVE IS:SQUARE " Else Lcd "WAVE IS:TRIANGLE" End If Loop Main2: Cls Do Debounce Pinb.2 , 0 , A3 Debounce Pinb.3 , 0 , A4 Debounce Pinb.4 , 0 , A5 Debounce Pinb.5 , 0 , A6 Debounce Pinb.0 , 0 , A7 Debounce Pinb.1 , 0 , A0 Home Lcd "SET FREQUENCY ? " Lowerline Lcd "F is:" ; B ; "Hz NEXT>" Loop Main3: Cls Do Debounce Pinb.2 , 0 , A8 Debounce Pinb.3 , 0 , A9 Debounce Pinb.4 , 0 , A10 Debounce Pinb.5 , 0 , A11 Debounce Pinb.0 , 0 , A12 Debounce Pinb.1 , 0 , A0 Home Lcd "SET DUTY CYCLE ?" Lowerline Lcd "D.C.is:" ; C ; "% NEXT>" Loop Main4: Cls Do Debounce Pinb.2 , 0 , A13 Debounce Pinb.3 , 0 , A14 Debounce Pinb.4 , 0 , A15 Debounce Pinb.5 , 0 , A16 Debounce Pinb.0 , 0 , A17 Debounce Pinb.1 , 0 , A0 Home Lcd "SET AMPLITUDE ? " Lowerline Lcd "AMP.is:" ; G ; "% NEXT>" Loop Main5: H = G G = G - 14 G = G * 3 'damne tabdil be hex F = F / B 'mohasebe T *500 D = F * C 'mohasebe takhire 1 E = 100 - C E = F * E 'mohasebe takhire 2 D = D / 10 E = E / 10 Cls Lcd "WAVE F DC AMP" Lowerline If A = 1 Then Goto Main6 Elseif A = 2 Then Goto Main7 Else Goto Main8 End If Main6: Lcd "SIN. " ; B ; " " ; "50 " ; H G = G / 2 Do For I = 0 To 360 Step 3 J = I J = Deg2rad(j) J = Sin(j) J = J * G J = Int(j) J = J + 128 Portd = J For L = 1 To D Waitus 1 Next L Next I Loop Main7: Lcd "SQU. " ; B ; " " ; C ; " " ; H Do Portd = G For L = 1 To D Waitus 240 Next L Portd = 0 For L = 1 To E Waitus 240 Next L Loop Main8: Lcd "TRI. " ; B ; " " ; C ; " " ; H Do For M = 1 To G Portd = M For L = 1 To D Waitus 2 Next L Next M For M = G To 1 Step -1 Portd = M For L = 1 To E Waitus 2 Next L Next M Loop End 'end program Sub A0: Goto Main1 End Sub A0 Sub A1: If A < 3 Then Incr A Else A = 1 End If Goto Main1 End Sub A1 Sub A2: Goto Main2 End Sub A2 Sub A3: If B < 500 Then Incr B Else B = 500 End If Goto Main2 End Sub A3 Sub A4: If B > 0 Then Decr B Goto Main2 End Sub A4 Sub A5: If B < 480 Then B = B + 20 Else B = 500 End If Goto Main2 End Sub A5 Sub A6: If B > 20 Then B = B - 20 Goto Main2 End Sub A6 Sub A7: Goto Main3 End Sub A7 Sub A8: If C < 99 Then Incr C Else C = 99 End If Goto Main3 End Sub A8 Sub A9: If C > 0 Then Decr C Goto Main3 End Sub A9 Sub A10: If C < 90 Then C = C + 10 Else C = 99 End If Goto Main3 End Sub A10 Sub A11: If C > 10 Then C = C - 10 Goto Main3 End Sub A11 Sub A12: Goto Main4 End Sub A12 Sub A13: If G < 99 Then Incr G Else G = 99 End If Goto Main4 End Sub A13 Sub A14: If G > 14 Then Decr G Goto Main4 End Sub A14 Sub A15: If G < 90 Then G = G + 10 Else G = 99 End If Goto Main4 End Sub A15 Sub A16: If G > 24 Then G = G - 10 Goto Main4 End Sub A16 Sub A17: Goto Main5 End Sub A17
sigpic
دیدگاه
-
پاسخ : کمک برای ساخت فانکشن با میکرو
مهندس ادیسون جان چرا کل مدارو نمیزاری تا استفاده کنیم شما دیگه چرا کم کم مدارو میزارم چه سیغه ایه...قبول همتون برنامه نویس حرفه ای ولی این تو مرام ایرانی نیست بازم اقایی کردی اگه لطف کنی کل مدارو با فایل هگز با جزییات در اختیارم بزاری سپاس گذارت میشم...راستی یک نگاه به اون مدار بالا که گذاشتم بنداز ببین تا چند نوسان داره اگه چیزی هم خواستی بگو تا بیشتر راهنمایی کنی درود بیکران
دیدگاه
-
پاسخ : کمک برای ساخت فانکشن با میکرو
سلام
این هم کل مدار + فایل شبیه سازی + برنامه + فایل هگز
http://upir.ir/files/2c1e9e0750711.rar
توضیح روش dds :
در این روش ما از یک مبدل دیجیتال به آنالوگ استفاده می کنیم و توسط میکرو اعداد مناسب رو تولید می کنیم و سپس این عدد های دیجیتالی به یک مقدار آنالوگ تبدیل می شن و یک موج پیوسته رو شکل میدن .
sigpic
دیدگاه
-
پاسخ : کمک برای ساخت فانکشن با میکرو
انالیز مدار شما :
ابتدا با خوندن چند کلید رنج فرکانسی رو مشخص می کنه اون کلید ها به پایه های RC0 تا RC3 وصل هستند که می تونه گام فرکانس رو تعیین کنه
دو کلید دیگه هم داره که باید تو برنامه کاربردش تعیین شه یعنی می تونه کاربرد متفاوت داشته باشه
سپس یک دیتا رو از پایه Rc6 به میکرو دیگر ارسال می کنه و ال سی دی هم که برای نمایشه مشخصاته
ولوم مدار دامنه خروجی رو تنظیم می کنه
دیتا از طریق PD0 وارد مدار دیگر میشه این دیتا مشخص می کنه موج و فرکانس رو البته برنامه می تواند متفاوت باشد
میکرو دوم دیتا رو دریافت می کنه و موج رو به روش دی دی اس تولید می کنه
روش dds
در این روش هر عدد دیجیتالی به یک مقدار آنالوگ تبدیل می شود و با یک مبدل آنالوگ به دیجیتال که در این مدار تعدادی مقاومت این وظیفه را به عهده دارند این عمل صورت می گیرد و عدد های دیجیتالی تولید شده که 8 بیت هستند و می توانند یک موج با 255 پله تولید کنند به صورت پیوسته یک موج آنالوگ رو تولید می کنند
البته برنامه ای که من براتون گذاشتم خیلی پیشرفته تره و خودش می تونه دامنه - دیوتی سایکل - فرکانس رو به صورت دیجیتالی کنترل کنه و در آخر موج دلخواه رو در خروجی تحویل بده
اما آنالیز برنامه
ابتدا کد های رو که همون مقادیر دیجیتالی هستند رو به دست آورده برای چهار شکل موج سینوسی مثلثی دندانه اره ای و مربع و سپس اون ها رو به صورت جدولی ذخیره کرده
سپس با خوندن مقادیر ورودی مقدار تاخیر مورد نیاز رو حساب کرده و عدد ها رو به ترتیب به خروجی ارسال کرده
اما برنامه ای که من نوشتم با استفاده از معادله ی دقیق و کامل هر موج تمام پارامترهای موج رو به دست میاره و سپس خود میکرو عدد ها رو محاسبه می کنه و در خروجی تحویل میده که با این عمل تمام مقادیر رو میشه کنترل کرد حتی دامنه رو در مداری که من ساختم با کمک خود ای وی ار دامنه رو کنترل کردم که در هیچ جای دیگری این روش استفاده نشده و شما می تونید دومین نفری باشید که از این روش استفاده می کنه :wow:
sigpic
دیدگاه
-
پاسخ : کمک برای ساخت فانکشن با میکرو
این هم عکس و شماتیک مدار
مدار من برای 500 هرتز ساخته شده و چون پروژه یکی از دوستانم بوده اول برنامه اسم اون فرد رو روی ال سی دی نمایش میده
شما می تونی با اصلاح برنامه فرکانس رو بالاتر ببری
من برای تاخیر ها از تاخیر 1 میکرو ثانیه ای استفاده کردم
شما به جای این تاخیر از دستور NOP ااستفاده کن تا سرعتت 16 برابر بشه و بتونی تا 5 کیلو هرتز هم خروجی دریافت کنی
فعلا فصل امتحاناته مگر نه خودم برنامه رو برات اصلاح می کردم
sigpic
دیدگاه
دیدگاه