با سلام
معرفی ربات ورژن 2 - Robot V 2
ربات ورژن 2،نوع تکامل یافته تر v1 می باشد.هدف از ساخت این ربات اقدامی برای هوشمند سازی هرچه بیشتر این ربات در آیند می باشد..
کدهای نوشته شده برای ربات،از نوع ساده و کمی ساده می باشند،برای همین تعداد خطوط کد نویسی به بیش از 1000 خط میرسد ... (که انشالله سعی میشود در V3 این مشکل برطرف شود)
در این ورژن قابلیت های چون ولتاژ سنج و آمپر سنج (آمپر مصرفی) + تعویض شدن افکت سنجش سرعت ربات اضافه شده است.
بدلیل اینکه تاپیک سنگین شده، به مرور ربات معرفی میشود...
ولتاژ سنج مدار
تصویری از شماتیک ولتاژ سنج مدار و وصل شدن ان به پایه ADC*
مدار بالا،در واقع به کمک قابلیت تقسیم مقاومتی،ولتاژ را افت میدهیم سپس آن را به واحد ADC* میکرو میدهیم. ! (ADC میکرو چیست ؟ واحدیست که ورودی آنالوگ را می خواند و سپس آن را به دیجیتال تبدیل می کند.این واحد می تواند تا ولتاژ 5 را اندازگیری کند و بیشتر از را نمی تواند اندازه بگیرد!) استفاده کردن از تقسیم مقاومتی،این است که،میکرو نمی تواند بیش از 5 ولت را اندازه بگیرد،ولی ما می خواهیم تا 13 ولت (حداکثر باتری مورد استفاده ما)را اندازه بگیرم. ما به کمک تقسیم مقاومتی ولتاژ ما بین 13 ولت تا 1 ولت را به 5 تا 1 ولت افت میدهیم. سپس به کمک ضرب و تقسیم*، ولتاژ واقعی را بدست میااوریم سپس به روی LED ها نمایش میدهیم. (نکته دیگر در رابطه با واحد ADC میکرو.ADC دارایه دقت 10 بیتی است.یعنی 1024 واحد درون خودش دارد.حال ADC نیاز به یک ولتاژ برای مقایسه کردن نیز دارد.که این ولتاژ یا باید از طریق درون میکرو باشد ، یا که به کمک پایه AVCC میکرو باشد.که ما از پایه AVCC استفاده میکنم،و پایه avcc را 5 ولت میدهیم.حال ADC می آید 5 را تقسیم بر 1024 واحد خودش میکند، که تقریبا میشود 5 میلی ولت.5 میلی ولت در واقع دقت ADC ما میشود،یعنی ADC ما به افزایش 5 میلی ولتی،1 واحد به ADC خود اضافه میکند.به عنوان مثال اگر ADC یک ولتاژ 2.5 ولتی را خواند یعنی چه تعداد واحد درون فعال شده؟! 2.5 * 1024 تقسیم بر 5 می کنیم(فرمول صحیح برای بدست اوردن جواب) یا که به عنوان مثال ADC یک ولتاژ را 866 واحد خواند،یعنی چه ولتاژ به ولت بوده؟ 866*5 تقسیم بر 1024 جواب 4.22 ولت) ما می آیم به کمک فرمول تقسیم ولتاژ، 13 ولت را به 5 ولت تبدیل میکنیم ... فرمول تقسیم ولتاژ
مدار خودمان R1 یک مولتی ترن 100 کیلو اهمیست که روی 43 درصد تنظیم شده. که میشود 43 کیلو اهم . و R2 یک مقاومت 27 کیلو اهمیست . ولتاژ اصلی مان هم 13 ولت است ما ابتدا 13 ولت را ضربدر مقاومت دوم 27 کیلو اهم می کنیم(جواب 351,000)، و بعد مقاومت اول و دوم رو بصورت جداگانه با هم جمع می کنیم(جواب 70,000). و در انتها 351,000 را تقسیم بر 70,000 می کنیم . که جواب حدود 5.01 میشود (یا همان 5 ولت ) شاید سوال بپرسید،خوب بعد از اینکه 13 تا 1 ولت را به 5 تا 1 ولت تبدیل کردیم،چطور میشود آن را با برنامه نویسی ، از دوباره به ولتاژ 13 تا 1 ولت مد نظرمان برسیم .. این کار خیلی ساده 13 ولت را تقسیم بر 5 ولت میکنیم(تا اختلافشان مشخص شود) ،جواب میشود 2.6 خیلی ساده،عدد بدست امده از ADC را ضربدر 2.6 می کنیم . ..جواب بدست امد،ولتاژ واقعی گرفته شده از باتری یا منبع تغذیه زیر 13 ولت ما می باشد ... به عنوان مثال یک منبع تغذیه 9.2 ولتی داریم . مراحل با فرمول به چه صورت می باشد ....؟! ابتدا توسط تقسیم مقاومتی ولتاژ 9.2 ولت به 3.538 کاهش پیدا میکند(9.2 تقسیم بر 2.6 ).(که در واحد ADC اینطور محاسبه میشود 3.538 ضربدر 1024 و در انتها تقسیم بر 5 میشود 724 واحد ADC) و در برنامه نویسی 3.538* 2.6 میشود،که حدود همان 9.2 ولت میشود. ==== اما کدهای گفته شده در برنامه نویسی ابتدا به کمک کدهای زیر واحد های ADC میکرو رو فعال می کنیم. Please Login or Register to see this code
سپس به کمک کدهای زیر ولت را خوانده و اماده نمایش می کنیم ..
Please Login or Register to see this code
انشالله در پایان کدها و سورس ها را بطور کامل قرار میدهیم ...
ادامه دارد....
باتشکر.

دیگر همه چیز آسان واحد های خوانده شد توسط ADC را تبدیل به ولتاژ می کنیم، سپس ان را تقسیم بر مقاومت می کنیم. عنوان مثال ADC حدود 100 واحد خوانده(یعنی ولتاژی حدود 0.488 ) چه امپری از مدار می گذرد؟!(مقاومت ما 0.33 اهمی می باشد) ADC را تبدیل به ولتاژ می کنیم 100 ضربدر 5 و تقسیم بر 1024 میشود 0.488 ولت . حال ولتاژ را تقسیم بر مقاومت می کنیم 0.488 تقسیم بر 0.33 اهم میشود. که جواب میشود 1.479 امپر. به کمک فرمول که گفته شد متوانید امپر گذری مدار را بدست بیاورید..
عنوان مثال،در تصویر بالا،هر چقدر درجه چرخش به سمت بالا حرکت کند،مقاومتش کمتر شده ولتاژ مثبت بیشتری هدایت میشود و هر چقدر به سمت پایین حرکت کند مقاومت بیشتر شده و ولتاژ افت پیدا می کند . به کمک روش بالا ، یک پایه را به زمین و پایه دیگر را به VCC یا مثبت 5+ وصل می کنیم،بدین شکل عمل کم کردن LED ها بهتر و سریع تر انجام میشود ..
.
2 ربات رو تقریبا حدود 6 تا 7 ماه پیش نوشتم .. که البته برای اون زمان خوب بوده،ولی میشید خیلی خلاصه تر بنویسیم ..(ان زمان در برنامه نویسی ضعیف تر بودم) می کنم اصلاحشون کنم،ولی اگر نتونستم،در ورژن بعدی حتما اصلاح شده تر قرارشون میدم . پست ها قبلی در رابطه بیشتر مسال ورژن جدید توضیحات ارائه کردم. در این پست دیگه کد و شبیه ساز و یک ویدئو از ربات رو براتون میزارم .