در اين بخش مي‌توانيد آموزش و مثال‌های مرتبط با میکروکنترلرهای AVR را مشاهده بفرمایید
Colonel II

Colonel II



نماد کاربر
پست ها

6616

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

آموزش ساخت ولتی متر و امپر متر ساده با ATMEGA8

توسط sinaset » شنبه 30 آبان 1394 15:28

بنام خدا
با سلام

آموزش ساخت ولتی متر و امپر متر ساده با ATMEGA8

در این تاپیک اموزش ساخت ولتی متری با قابلیت اندازه گیری 5V و آمپر متر با قابلیت اندازه گیری 1A ،با میکروکنترولر ATMEGA8 با شبیه ساز و کدویژن داده میشود..

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

باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

2 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6616

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش ساخت ولتی متر و امپر متر ساده با ATMEGA8

توسط sinaset » يکشنبه 1 آذر 1394 15:11

بنام خدا
با سلام


مقدمه
میکروکنترولر ATMEGA دارایه واحدی به نام ADC می باشد،( به فارسی میشود " تبدیل آنالوگ به دیجیتال" ). این واحد به زبان ساده، می تواند ولتاژ وروی را بخواند،سپس آن را به اطلاعات دیجیتالی یا صفر و یک تبدیل کند .
حال ما باید به کمک این واحد بسیار جالب،ولتاژ ورودی را بخوانیم سپس بروی نمایشگر خود نشان دهیم
واحد ADC میکروکنترولر AVR

واحد ADC میکروکنترولر می تواند نهایت تا 5 ولت را اندازگیر بگیرد و اگر بیشتر از 5 ولت بر روی پایه مذکوره قرار بگیرد،میکرو میسوزد!.
واحد ADC میکروکنترولر می تواند با دقت (یا رزولویشن) 10 بیت ، ولتاژ ورودی آنالوگی را بخواند. خوب تا همینجا بحث رو نگه میداریم تا دقت 10 بیت را توضیح دهیم.

درون واحد ADC قسمتی تشکیل شده از 1024 واحد یا قسمت (بصورت سخت افزاری و کانال کشی شده)، این 1024 واحد، در واقع همان قسمتی هستن که می توانیم به انها ولتاژ را اندازه بگیریم !.1024 واحد در واقع همان دقت 10 بیتی واحد ADC هستن!(به زبان ساده)

این واحد به ازای افزایش ولتاژ یکی از واحدهای خود را به ترتیب پر می کند(به صورت دقیق) . یعنی ما اگر یک ولتاژ مابین 5 تا 0 ولت داشته باشیم.این 1024 به ازای تغیرات 0.005 ولتی،یکی از واحد ها خود را افزایش میدهد.
به عنوان مثال اگر،ولتاژ 0.020 (20 میلی ولت) را دریافت کند،تعداد واحد هاش به 4 افزایش پیدا می کند(0.020 تقسیم بر 0.005). یا اگر 0.100(میلی ولت) دریافت کند،تعداد واحدهایش به عدد 20 افزایش پیدا می کند.( 0.100 تقسیم بر 0.005 میشود 20 )

به همین راحتی .

واحد ADC در خروجی چه چیزی تحویل ما میدهد

واحد ADC بعد از سنس کردن ولتاژ(*سنس یعنی لمس یا دریافت کردن) ان را به صورت ولتاژ به ما نشان نمیدهد! بلکه به همان صورت به ما نشان میدهد .. یعنی اگر ولتاژ دریافتی 2.5 را دریافت کند ، ان را با عد 512 نشان میدهد. (512 ، یعنی 2.5 ولت )

ما به کمک فرمول ساده زیر ،ان را تبدیل به ولتاژ می کنیم،سپس در نمایشگر نشان میدهیم .
"فرمول محاسبه. 512 را ابتدا ضربدر 5 می کنیم ، سپس تقسیم بر 1024  می کنیم،که جواب نهایی میشود 2.5 ولت . این فرمول باعث میشود که محاسبه ما با دقت بیشتری انجام شود"


در ادامه مدار ساده ولتاژ متر 0 تا 5 ولتی داده میشود..
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

3 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6616

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش ساخت ولتی متر و امپر متر ساده با ATMEGA8

توسط sinaset » سه شنبه 3 آذر 1394 10:10

بنام خدا
با سلام



به امید خدا می خواهیم اولین ولتی متر را بسازیم .

ابتدا ان را در نرم افزار پرتئوس شبیه سازی می کنیم (اگر نرم افزار پرتئوس را ندارید، لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد را کلیک فرمایید)

شبیه سازی کردن یک ولتی متر در پرتئوس 8

خوب نرم افزار را باز کنید،سپس روی این گزینه کلیک فرمایید:

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

میکروکنترولر = تایپ کنید atmega8
پتانسیو متر = تایپ کنید POT-HG
LCD= تایپ کنید Lm016

را به لیست خود اضافه کنید. سپس انها را به روی صفحه بیاورید و به مانند تصویر زیر سیم ها را به هم دیگر وصل کنید ..
چند نکته:

برای اوردن ولتی متر شبیه ساز به این قسمت مراجعه کنید:
و برای اوردن پاور (منفی و مثبت ) به این قسمت مراجعه کنید:
اکنون مراحل ساخت ولی متر در شبیه ساز به پایان رسید . حال نوبت کدنویسی آن می باشد.(که در پست بعدی بیشتر به ان می پردازیم،)اکنون می توانیم اموزش ایجاد پروژه در کدویژن را در  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد ادرس ببینید.
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

3 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6616

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش ساخت ولتی متر و امپر متر ساده با ATMEGA8

توسط sinaset » سه شنبه 3 آذر 1394 15:35

سلام دوباره.

آغاز کد نویسی
(چون این تاپیک مبحث اموزش میکروکنترولر AVR و برنامه نویسی نیست، کدها رو به صورت کامل توضیح نخواهیم داد،انشالله در تاپیک مربوطه در این رابطه ها بیشتر صحبت خواهیم کرد)

طبق روال برنامه نویسی ،ابتدا کتابخانه هایی مورد نیاز را در ابتدا صفحه قرار میدهیم . (کتابخانه معرفی میکروکنترولر،تاخیر،ال سی دی و ..)

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


و در قسمت بعدی،ما باید ولتاژ مرجع را معرفی کنیم! اما ولتاژ مرجع چیست؟! واحد ADC همیشه خودش را به یک ولتاژ اصلی مقایسه میکند. این ولتاژ می توان به سه طریق تامین شود، پایه AVCC میکروکنترولر، یا پایه AREF میکروکنترولر، یا به کمک ولتاژ 2.56 درونی خود میکروکنترولر(شرکت سازنده این ولتاژ دقیق را درون میکروکنترولر ایجاده کرده) به وجود اورد.

که ما برای اسانی پروژه ولتاژ مراجع را 5 ولت بر روی پایه AVCC میکروکنترولر قرار دادیم.

میکروکنترولر وقتی ولتاژ 5 ولت را برایش تعریف کردیم، از این به بعد ولتاژ دریافتی را با این 5 ولت مقایسه می کند و به نسبت ان تعداد 1024 واحد خود را افزایش یا کاهش میدهد. به عنوان مثال اگر ولتاژی حدود 4.5 ولت را برای اندازگیری به او بدهیم حدود 921 واحد خود را افزایش میدهد.

میکروکنترولر در وضعیت بالا می تواند با دقت هر 0.005 (5 میلی ولت) تغییر، یک واحد خود را افزایش و یا کاهش دهد.که این در نوع خودش بسیار خوب می باشد.

حال برای اینکه میکروکنترولر ولتاژ مرجع خود را پایه AVCC قرار دهید . یک تابع تعریف می کنیم و ولتاژ مرجع را اینطور تعریف می کنیم:
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


و بعد از ان، برای نمونه برداری واحد ADC از ولتاژ مد نظرمان از این کدها استفاده میکنیم(نگران این کدها نباشید،معمولا توسط خود کدوِیژن داده میشود)

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


تابع اصلی برنامه رو تعریف می کنیم (تابع اصلی جایه است که همیشه کدهای اصلی برنامه در انجا قرار می گیرد)
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


سپس یک متغییر 16 بیتی از نوع int  به نام result تعریف می کنیم( result در واقع متغیریست که ما خروجی ها ADC را در ان قرار میدهیم)
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


این قسمت از کدها رو هم بعد از کد قبلی قرار میدهیم(بدلیل پیچیدگی ها خاص خودش،توضیح مختصری در رابطه اشان داده ام)
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


حال وارد چرخه دائمی while  میشویم
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


ابتدا با کد زیر ADC شماره 0 (پایه شماره 23 میکروکنترولر) را خوانده و به درون متغیر result قرار میریزیم( اگر دقت کرده باشید،در اول مطالب این نکته رو توضیح دادیم که، ولتاژ خوانده شده توسط ADC به صورت یک عددی بین 1 تا 1024 می باشد.که ما در کدی بعدی به کمک یک فرمول آن را تبدیل به ولتاژ می کنیم)
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 

سپس برای بدست اوردن ولتاژ ابتدا متغیر را ضربدر 5 می کنیم و در نهایت تقسیم بر 1024 می کنیم
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


حال در متغیر result ولتاژ اندازه گرفته شده قرار دارد،به کمک باقی کدها ، ان را نمایش میدهیم ..
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


همه کدهای گفته شده یک جا:
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


اکنون بعد از ذخیر سازی (به کمک دکمه شبفت + f9 پروژه را ذخیر کنید،تا به شما یک فایل Hex بدهد) شبیه ساز را باز کنید روی میکروکنترولر کلیک کنید،روی گزینه program file کلیک کنید و به ادرس Debug\Exe\  (واقع در محل ذخیر سازی فایل نوشته شده با کدویژن) رفته و فایل پسوند hex را انتخاب کنید .
اکنون اگر کلید run the simulation رو بزنید(انتها گوشه سمت چپ) ال سی دی روشن میشود و شما می توانیم با تغییر دادن مقاومت متغیر ولتاژ ها را اندازه بگیرید ..


ادامه دارد ..
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

2 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6616

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش ساخت ولتی متر و امپر متر ساده با ATMEGA8

توسط sinaset » چهارشنبه 4 آذر 1394 15:32

بنام خدا
باسلام

مولتی متر دقیق تر !

اکنون می خواهیم یک مولتی متر دقیق درست کنیم که بتوانیم ولتاژ 0 تا 5 ولت را با دقت بهتر اندازه بگیریم سپس با دقت صدم درصد نمایش دهیم .

اولین نکته! اگر دقت کرده باشید در پست قبلی گفتیم که واحد ADC 1024  واحد تشکیل شده،اما در نرم افزاری برای اینکه جواب بهتر بگیرم .آن را 1023 (یک واحد کمتر) در نظر میگیرم.اینطور جواب بهتری خواهیم گرفت.

پس ما برای تقسیم 1024 را به 1023 تغییر می دهیم
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


اما برای اینکه صدم درصد (ولت) را هم بتوانیم بر روی ال سیدی نمایش دهیم .. متغیر result را از نوع اعشاری تعریف می کنیم. برای این کار باید بجایی int از float استفاده کنیم . به طریق شکل زیر.
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


و برای اینکه در نمایشگر lcd ، اعداد به صورت اعشاری نمایش داده شود. این قسمت از کد را تغییر میدهیم
کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


با انجام تغییرات بالا کار تمام است و شما یک ولتی متر 0 تا 5 ولت ساده و دقیق! ساخته اید .

کل کدها

کد: انتخاب همه
 لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد 


بعد از تغییر کدها ، ولتی متر به شکل زیر اجرا میشود (نمایش صدم درصد )


در پست بعدی،در رابطه با نحویه اجرا سخت افزاری ولتی متر 0 تا 5 ولتی بیشتر صحبت خواهیم کرد.
ادامه دارد...
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

2 کاربر از این پست سپاسگزاري کرده اند

Colonel II

Colonel II



نماد کاربر
پست ها

6616

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش ساخت ولتی متر و امپر متر ساده با ATMEGA8

توسط sinaset » چهارشنبه 4 آذر 1394 15:59

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

نکات برجسته :
پتانسیو 10 کیلو وصل شده به پایه شماره 3 LCD برای تنظیم کنتراست صفحه مانیتور می باشد .
پایه شماره 1 (REST) به +5 ( یا همون سیم مثبت بعد از رگولاتور) وصل کنید
پایه شماره 20 (AVCC) به +5 وصل شود (این پایه ،ولتاژ مرجع واحد ADC می باشد)
پایه 7 (VCC) میکروکنترولر به +5 ولت وصل شود(تغذیه مثبت میکروکنترولر)
پایه 8 (GND) میکروکنترولر به +5 ولت وصل شود(تغذیه منفی میکروکنترولر)
پایه شماره 23 میکروکنترولر ،که در واقع ADC 0 می باشد. برای اینکه،زمان اندازه گیری ولتاژ، جریان بیش از اندازه وارد میکروکنترولر نشون،یک مقاومت 100 کیلو اهم سر راهش قرار دهید،و در نهایت سیم به ان وصل کنید(به عنوان دسته برای اندازه گیری ولتاژها)
یک سیم هم جداگانه از منفی رگولاتور به عنون دسته منفی بکشید تا بتوانید ولتاژ را به کمک  سیم که در خط قبل توضیح دادیم،اندازه بگیریم.
مدار مد نظر در زمان اندازه گیری باتری. که دقیقا با ولتاژ اندازه گیری شده توسط مولتی متر .. یکی می باشد!
برای دیدن فیلم مدار  لينکها براي کاربران مهمان قابل دسترسي نيست، براي مشاهده ي لينکها لطفا ثبت نام کرده و وارد شويد  را کلیک فرمایید.
ادامه دارد..
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Mahdi1944 از این پست سپاسگزاري کرده است

Colonel II

Colonel II



نماد کاربر
پست ها

6616

تشکر کرده: 1670 مرتبه
تشکر شده: 8151 مرتبه
تاريخ عضويت

سه شنبه 26 آذر 1387 16:20

آرشيو سپاس: 11653 مرتبه در 2024 پست

Re: آموزش ساخت ولتی متر و امپر متر ساده با ATMEGA8

توسط sinaset » جمعه 20 آذر 1394 08:55

بنام خدا
با سلام

ساخت آمپر متر ساده

اما ساخت امپر متر بسیار ساده می باشد .

برای ساخت امپرمتر،از مقاومت استفاده می کنیم. دلیلش این است که: طبق قوانین مقاومت ها، هر میزان انرژی که از یک مقاومت (بسته به اهمش!) عبور کند،مقداری ولتاژ ان کاهش(یا افت)پیدا می کند.حال ما به کمک واحد ADC این میزان افت را دریافت می کنیم،سپس تقسیم بر میزان مقاومت می کنیم.در نتیجه امپر دریافتی را به دست می اوریم.

به عنوان مثال، ولتاژی حدودی 0.2 (200 میلی امپر) بر روی مقاومتی 1 اهمی افت کرده.چه میزان  امپری در حال عبور از این مدار می باشد؟!

0.200 تقسیم بر 1 = 0.200 یعنی در حال حاضر حدود 200 میلی امپر در حال عبور از روی مدار می باشد.

-----
حال همین ازمایش را با پرتئوس انجام میدهیم :



در تصویر بالا،
ابتدا از سمت منفی مدار،جریان آغاز شده و بعد از عبور از مقاومت،حدود 0.52 ولت،افت می کند، که دلیل افت،چراغ است که در حال مصرف می باشد. سپس در همینجا یعنی،بعد از مقاومت،یک خروجی گرفته شده و به پایه ADC جهت محاسبه داده شده .(جهت محاسبه افت)

همانجور که می ببینید LCD دقیقا عدد 0.52 را زده و محاسبات به درستی انجام شده است .

*به طور کلی برای امپر متر،اگر مقاومت 1 اهم استفاده شود بهتر می باشد. چون دیگر نیازی به تقسیم نیست، و میزان افت با میزان امپر عبوری یکیست.( اما اگر بخواهیم تلافت مدار را بیش از پایین بیارم می توانیم از مقاومت ها 0.1 اهمی استفاده کنیم،که تلافت بسیار کمتر خواهد داشت)

ادامه دارد..
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Mahdi1944 از این پست سپاسگزاري کرده است


 


  • موضوعات مشابه
    پاسخ ها
    بازديدها
    آخرين پست

چه کسي حاضر است ؟

کاربران حاضر در اين انجمن: بدون كاربران آنلاين و 0 مهمان