خانه / پروژه ها / اندازه گیری شدت نور با Avr

اندازه گیری شدت نور با Avr

اندازه گیری شدت نور با avr با استفاده از سنسور لوکس متر
لوكس متر وسیله اندازه گیری «شدت روشنایی» با واحد lux می باشد.

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

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

برنامه به صورت زیر است :

برنامه به این صورت است که با یک تقسیم مقاومتی (همان طور که در فایل پروتئوس دیده میشود) سنسور لوکس متر به adc (مبدل انالوگ به دیجیتال )میکرو متصل شده و شدت نور بر روی lcd نشان داده میشود .

/*****************************************************
This program was produced by the
CodeWizardAVR V2.04.4a Advanced
Automatic Program Generator
© Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
http://www.hpinfotech.com

Project :
Version :
Date    : 10/9/2016
Author  : NeVaDa
Company : mrt
Comments:

Chip type               : ATmega16
Program type            : Application
AVR Core Clock frequency: 8.000000 MHz
Memory model            : Small
External RAM size       : 0
Data Stack size         : 256
*****************************************************/

#include <mega16.h>

#include <delay.h>
#include <stdlib.h>
// Alphanumeric LCD Module functions
#asm
.equ __lcd_port=0x15 ;PORTC
#endasm
#include <lcd.h>

#define ADC_VREF_TYPE 0x00

// Read the AD conversion result
unsigned int read_adc(unsigned char adc_input)
{
ADMUX=adc_input | (ADC_VREF_TYPE & 0xff);
// Delay needed for the stabilization of the ADC input voltage
delay_us(10);
// Start the AD conversion
ADCSRA|=0x40;
// Wait for the AD conversion to complete
while ((ADCSRA & 0x10)==0);
ADCSRA|=0x10;
return ADCW;
}

// Declare your global variables here
float c ;
float a,;
char b[] ;
void main(void)
{
// Declare your local variables here

// Input/Output Ports initialization
// Port A initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTA=0x00;
DDRA=0x00;

// Port B initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTB=0x00;
DDRB=0x00;

// Port C initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTC=0x00;
DDRC=0x00;

// Port D initialization
// Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
// State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T
PORTD=0x00;
DDRD=0x00;

// Timer/Counter 0 initialization
// Clock source: System Clock
// Clock value: Timer 0 Stopped
// Mode: Normal top=FFh
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=FFFFh
// OC1A output: Discon.
// OC1B output: Discon.
// Noise Canceler: Off
// Input Capture on Falling Edge
// Timer1 Overflow Interrupt: Off
// Input Capture Interrupt: Off
// Compare A Match Interrupt: Off
// Compare B Match Interrupt: Off
TCCR1A=0x00;
TCCR1B=0x00;
TCNT1H=0x00;
TCNT1L=0x00;
ICR1H=0x00;
ICR1L=0x00;
OCR1AH=0x00;
OCR1AL=0x00;
OCR1BH=0x00;
OCR1BL=0x00;

// Timer/Counter 2 initialization
// Clock source: System Clock
// Clock value: Timer2 Stopped
// Mode: Normal top=FFh
// OC2 output: Disconnected
ASSR=0x00;
TCCR2=0x00;
TCNT2=0x00;
OCR2=0x00;

// External Interrupt(s) initialization
// INT0: Off
// INT1: Off
// INT2: Off
MCUCR=0x00;
MCUCSR=0x00;

// Timer(s)/Counter(s) Interrupt(s) initialization
TIMSK=0x00;

// Analog Comparator initialization
// Analog Comparator: Off
// Analog Comparator Input Capture by Timer/Counter 1: Off
ACSR=0x80;
SFIOR=0x00;

// ADC initialization
// ADC Clock frequency: 1000.000 kHz
// ADC Voltage Reference: AVCC pin
// ADC Auto Trigger Source: None
// Only the 8 most significant bits of
// the AD conversion result are used
ADMUX=ADC_VREF_TYPE & 0xff;
ADCSRA=0x83;

// LCD module initialization
lcd_init(16);

while (1)
{
// Place your code here
a=read_adc(0);
c=(a/1024)*100 ;
ftoa(c,1,b);
lcd_gotoxy(0,0);
lcd_putsf(“light intense is”)  ;

delay_ms(100);
lcd_gotoxy(0,1);
lcd_puts(b);
lcd_gotoxy(6,1);
lcd_putsf(“%”);

}
};

دانلود کد برنامه و شبیه سازی

رمز فایل :epc-project.ir

 

ساخت پروژه بر روی مدار چاپی (pcb ) پذیرفته میشود (هزینه 25000تومان )

برای انجام پروژه مبلغ فوق را به شماره حساب زبر واریز نمایید.

شماره  حساب : 4398-5430-8310-5859

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

شماره تماس : 7494 573 0933

ایمیل : epcprojectorder@gmail.com

درباره ی mr ti

همچنین ببینید

برد رله 4 کاناله

مقدمه: برد رله ی 4 کاناله یک روش ساده و راحت برای اتصال رله به …

پاسخی بگذارید

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

سه × 5 =