Home / آردوینو ( Arduino ) / آموزش پروژه محور آردوینو – جلسه چهارم

آموزش پروژه محور آردوینو – جلسه چهارم

به نام خدا

آموزش پروژه محور آردوینو – جلسه چهارم

امروز میخواهیم ۸ ال ای دی را توسط آردوینو و البته بدون نیاز به ۸ پین در آردوینو ، کنترل کنیم .

breadboard

با این که این ۸ ال ای دی را میتوانیم مستقیما به آردوینو وصل کنیم و کنترلشان کنیم اما این کار را نمیکنیم . زیرا پایه های زیادی از ال ای دی هایمان اشغال میشود و ما میخواهیم در این جلسه روشی را به شما ارائه بدهیم که از تعداد پایه های کمتری استفاده کنید تا اگر در پروژه های گسترده تر و پیچیده تری بخواهید از آردوینو استفاده کنید بتوانید روش هایی را مثل روش این جلسه به کار بگیرید تا پایه های آردوینو برای پروژه شما کم نیاید .

برای این کار از آی سی مبدل سریال به موازی ۷۴HC595 استفاده میکنیم . این آی سی دارای ۸ خروجی و ۳ ورودی میباشد .

قطعات مورد نیاز :

هشت عدد ال ای دی ۵ میلی متر

 

red_led_5mm

 

مقاومت ۲۷۰ اهم ( قرمز – بنفش – قهوه ای )

R-270

 

آی شیفت رجیستر ۷۴HC595

74HC595

 

بردبورد

breadboard_half

 

برد آردوینو UNO

uno_r3

 

تعدادی سیم

jumpers_web

 

توضیحات مدار :

مطابق شکل زیر هشت عدد ال ای دی با هشت عدد مقاومت ۲۷۰ اهم به آی سی نام برده وصل شده اند .

circuit

 

پین شماره یک این آی سی پین بالا سمت چپ میباشد .(مطابق شکل بالا )

پین دیجیتال شماره ۴ آردوینو به پین شماره ۱۴ آی سی شیفت رجیستر وصل میشود .

پین دیجیتال شماره ۵ آردوینو به پین شماره ۱۲ آی سی شیفت رجیستر وصل میشود .

پین دیجیتال شماره ۶ آردوینو به پین شماره ۱۱ آی سی شیفت رجیستر وصل میشود .

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

قبل از این که سراغ کد های آردوینو برویم بریم سراغ عملکرد آی سی شیفت رجیستر ۷۴HC595 .

بیشتر بخوانید...  پروژه ی ساخت ربات آتش نشان با استفاده از سرو موتور و آردوینو همراه با کد

 

shift_register

 

میشود گفت این شیفت رجیستر یک مکان حافظه ۸ بیتی دارد که هر کدام ازین بیت ها میتوانند ۱ یا ۰ باشند . برای مشخص کردن ارزش هر یک از این ها باید از دو پین Clock و Data در این آی سی استفاده کرد .

پین کلاک به پالس های هشتایی احتیاج دارد . اگر مقدار پالس High باشد مقدار ۱ شیفت رجیستر را هل میدهد! و در غیر این صورت عدد ۰ . پس از این که پالس های هشتایی دریافت شدند پین Latch فعال میشود و مقدار ۸ بیت شیفت رجیستر در رجیستر Latch کپی میشود . اگر این کار صورت نگیرد ال ای دی ها به ترتیب روشن و خاموش نمیشوند .

این آی سی یک پین OE دارد که برای فعال سازی یا غیر فعال سازی پین های خروجی استفاده میشوند . میتونیم این پایه رو به موج PWM وصل کنیم و توسط تابع analogWrite در آردوینو میزان شدت روشنایی ال ای دی ها را نیز کنترل کنیم . این پین موقعی خروجی ها را فعال میکند که صفر باشد یعنی به عنوان مثال برای فعال سازی خروجی ها میتوانیم این پین را به زمین مدارمان وصل کنیم .

کد های آردوینو :

آردوینو توابع مخصوصی که shiftOut نامیده میشوند دارد که این توابع مشخصا برای ارسال داده به شیفت رجیستر ها استفاده میشوند .

برای دانلود کد های برنامه بر روی لینک زیر کلیک کنید .

دانلود فایل

 

در ابتدای این کد ما سه پین را تعریف کرده ایم که این پین ها ، خروجی های دیجیتال آردوینو هستند که به پین های Latch ، Clock و Data آی سی ۷۴HC595 وصل میشوند .

بعد از آن ، یک متغیر به نام leds تعریف کرده ایم . این متغیر ، الگوی روشن و خاموش شدن ال ای دی ها را نگه میدارد . این متغیر از نوع بایت است که نشان دهنده مقدار بیت های هشتایی است . هر یک از این بیت ها میتواند یک شود یا صفر پس میتوانیم با آن ال ای دی های خود را روشن و خاموش کنیم .

بیشتر بخوانید...  ساخت ربات مسیریاب با آردوینو

تابع setup فقط نام پین هایی که ما به عنوان خروجی استفاده کرده ایم را مشخص میکند .

این تابع loop ابتدا همه ال ای دی ها را روشن میکند . این کار با دادن مقدار صفر به متغیر leds انجام میشود . سپس updateShiftRegister فراخوانی میشود تا الگوی متغیر leds را به شیفت رجیستر بدهد بنابراین همه ال ای دی ها خاموش میشود . این حلقه برای نیم ثانیه میایستد و سپس از ۰ تا ۷ برای حلقه for میشمارد این شمارش با متغیر i انجام میشود . در هر بار اجرای حلقه for (که با هر بار اجرا یک واحد به i اضافه میشود ) تابع bitSet اجرا میشود .

تابع updateShiftRegister در ابتدا پین latchPin را low (صفر ) میکند . سپس قبل از این که پین latchpin یک ( high ) شود تابع shiftOut فراخوانی میشود . این تابع از چهار پارامتر استفاده میکند که دو تای اول آن مربوط به پین های Data و Clock است . پارامتر سوم مربوط به موقعیت شروع ال ای دی ها است که ما همان طور که در خطوط زیر میبینید از بیت های LSB شروع کرده ایم . پارامتر چهارم هم همانطور که گفته شد متغیری از نوع بایت برای مقدار دهی به شیفت رجیستر است .

 

About Admin

همچنین بخوانید...

پروژه ی ساخت هشدار نشت گاز ال پی جی با استفاده از پیام کوتاه و آردوینو

به نام خدا پروژه ی ساخت هشدار نشت گاز ال پی جی با استفاده از …

ایجاد صدای آژیر با استفاده از آردوینو

به نام خدا ایجاد صدای آژیر با استفاده از آردوینو   مدار تولید کننده صدای …

2 دیدگاه ها

  1. سلام دمت گرم خیلی ممنون از مطالبتون

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

سلام ،خوش آمدید
آیا می خواهید آموزش ها و پروژه های جدید برای شما ارسال شود؟
مشخصات خود را وارد نمایید
متشکرم
منتظر فایل های ما باشید