فهرست مطالب:

ژنراتور شکل موج آردوینو: 5 مرحله (همراه با تصاویر)
ژنراتور شکل موج آردوینو: 5 مرحله (همراه با تصاویر)

تصویری: ژنراتور شکل موج آردوینو: 5 مرحله (همراه با تصاویر)

تصویری: ژنراتور شکل موج آردوینو: 5 مرحله (همراه با تصاویر)
تصویری: آینده ایران از نگاه #هوش_مصنوعی #shorts 2024, جولای
Anonim
ژنراتور شکل موج آردوینو
ژنراتور شکل موج آردوینو

به روز رسانی فوریه 2021: نسخه جدید را با نرخ نمونه برداری 300 برابر ، بر اساس رزبری پای پیکو بررسی کنید

در آزمایشگاه ، اغلب نیاز به یک سیگنال تکراری با فرکانس ، شکل و دامنه مشخص است. ممکن است آزمایش تقویت کننده ، بررسی مدار ، قطعه یا محرک باشد. ژنراتورهای شکل موج قدرتمند به صورت تجاری در دسترس هستند ، اما به راحتی می توان با Arduino Uno یا Arduino Nano یک نمونه مفید را تهیه کرد ، به عنوان مثال:

www.instructables.com/id/Arduino-Waveform-…

www.instructables.com/id/10-Resister-Ardui…

در اینجا شرح یکی دیگر با ویژگی های زیر است:

* شکل موج دقیق: خروجی 8 بیتی با استفاده از R2R DAC ، شکل 256 نمونه

* سریع: نرخ نمونه برداری 381 کیلوهرتز

* دقیق: محدوده فرکانس مراحل 1 مگاهرتز. دقیق به اندازه کریستال آردوینو.

* عملکرد آسان: شکل موج و فرکانس قابل تنظیم با رمزگذار دوار تک

* دامنه وسیعی از دامنه: میلی ولت تا 20 ولت

* 20 شکل موج از پیش تعریف شده مستقیم برای افزودن موارد بیشتر.

* ساخت آسان: Arduino Uno یا Nano به همراه اجزای استاندارد

مرحله 1: ملاحظات فنی

ایجاد سیگنال آنالوگ

یکی از نقاط ضعف Arduino Uno و Nano این است که فاقد مبدل دیجیتال به آنالوگ (DAC) است ، بنابراین نمی توان ولتاژ آنالوگ را مستقیماً روی پین ها خروجی داد. یک راه حل نردبان R2R است: 8 پین دیجیتالی به یک شبکه مقاومت متصل شده اند تا 256 سطح خروجی به دست آید. از طریق دسترسی مستقیم به پورت ، آردوینو می تواند 8 پین را همزمان با یک فرمان تنظیم کند. برای شبکه مقاومت ، 9 مقاومت با مقدار R و 8 مقاومت با مقدار 2R مورد نیاز است. من از 10 کیلو اهم به عنوان مقدار R استفاده کردم که جریان را از پین ها به 0.5mA یا کمتر نگه می دارد. من حدس می زنم R = 1kOhm نیز می تواند کار کند ، زیرا آردوینو می تواند به راحتی 5 میلی آمپر در هر پین ، 40 میلی آمپر در هر پورت ارائه دهد. مهم است که نسبت R و مقاومت 2R واقعاً 2 باشد. این امر با قرار دادن 2 مقاومت با ارزش R به صورت سری ، در مجموع 25 مقاومت ، به آسانی حاصل می شود.

فاز جمع کننده

سپس شکل موج ایجاد می شود و به دنبال تکرار دنباله ای از اعداد 8 بیتی به پین های آردوینو می آید. شکل موج در یک آرایه 256 بایت ذخیره می شود و این آرایه نمونه برداری شده و به پین ها ارسال می شود. فرکانس سیگنال خروجی با سرعت پیشروی فرد در آرایه تعیین می شود. یک روش قوی ، دقیق و زیبا برای انجام این کار با استفاده از یک فاز جمع کننده است: یک عدد 32 بیتی در فواصل منظم افزایش می یابد و ما از 8 بیت مهمتر به عنوان شاخص آرایه استفاده می کنیم.

نمونه گیری سریع

وقفه ها اجازه نمونه گیری در زمان های مشخص را می دهند ، اما سربار وقفه ها فرکانس نمونه برداری را به 100 کیلوهرتز محدود می کند. یک حلقه نامتناهی برای به روز رسانی فاز ، نمونه برداری از شکل موج و تنظیم پین ها 42 چرخه ساعت را می گیرد ، بنابراین به سرعت نمونه برداری 16 مگاهرتز/42 = 381 کیلوهرتز می رسد. چرخاندن یا فشار دادن رمزگذار چرخشی باعث تغییر پین و وقفه ای می شود که از حلقه خارج می شود تا تنظیمات (شکل موج یا فرکانس) را تغییر دهد. در این مرحله 256 عدد در آرایه دوباره محاسبه می شوند تا محاسبه واقعی شکل موج در حلقه اصلی انجام نشود. حداکثر فرکانس مطلق قابل تولید 190 کیلوهرتز (نیمی از میزان نمونه برداری) است ، اما پس از آن فقط دو نمونه در هر دوره وجود دارد ، بنابراین کنترل زیادی بر شکل نیست. بنابراین رابط اجازه نمی دهد فرکانس را بالای 100 کیلوهرتز تنظیم کنید. در 50 کیلوهرتز ، 7-8 نمونه در هر دوره وجود دارد و در 1.5 کیلوهرتز و زیر همه 256 شماره ذخیره شده در آرایه در هر دوره نمونه برداری می شود. برای شکل های موج که در آن سیگنال به آرامی تغییر می کند ، به عنوان مثال موج سینوسی ، حذف نمونه ها هیچ مشکلی ندارد. اما برای شکل های موج با خوشه های باریک ، به عنوان مثال یک موج مربعی با یک چرخه وظیفه کوچک ، این خطر وجود دارد که برای فرکانس های بالای 1.5 کیلوهرتز از دست دادن یک نمونه واحد منجر به عدم شکل موج مطابق انتظار شود

دقت فرکانس

تعداد افزایش فاز در هر نمونه متناسب با فرکانس است. بنابراین می توان فرکانس را با دقت 381 کیلوهرتز/2^32 = 0.089 مگاهرتز تنظیم کرد. در عمل چنین دقتی به سختی مورد نیاز است ، بنابراین رابط محدودیت فرکانس را در مراحل 1 مگاهرتز محدود می کند. دقت مطلق فرکانس با دقت فرکانس ساعت آردوینو تعیین می شود. این بستگی به نوع آردوینو دارد اما بیشتر فرکانس 16.000 مگاهرتز را مشخص می کند ، بنابراین دقت^10^-4. کد اجازه می دهد تا نسبت فرکانس و افزایش فاز را تغییر دهید تا انحرافات کوچک فرض 16 مگاهرتز اصلاح شود.

بافر و تقویت

شبکه مقاومت دارای امپدانس خروجی بالایی است ، بنابراین در صورت اتصال بار ، ولتاژ خروجی آن به سرعت کاهش می یابد. که با بافر کردن یا تقویت خروجی حل می شود. در اینجا ، بافر و تقویت با opamp انجام می شود. من از LM358 استفاده کردم چون مقداری داشتم. این یک آپامپ آهسته است (نرخ حرکت 0.5 ولت در هر میکرو ثانیه) بنابراین در فرکانس بالا و دامنه زیاد سیگنال مخدوش می شود. نکته خوب این است که می تواند ولتاژهای بسیار نزدیک 0V را تحمل کند. با این حال ولتاژ خروجی محدود به V 2V زیر ریل است ، بنابراین استفاده از توان +5V ولتاژ خروجی را به 3V محدود می کند. ماژول های مرحله ای جمع و جور و ارزان هستند. با تغذیه +20V به opamp ، می تواند سیگنال هایی با ولتاژ تا 18V تولید کند. (NB ، شماتیک می گوید LTC3105 زیرا این تنها افزایشی بود که من در Fritzing پیدا کردم. در واقع من از یک ماژول MT3608 استفاده کردم ، تصاویر را در مراحل بعدی ببینید). من می خواهم یک تضعیف متغیر را در خروجی R2R DAC اعمال کنم ، سپس از یکی از opamps ها برای بافر کردن سیگنال بدون تقویت و از دیگری برای تقویت 5.7 استفاده می کنم ، به طوری که سیگنال می تواند حداکثر خروجی حدود 20V را برساند. جریان خروجی نسبتاً محدود است ، 10 میلی آمپر ، بنابراین اگر سیگنال بخواهد یک بلندگو یا الکترومغناطیس بزرگ را هدایت کند ، ممکن است به تقویت کننده قوی تری نیاز باشد.

مرحله 2: اجزای مورد نیاز

برای ژنراتور شکل موج هسته

آردوینو اونو یا نانو

نمایشگر LCD 16x2 + برش دهنده 20 کیلو اهم و مقاومت سری 100 اهم برای نور پس زمینه

رمزگذار چرخشی 5 پین (با دکمه فشاری یکپارچه)

25 مقاومت 10 کیلو اهم

برای بافر/تقویت کننده

LM358 یا سایر آپمپ های دوگانه

ماژول گام به گام بر اساس MT3608

مقاومت متغیر 50 کیلو اهم

مقاومت 10 کیلو اهم

مقاومت 47 کیلو اهم

خازن 1muF

مرحله 3: ساخت و ساز

ساخت و ساز
ساخت و ساز
ساخت و ساز
ساخت و ساز

همانطور که در تصویر نشان داده شده است ، همه چیز را روی یک تخته نمونه 7x9 سانتی متری لحیم کردم. از آنجا که این سیم با همه سیم ها کمی کثیف شده است ، سعی کردم سیم هایی را که ولتاژ مثبت را قرمز می کنند و آنهایی که زمین را سیاه می کنند رنگ کنم.

رمزگذار مورد استفاده من دارای 5 پین است ، 3 پین در یک طرف ، و 2 در طرف دیگر. طرف با 3 پین رمزگذار واقعی است ، طرف با 2 پین دکمه فشاری یکپارچه است. در طرف 3 پین ، پین مرکزی باید به زمین متصل شود ، دو پین دیگر به D10 و D11. در طرف 2 پین ، یک پین باید به زمین و دیگری به D12 متصل شود.

این زشت ترین چیزی است که من ساخته ام اما کار می کند. خوب است که در یک محوطه قرار دهید ، اما در حال حاضر کار و هزینه اضافی واقعاً آن را توجیه نمی کند. نانو و صفحه نمایش با پین هدر متصل شده اند. اگر یکی جدید بسازم ، دیگر این کار را نمی کنم. برای بردن سیگنال ها کانکتور روی برد قرار ندادم. در عوض ، آنها را با سیم های تمساح از قطعات بیرون زده سیم مسی برچسب گذاری می کنم:

R - سیگنال خام از R2R DAC

B - سیگنال بافر

A - سیگنال تقویت شده

سیگنال تایمر T از پین 9

G - زمین

+ - ولتاژ مثبت "بالا" از ماژول گام به گام

مرحله 4: کد

کد ، طرح آردوینو ، ضمیمه شده است و باید در آردوینو بارگذاری شود.

20 شکل موج از قبل تعریف شده است. افزودن هر موج دیگر باید ساده باشد. توجه داشته باشید که امواج تصادفی آرایه 256 را با مقادیر تصادفی پر می کند ، اما الگوی مشابه در هر دوره تکرار می شود. سیگنالهای تصادفی واقعی مانند نویز به نظر می رسند ، اما این شکل موج بسیار بیشتر شبیه یک سوت به نظر می رسد.

کد یک سیگنال 1 کیلوهرتزی را روی پین D9 با TIMER1 تنظیم می کند. این برای بررسی زمان سیگنال آنالوگ مفید است. به این ترتیب فهمیدم که تعداد چرخه های ساعت 42 است: اگر 41 یا 43 را فرض کنم و یک سیگنال 1 کیلوهرتزی تولید کنم ، فرکانس متفاوتی با سیگنال پین D9 دارد. با مقدار 42 آنها کاملاً مطابقت دارند.

به طور معمول ، آردوینو هر میلی ثانیه را قطع می کند تا زمان را با عملکرد () millis پیگیری کند. این امر باعث ایجاد اختلال در تولید سیگنال می شود ، بنابراین وقفه خاص غیرفعال می شود.

کامپایلر می گوید: "Sketch از 7254 بایت (23٪) فضای ذخیره سازی برنامه استفاده می کند. حداکثر 30720 بایت است. متغیرهای جهانی از 483 بایت (23٪) حافظه پویا استفاده می کنند و 1565 بایت برای متغیرهای محلی باقی می ماند. حداکثر 2048 بایت است." بنابراین فضای کافی برای کد پیچیده تر وجود دارد. مراقب باشید که ممکن است مجبور شوید "ATmega328P (bootloader قدیمی)" را برای بارگذاری موفقیت آمیز در نانو انتخاب کنید.

مرحله 5: استفاده

می توان مولد سیگنال را به سادگی از طریق کابل مینی USB آردوینو نانو تغذیه کرد. بهتر است این کار را با یک پاوربانک انجام دهید ، به طوری که هیچ حلقه زمینی تصادفی با دستگاهی که ممکن است به آن متصل شود وجود نداشته باشد.

هنگام روشن شدن موج سینوسی 100 هرتز ایجاد می کند. با چرخاندن دستگیره می توان یکی از 20 نوع موج دیگر را انتخاب کرد. با چرخاندن هنگام فشار دادن ، مکان نما را می توان روی هر یک از ارقام فرکانس تنظیم کرد ، که می تواند به مقدار دلخواه تغییر کند.

دامنه را می توان با پتانسیومتر تنظیم کرد و از سیگنال بافر یا تقویت شده می توان استفاده کرد.

استفاده از اسیلوسکوپ برای بررسی دامنه سیگنال ، به ویژه هنگامی که سیگنال جریان را به دستگاه دیگری می دهد ، واقعاً مفید است. اگر جریان زیادی کشیده شود ، سیگنال قطع می شود و سیگنال به شدت مخدوش می شود

برای فرکانس های بسیار پایین ، خروجی را می توان با یک سری LED با مقاومت 10 کیلو اهم تجسم کرد. فرکانس های صوتی را می توان با بلندگو شنید. مطمئن شوید که سیگنال را بسیار کوچک ~ 0.5V تنظیم کنید ، در غیر این صورت جریان خیلی زیاد می شود و سیگنال قطع می شود.

توصیه شده: