PDA

توجه ! این یک نسخه آرشیو شده میباشد و در این حالت شما عکسی را مشاهده نمیکنید برای مشاهده کامل متن و عکسها بر روی لینک مقابل کلیک کنید : مدار اندازه گیری فشا هوا بر حسب پاسکال



imannejaty
08-03-2015, 01:59
با سلام خدمت مهندسین عزیز میخوام یه فشار سنج طراحی کنم که فشار محیط رو بر حسب پاسکال بسنجه چه سنسوری خوبه من اینو پیدا کردم نظر شما چیه؟

يك ماژول فشار بارومتريك با دقت بالا و جريان مصرفي پايين است. اين ماژول ميتواند فشار بين 300 تا 1100 هكتوپاسكال را با دقت مطلق 0.03 هكتوپاسكال اندازه گيري نمايد.همچنين قابليت اندازه گيري دماي محيط را دارا ميباشد. BMP085 بر اساس تكنولوژي مقاومت پيزوالكتريك ياPiezo-resistive طراحي و توليد شده. استفاده از اين تكنولوژي دقت بالا، خطي بودن و پايداري طولاني مدت را براي اين سنسور فراهم نموده است.


مشخصات:
رنج گسترده در اندازه گيري فشار بارومتريك (300 تا 1100 هكتوپاسكال)
رنج اندازه گيري ارتفاع از 500 متر پايينتر از سطح دريا تا 9000 متر بالاتر از سطح دريا.
ولتاژ تغذيه 1.8 تا 3.6 ولت
جريان مصرفي 5 ميكرو آمپر در حالت استاندارد
نويز پايين در اندازه گيري
قابليت اندازه گيري دما با دقت 0.1 درجه سانتيگراد
خروجي ديجيتال با رابط I2C
كاملا كاليبره شده
قابليت تحمل فشار تا 10000 هكتوپاسكال


سنسور فشار بارومتریك یعنی چی؟

من میخواهم این سنسور را راه اندازی کنم اما من چون با i2c فقط با ds1307
کار کردم نمیدونم چطوری باید با این کار کنم کتابخونه رو دانلود کردم و در مسیر کدویژن کپی کردم اما نمیدونم با چه دستوراتی فرا خوانی و برنامه نویسی کنم
C:\cvavr\INC
بعد اگر این سنسوررا در هوای شهر مثل شهر کرج یا تهران قرار دهم میتواند پاسکال محیط را اندازه بگیرد؟


دوستان و مهندسین بزرگوار اگر این بنده حقیر را راهنمایی بفرمایید بسیار سپاسگزارم

skiboys
22-04-2015, 22:20
سلام ...
در مورد باومتریک با یک سرچ کوچیک می تونستی توی ویکی پدیا معنیشو پیدا کنی
فشار بارومتریک یا فشار اتمسفر نیرویی است که اتمسفر بر یک نقطه وارد می کنه خیلی ساده تر می شه وزن هوایی که روی اون نقطه قرار داره واحدآن هم میلی بار(millibars=mb) یا به صورت میلی متر جیوه یا اینچ بر جیوه بیان می شه
که فشار معمولی در سطح دریا 1013.3 میلی بار(29.92 اینچ بر جیوه) می باشد
تغییرات یا نوسانات این مقدار به شرایط آب هوایی بستگی دارد و همچنین با تغییر ارتفاع و رطوبت مقدار فشار تغییر می کند
خب حالا بریم قسمت برنامه نویسی توی نت بگردی مثال پیدا می کنی هدری هم که برایم فرستادی یکم اصلاح کردم حالا امتحان کن
BMP085 (You can see links before reply)
این هدر را در همون مسیر cvavr\inc کپی کن بعد با دستور زیر درفایل c اینکلودش کن

#include <BMP085.h>
اینجا هم یک مثال هست ببین بدردت می خوره
variostudio/AtTinyBMP085 · GitHub (You can see links before reply)
دیتاشیتش هم خوب مطالعه کن
موفق باشی

imannejaty
23-04-2015, 00:51
با سلام ممنون که سوالم را جواب دادی
ولی جواب نگرفتم شما خودت برنامه رو تو کدویژن کامپایل کردی
به خطای زیر میرسی خوب اول کل برنامه رو که نوشتم ببین

/************************************************** ***
This program was produced by the
CodeWizardAVR V2.05.0 Advanced
Automatic Program Generator
© Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
You can see links before reply

Project :
Version :
Date : 4/24/2015
Author : You can see links before reply *** You can see links before reply
Company :
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>

// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=1
.equ __scl_bit=0
#endasm
#include <i2c.h>
#include <BMP085.h>



// Alphanumeric LCD Module functions
#include <alcd.h>

// Declare your global variables here
long int p=0,h=0,T=0;
char buffer [60];

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=0xFF
// OC0 output: Disconnected
TCCR0=0x00;
TCNT0=0x00;
OCR0=0x00;

// Timer/Counter 1 initialization
// Clock source: System Clock
// Clock value: Timer1 Stopped
// Mode: Normal top=0xFFFF
// 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=0xFF
// 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;

// USART initialization
// USART disabled
UCSRB=0x00;

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

// ADC initialization
// ADC disabled
ADCSRA=0x00;

// SPI initialization
// SPI disabled
SPCR=0x00;

// TWI initialization
// TWI disabled
TWCR=0x00;

// I2C Bus initialization
i2c_init();

// Alphanumeric LCD initialization
// Connections specified in the
// Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
// RS - PORTA Bit 0
// RD - PORTA Bit 1
// EN - PORTA Bit 2
// D4 - PORTA Bit 4
// D5 - PORTA Bit 5
// D6 - PORTA Bit 6
// D7 - PORTA Bit 7
// Characters/line: 16
lcd_init(16);

while (1)
{getPressure(&p);
getAltitude(&h);
getTemperature(&T);
sprintf (buffer,"%s:%s:%s",p,h,T);
lcd_clear();
lcd_gotoxy(0,0);
lcd_putsf("mohandes:iman.nejaty");
lcd_gotoxy(0,1);
lcd_puts(buffer);
// Place your code here

}
}

اینم خطا:
Error: C:\cvavr2\inc\BMP085.h(38), included from: feshar sanj.c: can't open #include file: WProgram.h
بعدش کتابخانه: WProgram.h
پیدا کردم و در مسیر کتابخانه های کدویژن کپی کردم
و باز امدم دوباره کامپایل کردم و اینبار پیغام خطای قبلی را نداد و جدید بود پیام این بود :
Error: C:\cvavr2\inc\WProgram.h(1), included from: BMP085.h: missing '('
دوبار روش کلیک کردم دیدم نوشته : Arduino.h
اینبار این کتابخانه را هم پیدا کردم و کپی کردم اما باز همین خطا را داد
اگر راهنمایی کنید ممنون میشم


سلام ...
در مورد باومتریک با یک سرچ کوچیک می تونستی توی ویکی پدیا معنیشو پیدا کنی
فشار بارومتریک یا فشار اتمسفر نیرویی است که اتمسفر بر یک نقطه وارد می کنه خیلی ساده تر می شه وزن هوایی که روی اون نقطه قرار داره واحدآن هم میلی بار(millibars=mb) یا به صورت میلی متر جیوه یا اینچ بر جیوه بیان می شه
که فشار معمولی در سطح دریا 1013.3 میلی بار(29.92 اینچ بر جیوه) می باشد
تغییرات یا نوسانات این مقدار به شرایط آب هوایی بستگی دارد و همچنین با تغییر ارتفاع و رطوبت مقدار فشار تغییر می کند
خب حالا بریم قسمت برنامه نویسی توی نت بگردی مثال پیدا می کنی هدری هم که برایم فرستادی یکم اصلاح کردم حالا امتحان کن
BMP085 (You can see links before reply)
این هدر را در همون مسیر cvavr\inc کپی کن بعد با دستور زیر درفایل c اینکلودش کن

#include <BMP085.h>
اینجا هم یک مثال هست ببین بدردت می خوره
variostudio/AtTinyBMP085 · GitHub (You can see links before reply)
دیتاشیتش هم خوب مطالعه کن
موفق باشی

skiboys
23-04-2015, 01:25
اقا ایمان گوش نکردی دیگه من هدر جدید دادم بهت اون قبلی رو از ادرسcvavr\inc پاک کن اونی که من دادمو جای گزین کن اون چندتا خط مربوط به WProgram.h نیاز نیست
این قسمتو پاکن یا اینطوری بنویسش

/*

#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

*/

imannejaty
23-04-2015, 12:47
اقا ایمان گوش نکردی دیگه من هدر جدید دادم بهت اون قبلی رو از ادرسcvavr\inc پاک کن اونی که من دادمو جای گزین کن اون چندتا خط مربوط به WProgram.h نیاز نیست
این قسمتو پاکن یا اینطوری بنویسش

/*

#if defined(ARDUINO) && ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif

*/

بازهم خیلی ممنون که پاسخ دادید
کارهایی که گفتید انجام دادم
اگر میشه برنامه ای که نوشتم چک کنید ممنون میشم
اما مشکل را متوجه نشدید پیغام خطا مربوط به هدر است :
Error: C:\cvavr2\inc\BMP085.h(91), included from: feshar sanj.c: missing'('
یعنی روش دابل کلیک میکنم میاد میگه مربوط به این دستور و این قسمت از کتابخانه است :

class BMP085 {
اگر پیگیری کنید ممنون میشم

skiboys
23-04-2015, 15:32
بازهم خیلی ممنون که پاسخ دادید
کارهایی که گفتید انجام دادم
اگر میشه برنامه ای که نوشتم چک کنید ممنون میشم
اما مشکل را متوجه نشدید پیغام خطا مربوط به هدر است :
Error: C:\cvavr2\inc\BMP085.h(91), included from: feshar sanj.c: missing'('
یعنی روش دابل کلیک میکنم میاد میگه مربوط به این دستور و این قسمت از کتابخانه است :

class BMP085 {
اگر پیگیری کنید ممنون میشم
خب از یک پرانتز ایراد می گیره ، پرانتز ها .و سمیکولون ها را چک کن