google-site-verification=JzeiPoAiuNQXJPCmlDV7cDXBM571JmQYu5nkhw5nxMY

ولتمتر 0 تا 30 با avr

ولتمتر 0 تا 30 با avr

ولتمتر 0 تا 30 با avr-ADC – مبدل آنالوگ به دیجیتال (ADC-Analog-to-Digital Converter). یک سیگنال آنالوگ خاص را به دیجیتال تبدیل می کند.

میزان بیت ADC دقت تبدیل سیگنال را تعیین می کند. زمان تبدیل – به ترتیب، سرعت ADC. ADC در بسیاری از میکروکنترلرهای خانواده AVR تعبیه شده است

و استفاده از میکروکنترلر را در هر طرح تنظیمی که لازم است سیگنال آنالوگ خاصی دیجیتالی شود، ساده می کند.

 

اصل عملکرد ADC را در نظر بگیرید. برای تبدیل به منبع ولتاژ مرجع و ولتاژ واقعی که می خواهیم

دیجیتالی کنیم نیاز دارید (ولتاژی که تبدیل می شود باید کمتر از ولتاژ مرجع باشد).

ولتمتر 0 تا 30 با avr

همچنین به یک ثبات نیاز دارید که مقدار تبدیل شده در آن ذخیره شود، اجازه دهید آن را Z بنامیم.

ولتاژ ورودی = ولتاژ مرجع * Z / 2 ^ N، که در آن N بیت ADC است. ما موافقیم که این رجیستر،

مانند ATmega8، 10 بیتی است. تحول در مورد ما در 10 مرحله انجام می شود.

بیت بالای Z9 روی یک تنظیم شده است.

 

سپس یک ولتاژ تولید می‌شود (ولتاژ مرجع * Z / 1024)، این ولتاژ با مقایسه‌کننده ورودی با استفاده از مقایسه‌کننده آنالوگ مقایسه می‌شود،

اگر از ولتاژ ورودی بیشتر باشد، بیت Z9 صفر می‌شود و اگر کمتر باشد، باقی می‌ماند.

یکی در مرحله بعد، به بیت Z8 بروید و با روش بالا، مقادیر آن را بدست آوریم.

پس از اتمام محاسبه ثبت Z، یک پرچم تنظیم می‌شود که نشان می‌دهد تبدیل کامل شده است و مقدار حاصل را می‌توان خواند.

ولتمتر 0 تا 30 با avr

دقت تبدیل و تداخل، و همچنین نرخ تبدیل، می تواند تا حد زیادی بر دقت تبدیل تاثیر بگذارد. هر چه تبدیل کندتر اتفاق می افتد، دقیق تر است.

همانطور که سازنده در برگه اطلاعات توصیه می کند، باید با هدایت و تداخل با اندوکتانس و خازن مبارزه کرد:

 

مدار فیلتر نویز در میکروکنترلرهای AVR، پین AREF یا منابع داخلی 2.56 ولت یا 1.23 ولت می‌تواند به عنوان منبع ولتاژ مرجع استفاده شود.

 

همچنین منبع ولتاژ مرجع می تواند ولتاژ تغذیه باشد. در برخی موارد و مدل‌های میکروکنترلرها،

خروجی‌های جداگانه برای تغذیه ADC:AVCC و AGND وجود دارد. نتیجه‌گیری ADCn – کانال‌های ADC.

مدار ولتمتر دیجیتال با میکروکنترلatmega8 و سون سگمنت  این مدار ولتاژ آنالوگ ورودی را که به ورودی adcمتصل می باشد

را به پالسهای دیجیتال با تراکم 10 بیت تیدیل کرده

 

و آن را درون متغیر ریخته و روی سون سگمنت نمایش می دهد

کد برنامه به زبان bascomavr

‘www.pc21.ir
$regfile = “m8def.dat”
$crystal = 1000000

Config Portd = Output
Config Portb = Output
‘————————— www.pc21.ir —————————————–
Config Adc = Single , Prescaler = Auto” , Reference = Internal
start adc
‘—————————— www.pc21.ir ——————————————–

Declare Sub volt

‘————————————–www.pc21.ir—————————————-
dim c as single

dim a as word ,b as word , d as word,e as word, ha as word
‘————————————www.pc21.ir—————————————-

‘————————————www.pc21.ir——————————————-
Main:
Do
Call volt
gosub seven

Loop
‘——————————————-www.pc21.ir————————————
Sub volt:
A = Getadc(0)
c=a

C = C / 3.4

b = C
‘Cls : Lcd W

End Sub

Return
‘—————————————www.pc21.ir—————————————-
seven:

portd = &B1110 : Ha = b/1000 : Gosub 7seg
d=b mod 1000
portd = &B1101 : Ha =d / 100 : Gosub 7seg
e=d mod 100
portd = &B1011 : Ha = e/10 : Gosub 7seg
portd = &B0111 : Ha =e Mod 10 : Gosub 7seg

Return

7seg:
portb = Lookup(ha , Det)
Waitms 4
Return
‘—————————————-www.pc21.ir—————————————

Return
‘—————————————-www.pc21.ir—————————————

‘————————————-www.pc21.ir————————–
Det:
Data &B00111111 , &B00000110 , &B01011011 , &B01001111
Data &B01100110 , &B01101101 , &B01111101 , &B00000111
Data &B01111111 , &B01101111

 

 

فایل شبیه سازی شده با نرم افزار proteus7.10

 

 

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

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

آمار