آموزش کامل بردبرد

breadborad چیست و چه کاربردی دارد؟

دوستان سلام.توی این جلسه قصد داریم به صورت کاملا دقیق بفهمیم برد برد چیه و اصلا چه کاربردی داره.

مقدمه:

اول شماتیک مدار زیر رو در نظر بگیرید:

schematic

شماتیک های نقشه های  بسیار جالبی هستند.یه مدار رو به طور کامل توی یه فضای دو بعدی در اختیار ما قرار میدن.حالا فرض کنید بخواید مدار بالا رو پیاده سازی کنید.ما مستفیم نمیتونیم بریم و این مدار رو روی فیبر مدار چاپی پیاده سازی(PCB) کنیم.حالا چرا نمیتونیم؟
اول این که از کجا معلوم این مداری که ما داریم به طور صحیح و سالم کار کنه  و اون عملی رو که میخوایم انجام بده؟ممکنه توش ایراداتی باشه که خود طراح مدار هم به اون موضوع پی نبرده باشه و فقط اون رو کشیده باشه یا موقع کشیدن طرح یه جایی اشتباه کرده باشه.

اینجاست که از یه وسیله ای استفاده میشه به اسم بردبرد که انگلیسیش میشه Breadboard .

بردبرد چیست؟

طبق مقدمه بالا بردبرد وسیله ای است که با استفاده از اون میتونیم مدارات خودمون رو روی اون تست کنیم و در صورت سالم بودن ، اون ها رو روی PCB  پیاده سازی کنیم.شکل یک برد برد روی توی عکس زیر میبینید:

breadboard

برد برد ها از یه سری سوراخ ها تشکیل شده اند که این سوراخ ها بعضی هاشون به صورت عمودی و بعضی هاشون به صورت افقی به هم وصل هستند.این که کدوم ها به صورت عمودی و کدوم ها به صورت افقی به هم وصل شده اند هم توی عکس زیر اومده:

breadboard connection

اون قسمت هایی که به صورت عمودی به هم وصل هستند چه کاربردی دارند؟

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

device on breadboard

چرا بین دو قسمت عمودی یه فاصله قرار داده شده؟

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

اگه بذاریم روی پایه هایی که به صورت عمودی به هم وصل هستند که پایه های آیسی به صورت متناظر به هم وصل میشن و ممکنه اتفاقای بدی برای مدار و آِسیمون بیفته

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

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

ic breadboard

 

ردیف های افقی به چه دردی میخورن؟

این ردیف ها برای تغذیه مدار به کار میرن.توی بردبرد ها بالا و پایین ردیف هایی که به صورت عمودی به هم وصل هستن ردیف های افقی قرار دارن که ولتاژ قطعاتی که روی ردیف های عمودی قرار گرفتن رو تامین میکنن.دو تا بالا ، دو تا همین پایه علت این که دو ردیف هم قرار گرفته اینه که از یه ردیف برای VCC و ردیف دیگه برای GND (زمین مدار) استفاده کنیم.

حالا چرا دو ردیف بالا و دو ردیف پایین؟نمیشد همون دو ردیف بالا باشه فقط؟

چرا میشد ولی این کار دو علت مهم داره:
اول اینکه اگه مدارتون چند تا ولتاژ متفاوت بخواد میتونید به هر کدوم از این ردیف ها ولتاژ مورد نظر خودتون رو بدید مثلا اگه مدارتون سه تا ولتاژ 5 و 9 و 12 ولت رو بخواد به هر کدوم از این ردیف ها یه ولتاژ میدید و به یه ردیف هم یه گراند میدید و به هیچ کار اضافی نیاز نیست.

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

نکته:بعضی وقتا توی بعضی بردبرد ها بین همون ردیف های افقی هم دو فاصله قرار دادند که اگه بخواید میتونید به هر کدوم از این میان ردیف ها یه ولتاژ خاصی بدید و اگه بخواید یه ردیف رو کامل به یه ولتاژ اختصاص بدید میتونید با یه دونه سیم کوچیک اون ردیف رو یکی کنید.این موضوع رو میتونید توی عکس زیر هم به وضوح ببینید.power breadboard

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

برای دریافت آخرین مطالب سایت  و همچنین مطالب منحصر به فرد دیگر که در سایت منتشر نمی شوند میتوانید در کانال تلگرام ما عضو شوید و یا در اینستاگرام ما را فالوو کنید:

 

شاید دوست داشته باشید مطالب زیر را نیز بخوانید:

مفهوم توان الکتریکی

توان الكتريكي (مفاهيم اصلي و كاربردهاي آن در برق)

ادامه مطلب

شاید دوست داشته باشید مطالب زیر را نیز بخوانید:

الکتریسیته چیست؟

الكتريسيته و آشنایی با مفاهیم مرتبط با آن – بخش اول

ادامه مطلب

شاید دوست داشته باشید مطالب زیر را نیز بخوانید:

راه اندازی Gy-80 با آردوینو -بخش دوم{اتصال ماژول و تست آن}

دوستان سلام.

توی بخش قبل ماژول GY-80  رو معرفی کردیم که میتونید از اینجا اون مطلب رو بخونید.توی این قسمت میخوایم نحوه اتصال این ماژول به برد arduino و همچنین کدنویسی اون صحبت کنیم.با ما همراه باشید. 


اتصال ماژول GY-80 به arduino:

اگه قسمت اول این نوشته رو خونده باشید گفتیم که میتونیم این ماژول رو با دو پروتکل I2C و SPI راه اندازی کنیم.ما در اینجا برای راه اندازی این ماژول از پروتکل I2C استفاده میکنیم.
این پروتکل دو تا سیم اصلی داره.یکی SDA که برای دیتا هست و اون یکی هم SCL که برای کلاک به کار میره. نمایی از این پروتکل رو در شکل زیر میبینید:

راه اندازی Gy-80 با آردوینو

 

پس با این حساب برای اتصال ماژول به برد آردوینو به 4 سیم نیاز هست.دو تا مربوط به تغذیه و دو تا سیم هم مربوط به پروتکل I2C که توی شکل زیر مشخص شده.

راه اندازی Gy-80 با آردوینو

پین VCC_IN (سیم قرمز رنگ) که باید وصل بشه به 5 ولت برد.پین GND(سیم مشکی) که باید وصل به GND برد .پین SCL (سیم زردرنگ)که باید وصل بشه به پایه A5 (برای برد UNO ) یا پایه 21 برای برد Mega  و پایه SDA (سیم نارنجی رنگ)که باید وصل بشه به A4 برای UNO یا 20 برای Mega

نکته 1 :
میتونید به جای استفاده ازپایه VCC_IN از پایه VCC_3.3V استفاده کنید که در این صورت باید اون رو حتما به ولتاژ 3.3 ولت روی برد وصل کنید.
نکته 2:
روی ماژول GY-80  هیچگونه led وجود نداره که به شما وضعیت برد رو نشون بده.مثلا یه Led سبز رنگ باشه که نشون بده ولتاژ ولتاژ وصل شده بهش.(بر خلاف ماژول های دیگر مثل GY-521  که یه Led روی خودش داره که وضعیت اتصال ولتاژ رو نشون میده)

چک کردن اتصالات و سالم بودن برد:

برای این که چک کنیم ببینیم ماژولمون سالم هست یا نه و این که به طور کامل به برد وصل شده از یک نمونه کد استفاده میکنیم که معروف هست به I2C Scanner.

 

I2C Scanner چیه و به چه دردی میخوره؟
این نمونه کد برای چک کردن و فهمیدن این که چه قطعات و سنسورهایی از طریق I2C به بردمون وصل هستن و روی سریال مانیتور هم بهمون نشون میده که یه قطعه با فلان آدرس به بردمون وصل هست(توی پروتکل I2C هر سنسور و قطعه یه آدرس داره که به وسیله اون آدرس با برد در ارتباطه و داده ها رو رد و بدل میکنه.)

این کد رو در زیر میبینید و میتونید از این لینک دانلود کنید:


کد I2C Scanner

توصیح خطوط برنامه:

 

در  خط اول که کتابخونه Wire.h به برنامه معرفی میشه که این کتابخونه برای پروتکل i2c به کار میره.

توی تابع Setup  هم پروتکل I2C شروع به کار میکنه و ارتباط سریال هم برقرار میشه و  بادریت اون روی 9600 تنظیم میشه سپس در پنجره سریال عبارتI2C Scanner نوشته میشه.

 در تابع Loop دو متغیر از نوع بایت به اسم های error, address تعریف میشه همچنین یک متغیر هم از نوع int تعریف میشود که در ادامه میفهمید این  متغیرها برای چی تعریف شدن.

 خط بعدی روی پورت سریال عبارت …Scannig نوشته میشه.که یه جورایی داره نشون میده برنامه در حال اسکن سنسورهایی هست که به میکرو از طریق I2C وصل هست.

در خط بعدی مقدار متغیر nDevices برابر 0 قرار داده میشه.(این متغیر مربوط به تعداد سنسور و ماژول هایی هست که به برد وصل شده و به طور پیش فرض برابر صفر قرار داده میشه)

در خط بعد یه حلقه for تعریف میشه که توی این حلقه مقدار address از 1 تا 126 تغییر میکنه و هر دفعه یکی بهش اضافه میشه.  با استفاده از این خط مقدار متغیر adress با استفاده از پروتکل I2C فرستاده میشه تا هر Device و سنسوری که روی خط هست و این آدرس رو داره دریافت کنه.

خط بعد مربوط به پایان ارتباط I2C هست و کسی که این آدرس رو داره یه بایت به میکروکنترلر میفرسته و میگه که من این این آدرس رو دارم.این بایت همون متغیر error هست که در ادامه خیلی باهاش سر و کار داریم.

سوال:این 1 تا 126 از کجا اومده؟ پروتکل I2C به طور همزمان میتونه از 128 آدرس مختلف پشتیبانی که که آدرس ها از 0 تا 127 هستند که میشه 128 تا آدرس ولی معمولا آدرس های اول و آخر این بازه یعنی 0 و 127 قرار داده نمیشه پس بازمون میشه 1 تا 126

در اینجا دو حالت پیش میاد:

اگر آدرسی که میکرو میفرسته روی خط موجود باشه در این صورت مقدار صفر توی متغیر error نوشته میشه  و میکرو میفهمه که این آدرس روی خط موجود هست و اگر اون آدرس روی خط موجود نباشه هم مقدار 4 در متغیر error نوشته میشه.

اگر آدرس روی خط موجود باشد(حلقه if ):
در این صورت برنامه وارد حلقه if اول میشود و طبق آن ابتدا روی پورت سریال عبارت I2C device found at address 0x نوشته میشود.پس از اون اگه این آدرس کوچکتر از 16 باشه ابتدا روی پورت سریال مقدار 0 نوشته میشه و بعد آدرس رو مینویسن و اگه نباشه هم مستقیم آدرس رو به صورت هگز روی پورت سریال مینویسن.

اگر آدرس روی خط موجود باشد(حلقه else if):

در این صورت برنامه وارد حلقه else if میشود و طبق آن ابتدا روی پورت سریال عبارت Unknow error at address 0x نوشته میشود.پس از اون اگه این آدرس کوچکتر از 16 باشه ابتدا روی پورت سریال مقدار 0 نوشته میشه و بعد آدرس رو مینویسن و اگه نباشه هم مستقیم آدرس رو به صورت هگز روی پورت سریال مینویسن.

 

ماجرای این عدد 16 چیه؟اصلا چرا این هست؟
جواب این سوال رو نمیدم و خودتون بشینید فکر کنید فقط یه نکته ریز داره که مربوط میشه به اعداد هگز

در پایان کد هم تعداد Device هایی که به برد وصل هستند رو نشون میده که این مقدار، عدد مربوط به  متغیر nDevices هست.(نیاز به توضیح بیشتری نداره.همه چیزش مشخصه)

آخرین خط برنامه هم مربوط به یه تاخیر 5 ثانیه ای هست که باعث میشه این عمل Scan هر 5 ثانیه یک بار انجام بشه.

خوب دوستان فک میکنم برای این جلسه هم کافی باشه.ایشالا جلسه سوم که جلسه پایانی باشه میریم سر کدهای اصلی سنسورها و تک تک اون ها رو راه میندازیم.

برای دریافت آخرین مطالب سایت  و همچنین مطالب منحصر به فرد دیگر که در سایت منتشر نمی شوند میتوانید در کانال تلگرام ما عضو شوید و یا در اینستاگرام ما را فالوو کنید:

 

 

 

 

 

 

 

شاید دوست داشته باشید مطالب زیر را نیز بخوانید:

آشنایی با ربات EDI – رباتی که احساسات را درک میکند.

ویدیو

مشخصات

نام: معرفی ربات RHex

 

دسته بندی: مطالب ویژه

 

مدت زمان: حدود شش دقیقه

 

زیرنویس: دارد

 

 لینک دانلود: دانلود

 

تذکر: توضیحات تکمیلی خوانده شود.

Read More

شاید دوست داشته باشید مطالب زیر را نیز بخوانید: