سلام . من چند روز پیش از فروشگاه eca ماژول em18 رو خریدم. الان پایه 1 رو به 5 ولت و پایه 3 رو به گراند داده ام.پایه 6 رو هم دادم به 5 ولت. ولی خروجی پایه 2همیشه روی 2.3 ولته. برای تست یه led به پایه 3 وصل کردم ولی جواب نمیده. کسی میتونه بگه مشکل از کجاست؟
اطلاعیه
Collapse
No announcement yet.
مشکل در راه اندازی ماژول em18
Collapse
X
-
پاسخ : مشکل در راه اندازی ماژول em18
این تاپیک چه ربطی به AVR داره؟ :-?
بگذریم ...
نوشته اصلی توسط hamedtahamtanپایه 1 رو به 5 ولت
نوشته اصلی توسط hamedtahamtanپایه 3 رو به گراند داده ام
نوشته اصلی توسط hamedtahamtanپایه 6 رو هم دادم به 5 ولت
نوشته اصلی توسط hamedtahamtanخروجی پایه 2همیشه روی 2.3 ولته.
موفق باشیدامام علی (علیه السلام) : الزکات العلم نشرهُ/ زکات علم نشر آن است
-
پاسخ : مشکل در راه اندازی ماژول em18
اولا که ممنون . تو دیتاشیتش برعکس نوشته بوددیا اون دیتاشیتی که دسته منه برای این مدل نیست احتمالا.
اما چند تا مشکل دیگه ای که اینجا بهشون بر خوردم رو اینجا بگم اگه کسی میدونه چرا راهنماییم کنه.
اولین مشکلم اینه: من این مدار بالا رو بستم و فقط ال ای دی رو مستقیم دادم به پایه 3. برای تغذیه هم از یه شارژر موبایل 5.5 ولت استتفاده کردم. زمانی که ماژول به تنهایی روی برده خوب کار میکنه و تا 10 سانتی متری جواب میده اما وقتی که میکروکنترلر رو به مدار اضافه میکنم دیگه بیشتر از 2 سانتی جواب نمیده.
مشکل دومم هم اینه که . این برنامه ای هست که من ازش استفاده میکنم.
کد:[code] $regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , _ Rs = Portb.5 , E = Portb.4 Dim E As Byte , P As Byte Dim C(12)as String * 1 Dim Code As String * 10 Cursor Off Do Cls : Lcd "<<insert Card>>" Step1: Incr E C(e) = Waitkey() If E < 12 Then Goto Step1 For E = 1 To 12 Incr P Mid(code , P , 1) = C(e) Next E = 0 : P = 0 Cls : Lcd Code Wait 4 Loop
وقتی که من کارت رو میگیرم بالاش این کد رو نشون میده030090a92b00 اگه صبر کنم تا زمانی که ویت 4 ثانیه تموم شه و کارت رو دوباره بکشم همین رو نشون میده اما اگه در زمان همون wait دوباره بکشم عدد دفعه بعدی اینطوری تغییر می کنه 030030090a92 و بعد از اون هر بار که کارت بکشی این عدد رو نشون میدهb00030090a92
و مورد سوم هم اینکه این دو عدد اول که میگن تو همه کارتا یکیه باید دقیقا چند باشه؟ یه جا نوشته بود 2f اما برای من 03 هست
چهارم هم اینکه 2 تا پایه برای آنتن داره. من هیچ جا ندیدم براش آنتن بگذارن. اما ااگه من بخوام برای امنیت بیشتر خود دستگاه رو جدا بگذارم و فقط آنتنش رو بیارم بیرون امکان پذیر هست؟
در مورد رشته هایی که میگیره هم آیا امکانش هست که اونها رو به عدد تبدیل کرد؟
دیدگاه
-
پاسخ : مشکل در راه اندازی ماژول em18
برو تو هلپ بسکام و دستور
config serial in
رو سرچ کن
با این دستور هر زمان که وقفه سخت افزاری روی پورت سریال اتفاق بیوفته برنامه ی مورد نظرت رو انجام میده
اونجا میتونی با انجام یه سری تاخیر ها عملا 4 ثانیه رو رد کنی و مشکلت حل بشه
در ضمن تا با بسکام حرفه ای نشدی هرگز از دستوراتی مانند:
کد:Enable Urxc On Urxc S1
با اون دستوراتی که نوشتی ، عملی که میخوای به خوبی انجام میشه اما فقط کافیه بعد از کارت کشیدن به هر دلیلی دوباره اطلاعات کارت رو بخونه تا خروجی اطلاعاتت به هم بریزه
دیتا شیت میکرو یا راهنمای بسکام رو حتما بخون
دیدگاه
-
پاسخ : مشکل در راه اندازی ماژول em18
خیلی ممنون از راهنماییتون اما با استفاده از این دستوری که شما گفتید راه نیافتادم(نفهمیدم چیکارش کنم.
اگه میشه دوستان به سوال هایی که گذاشتم جواب بدن.
نوشته اصلی توسط hamedtahamtanاولا که ممنون . تو دیتاشیتش برعکس نوشته بوددیا اون دیتاشیتی که دسته منه برای این مدل نیست احتمالا.
اما چند تا مشکل دیگه ای که اینجا بهشون بر خوردم رو اینجا بگم اگه کسی میدونه چرا راهنماییم کنه.
اولین مشکلم اینه: من این مدار بالا رو بستم و فقط ال ای دی رو مستقیم دادم به پایه 3. برای تغذیه هم از یه شارژر موبایل 5.5 ولت استتفاده کردم. زمانی که ماژول به تنهایی روی برده خوب کار میکنه و تا 10 سانتی متری جواب میده اما وقتی که میکروکنترلر رو به مدار اضافه میکنم دیگه بیشتر از 2 سانتی جواب نمیده.
مشکل دومم هم اینه که . این برنامه ای هست که من ازش استفاده میکنم.
کد:[code] $regfile = "m16def.dat" $crystal = 8000000 $baud = 9600 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , _ Rs = Portb.5 , E = Portb.4 Dim E As Byte , P As Byte Dim C(12)as String * 1 Dim Code As String * 10 Cursor Off Do Cls : Lcd "<<insert Card>>" Step1: Incr E C(e) = Waitkey() If E < 12 Then Goto Step1 For E = 1 To 12 Incr P Mid(code , P , 1) = C(e) Next E = 0 : P = 0 Cls : Lcd Code Wait 4 Loop
وقتی که من کارت رو میگیرم بالاش این کد رو نشون میده030090a92b00 اگه صبر کنم تا زمانی که ویت 4 ثانیه تموم شه و کارت رو دوباره بکشم همین رو نشون میده اما اگه در زمان همون wait دوباره بکشم عدد دفعه بعدی اینطوری تغییر می کنه 030030090a92 و بعد از اون هر بار که کارت بکشی این عدد رو نشون میدهb00030090a92
و مورد سوم هم اینکه این دو عدد اول که میگن تو همه کارتا یکیه باید دقیقا چند باشه؟ یه جا نوشته بود 2f اما برای من 03 هست
چهارم هم اینکه 2 تا پایه برای آنتن داره. من هیچ جا ندیدم براش آنتن بگذارن. اما ااگه من بخوام برای امنیت بیشتر خود دستگاه رو جدا بگذارم و فقط آنتنش رو بیارم بیرون امکان پذیر هست؟
در مورد رشته هایی که میگیره هم آیا امکانش هست که اونها رو به عدد تبدیل کرد؟
خوب در مورد مشکل قاطی کردن دیتا ها من خواستم از طریق وقفه استفاده کنم. از URXC استفاده کردم به این ترتیب
کد:$regfile = "m16def.dat" $crystal = 8000000 '$baud = 9600 'Config Serialout = Buffered , Size = 20 Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , _ Rs = Portb.5 , E = Portb.4 Dim E As Byte , P As Byte Dim C(12)as String * 1 Dim Code As String * 10 Dim X As Byte Cursor Off Enable Interrupts Enable Urxc On Urxc Getserial E = 0 Do Loop Getserial: Cls For E = 1 To 12 C(e) = Waitkey() Lcd C(e) Next E Return End
البته من تا حالا از این تابع استفاده نکردم. شاید من اشتباه ازش استفاده میکنم.
من خودم برای حل این مشکل ابتدا مشکلش رو پیدا کردم و بعد هم با یه روش که خودم خیلی باهاش حال نکردم حلش کردم.روشم رو میگم امادنبال یه روش بهترم لطفا کمک کنید.
برای این کار ابتدا گفتم از اونجایی که همه کارتها اولشون یکی هست و اینم خوندم اولش 0و3 بود ، توی حلقه ای که دیتا رو میگرفتم گفتم اگه دیتای اول و دوم رو گرفتی و دیدی 0 و 3 نبودن از اول بگیر که تا حدودی مشکل رو حل کرد اما فقط 50 درصد.
بعد از اون چک کردم و دیدم مشکل اصلی از اینه که وقتی دیتایی روی پرت سریال ارسال میشه ولی خونده نمیشه روی بافر سریال ریخته میشه و ما باید اون رو پاک کنیم.برای همین آخر برنامه با یه دستور مسخره بافر رو پاک کردم. فقط هم 3 تا کاراکتر توی بافر ریخته میشه منم همونقدر از بافر رو پاک میکنم. البته خودم اصلا با این دستور حال نکردم.که برنامه به این صورت در اومد
کد:$regfile = "m16def.dat" $crystal = 8000000 '$baud = 9600 'Config Serialout = Buffered , Size = 20 Config Com1 = 9600 , Synchrone = 0 , Parity = None , Stopbits = 1 , Databits = 8 , Clockpol = 0 Config Portd.6 = Input Portd.6 = 0 Config Lcd = 16 * 2 Config Lcdpin = Pin , Db4 = Portb.3 , Db5 = Portb.2 , Db6 = Portb.1 , Db7 = Portb.0 , _ Rs = Portb.5 , E = Portb.4 Dim E As Byte , P As Byte Dim C(12)as String * 1 Dim Code As String * 10 Cursor Off Dim X As Byte Do Cls : Lcd "<<insert Card>>" Locate 2 , 1 Step1: For E = 1 To 12 C(e) = Waitkey() If C(1) <> "0" Then Goto Step1 If E = 2 And C(2) <> "3" Then Goto Step1 Next E For E = 1 To 12 Incr P Mid(code , P , 1) = C(e) Next E = 0 : P = 0 Cls : Lcd Code Wait 4 For E = 1 To 4 X = Inkey() Next E Loop
بقیه سوال ها رو هم ممنون میشم جواب بدین. اونها هم تا حدودی تو حوضه همین AVR هستن دیگه. هر سوالی هم که مربوط به این انجمن نمیشه بگید تا تو انجمن مربوطه خودش بپرسم. ممنون
دیدگاه
دیدگاه