
به نام خدا
پروژه ی ساخت ژنراتور PWM با استفاده از آردوینو
در این پروژه قصد دارم تا با استفاده از آردوینو یک زنراتور سیگنال PWM بسازیم که می توان آن را با استفاده از یک پتانسیومتر تنظیم کرد.
PWM چیست:
PWM مخفف مدولاسیون پهنای پالس می باشد و به این معنا ست که چه مدت یک پالس HIGH و یا LOW باشد. به این طریق پهنای پالس دیوتی سایکل تغییر می کند. ر اینجا فرکانس نقش بسیار مهمی ایفا می کند که باید به اندازه ی کافی زیاد باشد تا خروجی پایدار ایجاد کند. از PWM در جاهای مختلفی استفاده می شود به عنوان مثال در کار هایی که باید در ولتاژ های پایین صورت گیرد و یا برای اهداف سوئیچ زنی بسیار کاربرد دارد.
با استفاده از آردوینو یونو می توان یک ژنراتور PWM ساده ایجاد کرد که کاربرد های متفاوتی خواهد داشت. برای آردوینو پین های متفاوتی وجو دارد که این به این معناست که از آن ها می توان خروجی PWM دریافت کرد.
اکنون دو راه وجود دارد که می توان با آن خروجی PWM دریافت کرد:
- با اختصاص دادن یک مقدار آنالوگ بین ۰ تا ۲۵۵ . از آن جایی که ولتاژ پین آردوینو از ۰ تا ۵ ولت است بنابراین باید آن را به مقدار از ۰ تا ۲۵۵ ولت تبدیل کرد.
- با اختصاص دادن مقداری با توجه به ورودی دریافتی از پین های انالوگ آردوینو. این ورودی می تواند با استفاده از قطعاتی مانند سنسور مادون قرمز و یا یک پتانسیومتر دریافت کرد.
توجه شود که ورودی آردوینو یک داده ی آنالوگ بین ۰ تا ۱۰۲۳ دریافت می کند که مقداری بین ۰ تا ۵ ولت است. برای اعمال pwm بر روی یک پین شما باید این مقدار ورودی را به مقداری بین ۰ تا ۲۵۵ تبدیل کنید .
یک مثال ساده pwm و شماتیک آن:
با استفاده از این مدار شما تکنیک ایجاد pwm با استفاده از آردوینو را یاد خواهید گرفت. برای اینکار شما به قطعات زیر نیاز خواهید داشت:
- یک عدد پتانسیومتر
- دو عدد مقاومت ۱۰۰ اهم
- دو عدد ال ای دی
شماتیک مدار و اتصالات آن ساخت ژنراتور PWM با استفاده از آردوینو :
کد برنامه ی :
دانلود فایلint x;// initialise variables int y; void setup() { pinMode(10,OUTPUT);//initialise pin 10 as output pinMode(9,OUTPUT);//initialise pin 9 as output pinMode(A0,INPUT);//initialise pin A0 as input from pot. // put your setup code here, to run once: } void loop() { analogWrite(9,125);// directly assigning value to pin 9 i.e. case1 x=analogRead(A0);// read values from potentiometer in terms of voltage y= map(x,0,1023,0,255);// map those values from 0 to 255 // put your main code here, to run repeatedly: analogWrite(10,y);// assigning value based on input from pot at pin A0 i.e. case 2 }
دیدگاهها (0)