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

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

مدیران انجمن: SAMAN, sinaset, شوراي نظارت

ارسال پست
Colonel II
Colonel II
نمایه کاربر
پست: 7014
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9183 بار
سپاس‌های دریافتی: 21047 بار
تماس:

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

پست توسط sinaset » شنبه 30 آبان 1394, 3:28 pm

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

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

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

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

Colonel II
Colonel II
نمایه کاربر
پست: 7014
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9183 بار
سپاس‌های دریافتی: 21047 بار
تماس:

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

پست توسط sinaset » یک شنبه 1 آذر 1394, 3:11 pm

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


مقدمه
 تصویر  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 ولتی داده میشود..
باتشکر.
"قرآن"(کلام خدا) ...راه سعادت و خوشبختی.

Colonel II
Colonel II
نمایه کاربر
پست: 7014
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9183 بار
سپاس‌های دریافتی: 21047 بار
تماس:

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

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

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



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

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

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

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

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

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

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

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

Colonel II
Colonel II
نمایه کاربر
پست: 7014
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9183 بار
سپاس‌های دریافتی: 21047 بار
تماس:

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

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

سلام دوباره.

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

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

کد: انتخاب همه

#include <mega8.h>   //ATMEGA8 معرفي کتابخانه ميکروکنترولر 
#include <delay.h>   //معرفي کتابخانه تاخير
#include <stdio.h>   //يک کتابخانه براي ذخيره سازي راحتر داده ها
#include <alcd.h>    //کتابخانه کار با ال سي دي


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

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

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

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

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

کد: انتخاب همه

#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))  //ما به کمک اين سه ريجستر براي ميکروکنترولر ولتاژ مرجع را مشخص ميکنم


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

کد: انتخاب همه

unsigned int read_adc(unsigned char adc_input){    //به کمک تابع زير ولتاژ را اندازه ميگيرم
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}


تابع اصلی برنامه رو تعریف می کنیم (تابع اصلی جایه است که همیشه کدهای اصلی برنامه در انجا قرار می گیرد)

کد: انتخاب همه

void main(void){    //تابع اصلي برنامه


سپس یک متغییر 16 بیتی از نوع int به نام result تعریف می کنیم( result در واقع متغیریست که ما خروجی ها ADC را در ان قرار میدهیم)

کد: انتخاب همه

int result;   //result معرفي يک نوع متغيير به نام 


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

کد: انتخاب همه

char lcd_buffer[16];    //معرفي يک متغير از نوع آرايه براي نمايش بهتر در ال سي دي

// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE ; //معرفي ولتاژ مراجع
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0);//معرفي125مگاهرتز فرکانس
SFIOR=(0<<ACME);

#asm("sei")  //(وقفه عمومي (براي کار با ال سي دي
lcd_init(16);    //نوع ستون هايي ال سيدي


حال وارد چرخه دائمی while میشویم

کد: انتخاب همه

while (1)
    {


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

کد: انتخاب همه

result= read_adc(0);  //ADC خواندن واحد 

سپس برای بدست اوردن ولتاژ ابتدا متغیر را ضربدر 5 می کنیم و در نهایت تقسیم بر 1024 می کنیم

کد: انتخاب همه

   result= read_adc(0);  //ADC خواندن واحد 
    result=result*5.00 ;  //ضرب بر 5 کردن
    result=result/1024;    //تقسيم بر 1024 کردن


حال در متغیر result ولتاژ اندازه گرفته شده قرار دارد،به کمک باقی کدها ، ان را نمایش میدهیم ..

کد: انتخاب همه

 lcd_gotoxy(0,0);        //مکان نمايي ال سي دي به ستون و رديف اول 
    sprintf(lcd_buffer,"VOLT=%d  ",result);
    lcd_puts(lcd_buffer);    //نمايش ان بر روي ال سيدي


همه کدهای گفته شده یک جا:

کد: انتخاب همه

#include <mega8.h>   //ATMEGA8 معرفي کتابخانه ميکروکنترولر 
#include <delay.h>   //معرفي کتابخانه تاخير
#include <stdio.h>   //يک کتابخانه براي ذخيره سازي راحتر داده ها
#include <alcd.h>    //کتابخانه کار با ال سي دي

                  
#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))  //ما به کمک اين سه ريجستر براي ميکروکنترولر ولتاژ مرجع را مشخص ميکنم

unsigned int read_adc(unsigned char adc_input){    //به کمک تابع زير ولتاژ را اندازه ميگيرم
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}

void main(void){    //تابع اصلي برنامه

int result;   //result معرفي يک نوع متغيير به نام
char lcd_buffer[16];    //معرفي يک متغير از نوع آرايه براي نمايش بهتر در ال سي دي

// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE ; //معرفي ولتاژ مراجع
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0);//معرفي125مگاهرتز فرکانس
SFIOR=(0<<ACME);

#asm("sei")  //(وقفه عمومي (براي کار با ال سي دي
lcd_init(16);    //نوع ستون هايي ال سيدي
while (1)
    {    

    result= read_adc(0);  //ADC خواندن واحد
    result=result*5.00 ;  //ضرب بر 5 کردن
    result=result/1024;    //تقسيم بر 1024 کردن
      
    lcd_gotoxy(0,0);        //مکان نمايي ال سي دي به ستون و رديف اول
    sprintf(lcd_buffer,"VOLT=%d  ",result);
    lcd_puts(lcd_buffer);    //نمايش ان بر روي ال سيدي

    };
}


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

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

Colonel II
Colonel II
نمایه کاربر
پست: 7014
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9183 بار
سپاس‌های دریافتی: 21047 بار
تماس:

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

پست توسط sinaset » چهار شنبه 4 آذر 1394, 3:32 pm

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

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

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

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

پس ما برای تقسیم 1024 را به 1023 تغییر می دهیم

کد: انتخاب همه

result=result/1023;    //تقسيم بر 1023 کردن


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

کد: انتخاب همه

float result;   //result معرفي يک نوع متغيير به نام 


و برای اینکه در نمایشگر lcd ، اعداد به صورت اعشاری نمایش داده شود. این قسمت از کد را تغییر میدهیم

کد: انتخاب همه

sprintf(lcd_buffer,"VOLT=%.2f  ",result); 


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

کل کدها

کد: انتخاب همه

#include <mega8.h>   //ATMEGA8 معرفي کتابخانه ميکروکنترولر 
#include <delay.h>   //معرفي کتابخانه تاخير
#include <stdio.h>   //يک کتابخانه براي ذخيره سازي راحتر داده ها
#include <alcd.h>    //کتابخانه کار با ال سي دي

                  
#define ADC_VREF_TYPE ((0<<REFS1) | (1<<REFS0) | (0<<ADLAR))  //ما به کمک اين سه ريجستر براي ميکروکنترولر ولتاژ مرجع را مشخص ميکنم

unsigned int read_adc(unsigned char adc_input){    //به کمک تابع زير ولتاژ را اندازه ميگيرم
ADMUX=adc_input | ADC_VREF_TYPE;
delay_us(10);
ADCSRA|=(1<<ADSC);
while ((ADCSRA & (1<<ADIF))==0);
ADCSRA|=(1<<ADIF);
return ADCW;
}

void main(void){    //تابع اصلي برنامه

float result;   //result معرفي يک نوع متغيير به نام
char lcd_buffer[16];    //معرفي يک متغير از نوع آرايه براي نمايش بهتر در ال سي دي

// ADC initialization
// ADC Clock frequency: 125.000 kHz
// ADC Voltage Reference: AREF pin
ADMUX=ADC_VREF_TYPE ; //معرفي ولتاژ مراجع
ADCSRA=(1<<ADEN) | (0<<ADSC) | (0<<ADFR) | (0<<ADIF) | (0<<ADIE) | (1<<ADPS2) | (1<<ADPS1) | (0<<ADPS0);//معرفي125مگاهرتز فرکانس
SFIOR=(0<<ACME);

#asm("sei")  //(وقفه عمومي (براي کار با ال سي دي
lcd_init(16);    //نوع ستون هايي ال سيدي
while (1)
    {    

    result= read_adc(0);  //ADC خواندن واحد
    result=result*5.00 ;  //ضرب بر 5 کردن
    result=result/1023;    //تقسيم بر 1023 کردن
      
    lcd_gotoxy(0,0);        //مکان نمايي ال سي دي به ستون و رديف اول
    sprintf(lcd_buffer,"VOLT=%.2f  ",result);
    lcd_puts(lcd_buffer);    //نمايش ان بر روي ال سيدي

    };
}


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

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

Colonel II
Colonel II
نمایه کاربر
پست: 7014
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9183 بار
سپاس‌های دریافتی: 21047 بار
تماس:

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

پست توسط sinaset » چهار شنبه 4 آذر 1394, 3:59 pm

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

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

Colonel II
Colonel II
نمایه کاربر
پست: 7014
تاریخ عضویت: سه شنبه 26 آذر 1387, 4:20 pm
سپاس‌های ارسالی: 9183 بار
سپاس‌های دریافتی: 21047 بار
تماس:

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

پست توسط sinaset » جمعه 20 آذر 1394, 8:55 am

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

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

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

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

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

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

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

 تصویر 

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

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

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

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

ارسال پست

بازگشت به “آموزش و مثال‌ها AVR”