کسی میتونه تو راه اندازی این سنسور آلتراسونیک کمک کنه؟؟؟؟؟؟
به شدت نیاز دارم.....
کسی میتونه تو راه اندازی این سنسور آلتراسونیک کمک کنه؟؟؟؟؟؟
به شدت نیاز دارم.....
داداش یه سرچ تو نت بزنی پیدا میشه
نیست نیست نیست......................
دیوونه شدم
یه لینک بزار داداش
سلام مهندس
بگردي حتما هست.
مثلا اينارو يه نگاه بنداز:
ATMEGA32 Examples
Connecting the ATMEGA32 to LCD03
فاصله سنح با avr با SRF02
srf02 ultrasonic | Let's Make Robots!
موفق باشيد.
_____________________________________
_____________________________________
چند تا سوال از دیتاشیت دارم....
1)register ها متوجه نشدم چیه؟
2)commandهای زیر رو هم متوجه نشدم چه کاربردی دارد؟
0x5C , 0x60 , 0xA0 , 0xA5 ,0xAA
3)جدول مربوط به قسمت Changing the I2C Bus Address رو نفهمیدم کاربردش چیه؟؟(توضیح داده ولی از اونجایی که زبان انگلیسی من خیلی قوی هست.....)
سلام
من یه کتابخونه برا داداش بزرگه (srf08) این ماژول آماده کرده بودم که عین آب خوردن میتونستم راش بندازم (البته اگه کتابخونه نباشه هم میشه ها ولی کارت آسون تر میشه). شما فقط بگو با چه زبونی می خوای براش برنامه نویسی کنی ؟دیوونه شدم
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
من دارم با زبان C مینویسم...شما فقط بگو با چه زبونی می خوای براش برنامه نویسی کنی ؟
<<codevision>>
ولی ماژول من SRF02 هست ، نه SRF08
من تو برنامه نویسی SRF02 خیلی مشکل دارم!!!!!!!
اگه میتونید کمک کنید......
<<با ارتباط I2C>>
ویرایش توسط medadnoki : 11-04-2012 در ساعت 23:14
کسی نیست مرا یاری کند؟
ای بابا یکم صبر کنید دیگه من تازه دارم میبینم پستتون رو !کسی نیست مرا یاری کند؟
خب شما با خونسردی تمام ماژول رو با رعایت پلاریته به منبع تغذیه متصل کنید (۵ ولت) .
پشتش یه led وجود داره به محض اینکه به تغذیه متصل کردین چراغ شروع می کنه به چشمک زدن تعداد دفعات چشمک زدنش رو بم بگین (با دقت بشمرین (چند بار تست کنید تا عدد صحیح رو بم بگین))
فقط دقت کنید که به محض متصل شدن یه بار چشمک ممتد میزنه بقیه کوتاه هستن اون ممتد اولی رو نشمرین .
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
آخه کار من اورژانسیه........ای بابا یکم صبر کنید دیگه من تازه دارم میبینم پستتون رو !
جریانش چقدر باشه ، مهندس؟خب شما با خونسردی تمام ماژول رو با رعایت پلاریته به منبع تغذیه متصل کنید (۵ ولت) .
هدف از این پروسۀ شمارش چشمک زدن چراغ چیه؟
ویرایش توسط medadnoki : 12-04-2012 در ساعت 23:45
\جریانش چقدر باشه ، مهندس؟
آخه این ماژول جریا نمیکشه که ! همون ولناژ و جریانی که به میکرو میدی همون رو به این ماژول هم بدین .(سعی کن جریانت زیر ۱۰۰میلی آمپر نباشه)
اگه دیتا شیت رو مطالعه میکردین نوشته بودهدف از این پروسۀ شمارش چشمک زدن چراغ چیه؟
هدفم اینه که آدرس پیش فرض ماژولتون رو متوجه بشم (در پروتکل ارتباطی i2c باید آدرس دیوایس slave مشخص باشه)
اگه آدرس رو بدونم کل برنامه رو منطبق بر اون آدرس آماده می کنم همین جا میزارم بری و حالش رو ببری
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
نمیسوزه؟.....35 تومن پولشهآخه این ماژول جریان نمیکشه که !...
من datasheet رو خوندماگه دیتا شیت رو مطالعه میکردین نوشته بود
توی datasheet نوشته آدرس پیش فرض 0xE0 هست.
ولی بازم ما تست میکنیم
تازه تو پست پنجم برای دانلود گذاشتم
دمت گرم بابا....اگه آدرس رو بدونم کل برنامه رو منطبق بر اون آدرس آماده می کنم همین جا میزارم بری و حالش رو ببری
برای این که برنامه رو مثلا خودم بنویسم توی میکرو پایههای SCL , SDA به ترتیب کدوم خروجی و کدوم ورودی یا اصلاً هر دو ورودی یا هر دو خروجی تعریف میشه؟(تو codewizard)
ویرایش توسط medadnoki : 13-04-2012 در ساعت 00:44
عزیز دل من اون آدرس پیش فرض رو دیدم ولی بعضی وقت ها اون آدرس درست نیست
حالا شما یا کاری رو که من گفتم رو بکنید یا اینکه دیگه خودت میدونی .
ای خدا ...تازه تو پست پنجم برای دانلود گذاشتم
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
چشم مهندس چرا عصبانی میشی؟
شما جایه استاده ما هستید و ما شاگرد...........حمل بر کم تجربگی بنده بزارید ، قربان!
اگر اشتباهی کردیم شما ببخشید.....
<<در اولین فرصت خبرشو میدم>>
سلام
ظاهرا تعداد زیادی از دوستان با راه اندازی این ماژول یعنی SRF02 مشکل دارن.
میخوام یکبار برای همیشه مشکل رو حل کنم
در پاسخ دوستمون 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
اینم یه تابع برای راه اندازی این ماژول با I2C به زبان C در کدویژنکد:$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
روش استفاده از هر کدوم کاملا واضحه ولی اگر بازم جای سوالی بود در خدمتم.کد: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; }
دوستان توجه داشته باشن که تمامی کد های بالا رو از تو برنامه های خودم در آوردم و گذاشتم این جا پس مطمئن باشین که کار میکنن فقط کافیه یه مقدار سعی کنید تا ازشون جواب بگیرین.
به امید این که روزی برسه که همه اطلاعاتشون رو به اشتراک بزارن
ویرایش توسط amiraliforoozandeh : 13-04-2012 در ساعت 11:31
به امید این که روزی برسه که همه اطلاعاتشون رو به اشتراک بزارن
من دیگه این تاپیک رو ادامه نمیدم دوستمون زحمتش رو کشیدن دیگه (من موندم یا من به سوالات نمی تونم درست جواب بدم یا دنیا عوض شده) .
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
من دارم با سوال کننده مرحله مرحله پیش میرم (به تاریخ های ارسال دقت کنید) دیگه دیگه نیازی نیست که یهویی شما بیاین و یک دست بودن موضوع رو تغییر بدین .
اگه دقت میکردین سوال کننده کد زبان سی میخواد نه زبان بسیک . درثانی من اشاره کرده بودم که کتابخونه کاملی رو برای این تیپ ماژول ها آماده دارم فقط کامل می خوام فیکسش کنم تحویلشون بدم .
میدونم هدف شمام کمک بوده حرفی توش نیست ولی چون من خاصیتم اینه که به شدت به نظم مطالب اهمیت میدم اینه که دوست دارم وقتی موضوعی آماده میشه و قراره ایشالا در آینده راه گشای خیلی ها باشه, یه دست باشه .
بعضی مواقع برای برخی سوالات کاربران من راه حل قطعی ندارم اون موقع خب همه میان نظر میدن ولی وقتی کاربری راه حل قطعی داره به نظرم بقیه باید ببینن طرف چیکار می کنه بعدش اگه دیدن به جایی نرسید راه کارهای خودشون رو ارائه بدن (البته این نظر شخصی منه)
اگه چند ماه دیگه یه بنده خدایی این مشکل رو داشته باشه و این تاپیک رو پیدا کنه جان من گیج نمیشه ؟
الان سوال کننده اصلی داره با پیغام خصوصی جوابش رو از من میگیره و حتما جوابش رو میدم .(والا موندم چی بگم ....)
سادگی نهایت کمال است
یه مدتی میشه که نیستم... ولی به زودی بر می گردم...
سلام من هم این ماژول را دارم ولی هنوز نتونستم راه اندازیش کنم چندتا سوال دارم اولا اینکه چطوری مسافت رو روی 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); } }
ویرایش توسط mohsen_bmw : 26-08-2012 در ساعت 18:45