فهرست مطالب:

RaspberryPi: یک LED را در داخل و خارج کنید: 4 مرحله (همراه با تصاویر)
RaspberryPi: یک LED را در داخل و خارج کنید: 4 مرحله (همراه با تصاویر)

تصویری: RaspberryPi: یک LED را در داخل و خارج کنید: 4 مرحله (همراه با تصاویر)

تصویری: RaspberryPi: یک LED را در داخل و خارج کنید: 4 مرحله (همراه با تصاویر)
تصویری: آموزش راه اندازی و کار با رزبری پای 4 | بررسی Raspberry Pi OS 2024, جولای
Anonim
RaspberryPi: یک LED را داخل و خارج کنید
RaspberryPi: یک LED را داخل و خارج کنید

مراحل زیر آزمایش هایی برای نشان دادن نحوه عملکرد LED ها هستند. آنها نشان می دهند که چگونه یک LED را با سرعت یکنواخت کم کنید و چگونه آن را در داخل و خارج محو کنید.

شما نیاز خواهید داشت:

  • RaspberryPi (من از Pi قدیمی استفاده کردم ، Pi-3 من در حال استفاده است ، اما هر Pi کار می کند.)
  • تخته نان
  • LED قرمز 5 میلی متری
  • 330 Ω مقاومت (مهم نیست 220-560 Ω کار خواهد کرد.)
  • سیم اتصال

پی کوبلری که من از Adafruit استفاده کردم ضروری نیست ، اما تخته نان را راحت تر می کند.

WiringPi مجموعه ای از کتابخانه ها برای برنامه نویسی RaspberryPi در C است. دستورالعمل های بارگیری ، نصب و استفاده در https://www.wiringpi.com/ قرار دارد.

برای نصب سیم کشی Pi دستورالعمل های این صفحه را دنبال کنید:

برای دریافت لیستی از شماره های سیم کشی Pi ، gpio readall را در خط فرمان وارد کنید.

در نسخه های جدیدتر Raspian wiringPi به طور پیش فرض نصب شده است.

مرحله 1: تعدیل عرض پالس

مدولاسیون عرض پالس
مدولاسیون عرض پالس
مدولاسیون عرض پالس
مدولاسیون عرض پالس
مدولاسیون عرض پالس
مدولاسیون عرض پالس

LED ها بدون در نظر گرفتن روشنایی همیشه در یک ولتاژ یکسان کار می کنند. روشنایی توسط نوسانگر موج مربعی تعیین می شود و مقدار زمانی که ولتاژ زیاد است روشنایی را تعیین می کند. این پالس پهنای مدولاسیون (PWM) نامیده می شود. این توسط تابع wiringPi pwmWrite (pin ، n) کنترل می شود که در آن مقدار n از 0 تا 255 است. اگر n = 2 باشد ، LED دو برابر n = 1 روشن می شود. وقتی n دو برابر شود روشنایی همیشه دو برابر می شود. بنابراین n = 255 دو برابر روشن تر از n = 128 خواهد بود.

مقدار n اغلب به صورت درصدی به نام چرخه وظیفه بیان می شود. تصاویر نشان دهنده آثار اسیلوسکوپ برای 25 ، 50 و 75 duty چرخه وظیفه است.

مرحله 2: LED و مقاومت

LED و مقاومت
LED و مقاومت

این ضروری نیست ، اما داشتن تعدادی از این وسایل دستی می تواند تخته نان را بسیار راحت تر کند.

یک مقاومت را به رهبری کوتاه یک LED لحیم کنید. از مقاومت 220-560 اهم استفاده کنید.

مرحله 3: غیر یکنواخت کردن نور

Un-even Dimming
Un-even Dimming

مدار را مانند نمودار بسازید. این درست مانند مدار برای چشمک زدن LED است. از سیم سیم پی 1 1 استفاده می کند زیرا باید از پین فعال شده PWM استفاده کنید. برنامه را کامپایل کرده و اجرا کنید. متوجه خواهید شد که هرچه LED روشن تر باشد ، کندتر می شود. با نزدیک شدن به کمترین میزان ، سریعتر تیره تر می شود.

/******************************************************************

* کامپایل: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade1.c -lwiringPi * * اجرا: sudo./fade1 * * همه شماره پین ها سیم کشی Pi هستند مگر اینکه به طور دیگری مشخص شده باشد به ************************************************** ****************/ #include int main () {wiringPiSetup ()؛ // راه اندازی مورد نیاز توسط wiringPi pinMode (1 ، PWM_OUTPUT) ؛ // pwmSetMode (PWM_MODE_MS) ؛ // علامت/حالت فضایی int i؛ در حالی که (1) {برای (i = 255؛ i> -1؛ i--) {pwmWrite (1، i)؛ تأخیر (10) ؛ } برای (i = 0؛ i <256؛ i ++) {pwmWrite (1، i)؛ تأخیر (10) ؛ }}}

مرحله بعدی نشان می دهد که چگونه LED را با سرعت ثابت و در یکی برای دستور کم کنید.

مرحله 4: مرحله 4: بالا و پایین در One For () ، و در نرخ زوج

برای اینکه LED با سرعت ثابت کم شود ، تأخیر () باید با نرخ نمایی افزایش یابد زیرا نیمی از چرخه کار همیشه نیمی از روشنایی را ایجاد می کند.

خط:

int d = (16-i/16)^2 ؛

مربع معکوس روشنایی را برای تعیین طول تاخیر محاسبه می کند. این برنامه را کامپایل و اجرا کنید و خواهید دید که LED با سرعت ثابت در داخل و خارج می شود.

/******************************************************************

* کامپایل: gcc -o fade1 -Wall -I/usr/local/include -L/usr/local/lib * fade2.c -lwiringPi * * اجرا: sudo./fade2 * * همه شماره پین ها سیم کشی شماره Pi هستند مگر اینکه موارد دیگری مشخص شده باشد به ************************************************** ****************/ #include int main () {wiringPiSetup ()؛ // راه اندازی مورد نیاز توسط wiringPi pinMode (1 ، PWM_OUTPUT) ؛ // pwmSetMode (PWM_MODE_MS) ؛ // علامت گذاری/حالت فاصله در حالی که (1) {int i؛ int x = 1 ؛ برای (i = 0؛ i> -1؛ i = i + x) {int d = (16 -i/16)^2؛ // محاسبه مربع معکوس شاخص pwmWrite (1، i)؛ تاخیر (د) ؛ اگر (i == 255) x = -1 ؛ // تغییر جهت در اوج}}}

توصیه شده: