PDA

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



medadnoki
09-04-2012, 19:50
کسی میتونه تو راه اندازی این سنسور آلتراسونیک کمک کنه؟؟؟؟؟؟
به شدت نیاز دارم.....

M_GH
09-04-2012, 22:30
داداش یه سرچ تو نت بزنی پیدا میشه

medadnoki
09-04-2012, 23:13
نیست نیست نیست......................
دیوونه شدم
یه لینک بزار داداش

sadmonew
09-04-2012, 23:36
نیست نیست نیست......................
دیوونه شدم
یه لینک بزار داداش
سلام مهندس
بگردي حتما هست.:wink:
مثلا اينارو يه نگاه بنداز:
ATMEGA32 Examples (You can see links before reply)
Connecting the ATMEGA32 to LCD03 (You can see links before reply)
فاصله سنح با avr با SRF02 (You can see links before reply)
srf02 ultrasonic | Let's Make Robots! (You can see links before reply)

موفق باشيد.

medadnoki
11-04-2012, 22:34
چند تا سوال از دیتاشیت دارم....
1)register ها متوجه نشدم چیه؟

2)commandهای زیر رو هم متوجه نشدم چه کاربردی دارد؟
0x5C , 0x60 , 0xA0 , 0xA5 ,0xAA

3)جدول مربوط به قسمت Changing the I2C Bus Address رو نفهمیدم کاربردش چیه؟؟(توضیح داده ولی از اونجایی که زبان انگلیسی من خیلی قوی هست.....lov:)

Division
11-04-2012, 22:52
سلام

دیوونه شدممن یه کتابخونه برا داداش بزرگه (srf08) این ماژول آماده کرده بودم که عین آب خوردن میتونستم راش بندازم (البته اگه کتابخونه نباشه هم میشه ها ولی کارت آسون تر میشه). شما فقط بگو با چه زبونی می خوای براش برنامه نویسی کنی ؟

medadnoki
11-04-2012, 23:00
شما فقط بگو با چه زبونی می خوای براش برنامه نویسی کنی ؟
من دارم با زبان C مینویسم...
<<codevision>>
ولی ماژول من SRF02 هست ، نه SRF08:sa:

من تو برنامه نویسی SRF02 خیلی مشکل دارم!!!!!!!
اگه میتونید کمک کنید......
<<با ارتباط I2C>>

medadnoki
12-04-2012, 19:03
کسی نیست مرا یاری کند؟

Division
12-04-2012, 21:43
کسی نیست مرا یاری کند؟

ای بابا یکم صبر کنید دیگه من تازه دارم میبینم پستتون رو !

خب شما با خونسردی تمام ماژول رو با رعایت پلاریته به منبع تغذیه متصل کنید (۵ ولت) .
پشتش یه led وجود داره به محض اینکه به تغذیه متصل کردین چراغ شروع می کنه به چشمک زدن تعداد دفعات چشمک زدنش رو بم بگین (با دقت بشمرین (چند بار تست کنید تا عدد صحیح رو بم بگین))

فقط دقت کنید که به محض متصل شدن یه بار چشمک ممتد میزنه بقیه کوتاه هستن اون ممتد اولی رو نشمرین .

medadnoki
12-04-2012, 23:12
ای بابا یکم صبر کنید دیگه من تازه دارم میبینم پستتون رو !
آخه کار من اورژانسیه........cry::cry::cry::


خب شما با خونسردی تمام ماژول رو با رعایت پلاریته به منبع تغذیه متصل کنید (۵ ولت) .
جریانش چقدر باشه ، مهندس؟
هدف از این پروسۀ شمارش چشمک زدن چراغ چیه؟

Division
13-04-2012, 00:20
جریانش چقدر باشه ، مهندس؟\
آخه این ماژول جریا نمیکشه که ! همون ولناژ و جریانی که به میکرو میدی همون رو به این ماژول هم بدین .(سعی کن جریانت زیر ۱۰۰میلی آمپر نباشه)


هدف از این پروسۀ شمارش چشمک زدن چراغ چیه؟
اگه دیتا شیت رو مطالعه میکردین نوشته بود :(
هدفم اینه که آدرس پیش فرض ماژولتون رو متوجه بشم (در پروتکل ارتباطی i2c باید آدرس دیوایس slave مشخص باشه)
اگه آدرس رو بدونم کل برنامه رو منطبق بر اون آدرس آماده می کنم همین جا میزارم بری و حالش رو ببری :o

medadnoki
13-04-2012, 00:38
آخه این ماژول جریان نمیکشه که !...
نمیسوزه؟.....35 تومن پولشه


اگه دیتا شیت رو مطالعه میکردین نوشته بود
من datasheet رو خوندم
توی datasheet نوشته آدرس پیش فرض 0xE0 هست.:sa:
ولی بازم ما تست میکنیم
تازه تو پست پنجم برای دانلود گذاشتم


اگه آدرس رو بدونم کل برنامه رو منطبق بر اون آدرس آماده می کنم همین جا میزارم بری و حالش رو ببری
دمت گرم بابا....:018:
برای این که برنامه رو مثلا خودم بنویسم توی میکرو پایه‏های SCL , SDA به ترتیب کدوم خروجی و کدوم ورودی یا اصلاً هر دو ورودی یا هر دو خروجی تعریف میشه؟(تو codewizard)

Division
13-04-2012, 00:55
عزیز دل من اون آدرس پیش فرض رو دیدم ولی بعضی وقت ها اون آدرس درست نیست
حالا شما یا کاری رو که من گفتم رو بکنید یا اینکه دیگه خودت میدونی .


تازه تو پست پنجم برای دانلود گذاشتم
ای خدا ... :unh:

medadnoki
13-04-2012, 01:07
چشم مهندس چرا عصبانی میشی؟
شما جایه استاده ما هستید و ما شاگرد...........حمل بر کم تجربگی بنده بزارید ، قربان!
اگر اشتباهی کردیم شما ببخشید.....:125:
<<در اولین فرصت خبرشو میدم>>

amiraliforoozandeh
13-04-2012, 11:25
سلام
ظاهرا تعداد زیادی از دوستان با راه اندازی این ماژول یعنی SRF02 مشکل دارن.
میخوام یکبار برای همیشه مشکل رو حل کنم :0013:
در پاسخ دوستمون medadnoki باید بگم که اگه از کدویژن استفاده میکنی فقط کافیه که تعریف کنی فلان پایه SDA و فلان پایه SCL همین کفایت میکنه.
این یه مثال از راه اندازی این ماژول با بسکام با I2C

$regfile = "m32def.dat"
$crystal = 12000000

Config Lcdpin = Pin , E = Portd.3 , Rs = Portd.4 , Db4 = Portd.5 , Db5 = Portd.6 , Db6 = Portd.7 , Db7 = Portc.5
Config Lcd = 16 * 2

Config Sda = Portc.1
Config Scl = Portc.0
Dim X As Integer , Y As Integer , Z As Word , Z2 As Word , Z3 As Word
Cursor Off
Do

I2cstart
I2cwbyte &HE0
I2cwbyte &H00
I2cwbyte &H51
I2cstop
I2cstart
I2cwbyte &HE0
I2cwbyte &H02
'I2creceive &HE0 , X
I2cstart
I2cwbyte &HE0 + 1
I2crbyte X , Nack


I2cstop
I2cstart
I2cwbyte &H03
'I2creceive &HE0 , Y
I2cstart
I2cwbyte &HE0 + 1
I2crbyte Y , Nack


I2cstop
Cls
Z = X * 256
Z = Z + Y
'Waitms 200
Lcd Z
Waitms 160


'Wait 2


Loop


اینم یه مثال برای راه اندازی توسط بسکام با سریال


$regfile = "m8def.dat"
$crystal = 12000000

$baud = 9600
Config Lcdpin = Pin , Db4 = Portb.1 , Db5 = Portb.2 , Db6 = Portb.3 , Db7 = _
Portb.4 , E = Portb.0 , Rs = Portb.5
Config Lcd = 16 * 2
Dim A As Byte
Dim B As Byte
Dim C As Word
Dim Cc As Single
Enable Interrupts
Cls
Cursor Off

Do


Printbin 0
Waitms 50
Printbin 84

A = Waitkey()
B = Waitkey()

C = A * 256
C = C + B

If C > 100 Then

Cc = C / 100
Locate 2 , 1 : Lcd "Range2=" : Lcd Fusing(cc , "#.##") : Lcd "Meter "
Locate 1 , 1 : Lcd "Range1=" : Lcd C : Lcd "Cm "
Elseif C < 100 Then
Cc = 0
Locate 2 , 1 : Lcd "Range2=" : Lcd Fusing(cc , "#.##") : Lcd "Meter "
Locate 1 , 1 : Lcd "Range1=" : Lcd C : Lcd "Cm "
End If

Loop

End


اینم یه تابع برای راه اندازی این ماژول با I2C به زبان C در کدویژن



unsigned int SRF(int address)
{
//SRF02
int LSB,MSB;
i2c_start();
i2c_write(address);
i2c_write(0x00);
i2c_write(0x51);
i2c_stop();
i2c_start();
i2c_write(address);
i2c_write(0x02);
i2c_start();
i2c_write(address+1);
MSB=i2c_read(0);
i2c_stop();
i2c_start();
i2c_write(0x03);
i2c_start();
i2c_write(address+1);
LSB=i2c_read(0);
i2c_stop();
return (256 * MSB) + LSB;
}


روش استفاده از هر کدوم کاملا واضحه ولی اگر بازم جای سوالی بود در خدمتم.
دوستان توجه داشته باشن که تمامی کد های بالا رو از تو برنامه های خودم در آوردم و گذاشتم این جا پس مطمئن باشین که کار میکنن فقط کافیه یه مقدار سعی کنید تا ازشون جواب بگیرین.
به امید این که روزی برسه که همه اطلاعاتشون رو به اشتراک بزارن :chat:

Division
13-04-2012, 11:31
به امید این که روزی برسه که همه اطلاعاتشون رو به اشتراک بزارن
ii998)
من دیگه این تاپیک رو ادامه نمیدم دوستمون زحمتش رو کشیدن دیگه :sa: (من موندم یا من به سوالات نمی تونم درست جواب بدم یا دنیا عوض شده) .

amiraliforoozandeh
13-04-2012, 11:36
ii998)
من دیگه این تاپیک رو ادامه نمیدم دوستمون زحمتش رو کشیدن دیگه :sa: (من موندم یا من به سوالات نمی تونم درست جواب بدم یا دنیا عوض شده) .

منظورم شما نبودید دوست عزیز این جمله رو بطور کلی نوشتم و شخص خاصی مد نظرم نبود
امید وارم به کسی بی احترامی نکرده باشم.

Division
13-04-2012, 12:42
من دارم با سوال کننده مرحله مرحله پیش میرم (به تاریخ های ارسال دقت کنید) دیگه دیگه نیازی نیست که یهویی شما بیاین و یک دست بودن موضوع رو تغییر بدین .
اگه دقت میکردین سوال کننده کد زبان سی میخواد نه زبان بسیک . درثانی من اشاره کرده بودم که کتابخونه کاملی رو برای این تیپ ماژول ها آماده دارم فقط کامل می خوام فیکسش کنم تحویلشون بدم .
میدونم هدف شمام کمک بوده حرفی توش نیست ولی چون من خاصیتم اینه که به شدت به نظم مطالب اهمیت میدم اینه که دوست دارم وقتی موضوعی آماده میشه و قراره ایشالا در آینده راه گشای خیلی ها باشه, یه دست باشه .

بعضی مواقع برای برخی سوالات کاربران من راه حل قطعی ندارم اون موقع خب همه میان نظر میدن ولی وقتی کاربری راه حل قطعی داره به نظرم بقیه باید ببینن طرف چیکار می کنه بعدش اگه دیدن به جایی نرسید راه کارهای خودشون رو ارائه بدن (البته این نظر شخصی منه)

اگه چند ماه دیگه یه بنده خدایی این مشکل رو داشته باشه و این تاپیک رو پیدا کنه جان من گیج نمیشه ؟
الان سوال کننده اصلی داره با پیغام خصوصی جوابش رو از من میگیره و حتما جوابش رو میدم .(والا موندم چی بگم ....lov:)

amiraliforoozandeh
13-04-2012, 14:06
من دارم با سوال کننده مرحله مرحله پیش میرم (به تاریخ های ارسال دقت کنید) دیگه دیگه نیازی نیست که یهویی شما بیاین و یک دست بودن موضوع رو تغییر بدین .
اگه دقت میکردین سوال کننده کد زبان سی میخواد نه زبان بسیک . درثانی من اشاره کرده بودم که کتابخونه کاملی رو برای این تیپ ماژول ها آماده دارم فقط کامل می خوام فیکسش کنم تحویلشون بدم .
میدونم هدف شمام کمک بوده حرفی توش نیست ولی چون من خاصیتم اینه که به شدت به نظم مطالب اهمیت میدم اینه که دوست دارم وقتی موضوعی آماده میشه و قراره ایشالا در آینده راه گشای خیلی ها باشه, یه دست باشه .

بعضی مواقع برای برخی سوالات کاربران من راه حل قطعی ندارم اون موقع خب همه میان نظر میدن ولی وقتی کاربری راه حل قطعی داره به نظرم بقیه باید ببینن طرف چیکار می کنه بعدش اگه دیدن به جایی نرسید راه کارهای خودشون رو ارائه بدن (البته این نظر شخصی منه)

اگه چند ماه دیگه یه بنده خدایی این مشکل رو داشته باشه و این تاپیک رو پیدا کنه جان من گیج نمیشه ؟
الان سوال کننده اصلی داره با پیغام خصوصی جوابش رو از من میگیره و حتما جوابش رو میدم .(والا موندم چی بگم ....lov:)

ببخشید من پست های قبل رو نخونده بودم
در مورد زبان هم اون تابع آخری سی هست و با کدویژن

mohsen_bmw
26-08-2012, 18:43
سلام من هم این ماژول را دارم ولی هنوز نتونستم راه اندازیش کنم چندتا سوال دارم اولا اینکه چطوری مسافت رو روی lcd نشون بدم،
دوم :چجور مشخص میشه که سنسور داره کار میکنه وقتی کار کنه led چشمک میزنه یا اینکه فقط یه بار روشن میشه؟
سوم:مقاومت pull upرا چقدر بزارم؟ حتما باید باشه؟
چهارم:مشکل کد منه چیه چرا جواب نمیده لطفا راهنمایی کنید که خیلی واجبه
اینم کد:

#include <mega8.h>

// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=4
.equ __scl_bit=5
#endasm
#include <i2c.h>
#include <stdio.h>
#include <delay.h>
#include <alcd.h>
#asm
.equ __lcd_port=0X18
#endasm
void main(void)
{
unsigned char str[20]="";
unsigned char x,y ;
unsigned char z ;
TWCR=0x00;
TWBR=0x02;
i2c_init();
lcd_init(16);
while (1)
{
delay_ms(50);
i2c_start();
i2c_write(0xE0);
i2c_write(0x00);
i2c_write(0x51);
i2c_stop();
i2c_start();
i2c_write(0xE0);
i2c_write(0x02);
x=i2c_read(0);
i2c_stop();
i2c_start();
i2c_write(0x03);
y=i2c_read(0);
i2c_stop();
z = x * 256;
z = z + y;
delay_ms(60);
lcd_clear();
lcd_gotoxy(0,0);
sprintf(str,"%u",z);
lcd_puts(str);
delay_ms(60);

}
}

amiraliforoozandeh
27-08-2012, 00:11
سلام من هم این ماژول را دارم ولی هنوز نتونستم راه اندازیش کنم چندتا سوال دارم اولا اینکه چطوری مسافت رو روی lcd نشون بدم،
دوم :چجور مشخص میشه که سنسور داره کار میکنه وقتی کار کنه led چشمک میزنه یا اینکه فقط یه بار روشن میشه؟
سوم:مقاومت pull upرا چقدر بزارم؟ حتما باید باشه؟
چهارم:مشکل کد منه چیه چرا جواب نمیده لطفا راهنمایی کنید که خیلی واجبه
اینم کد:

#include <mega8.h>

// I2C Bus functions
#asm
.equ __i2c_port=0x15 ;PORTC
.equ __sda_bit=4
.equ __scl_bit=5
#endasm
#include <i2c.h>
#include <stdio.h>
#include <delay.h>
#include <alcd.h>
#asm
.equ __lcd_port=0X18
#endasm
void main(void)
{
unsigned char str[20]="";
unsigned char x,y ;
unsigned char z ;
TWCR=0x00;
TWBR=0x02;
i2c_init();
lcd_init(16);
while (1)
{
delay_ms(50);
i2c_start();
i2c_write(0xE0);
i2c_write(0x00);
i2c_write(0x51);
i2c_stop();
i2c_start();
i2c_write(0xE0);
i2c_write(0x02);
x=i2c_read(0);
i2c_stop();
i2c_start();
i2c_write(0x03);
y=i2c_read(0);
i2c_stop();
z = x * 256;
z = z + y;
delay_ms(60);
lcd_clear();
lcd_gotoxy(0,0);
sprintf(str,"%u",z);
lcd_puts(str);
delay_ms(60);

}
}




سلام
برنامه ای که نوشتید که ضاهرا درسته متاسفانه الان وقت بستن عملی اونو ندارم.
بله مقاوت های پول آپ باید باشن و مقدار اونا باید 4.7 K باشه
شما هر بار که از سنسور بخونید یک بار چشمک میزنه
من احتمال میدم که یا آدرس ماژول رو اشتباه میزنید یا مقاومت های pullup رو نزاشتین یا پایه ها رو برعکس وصل کردین.

nasi_em
27-06-2013, 11:56
وقتی با ماژول کار میکنم داده ی پرت زیاد می ده. مثلا اگر بگذارم در یک کارتون با ابعاد 50*50 cm بین داده ها اعداد 240،190،150،... میده! و این باعث میشه کار تحلیل داده درست صورت نگیره. آیا مشکل از سنسور هست؟
اگر کمکم کنید ممنون میشم

Ma3ood
27-06-2013, 13:07
مشکل از برنامه نویسیتون هست و احتمال بسیار پایین از سنسور
برای برنامه نویسی از این سنسور اگه مثلا در بازه زمانی خیلی کم نمونه برداری میکنی بهتره از میانگین گیری استفاده کنی
موفق باشی