ايران ويج

نسخه‌ی کامل: مشکل ارسال sms با mega32
شما در حال مشاهده‌ی نسخه‌ی متنی این صفحه می‌باشید. مشاهده‌ی نسخه‌ی کامل با قالب بندی مناسب.
صفحه‌ها: 1 2 3 4 5 6
[/php][/align]سلام به همه دوستان
من یک مشکل دارم و اون اینکه نمی تونم با mega32 یک sms ساده بفرستم. من دستورات ارسال sms رو در هایپر ترمینال چک کردم . ترتیب و توالیش درسته . ولی روی GSM جواب نمی ده . لطفا منو راهنمایی کنید .
در ضمن کدهای من خیلی ساده هستش . اینتراپت رو هم فعال کردم ولی باز نتیجه نگرفتم .
تمنها چیزی که من از برنامه فهمیدم این بود که شمار تلفنتو لو دادی!


منظورتون از GSM چیه؟ از ماژولش استفاده میکنین؟
این خروجی های سریال میکرو رو به کجا میدین؟
ممنون از توجهتون

نگزان نباشید. اون شماره تلفن واقعی نیست . دست کم شماره من نیست!
برای اینکه خروجی آر اس 232 داشته باشم . از یک مکس 232 استفاده کردم .
حالا دستورات رو به شکل مناسب توی هایپرترمینال می بینم. حتی می تونم با اون شماره بگیرم . ولی نمی تونم اس ام اس بفرستم.
ضمنا منظورم از GSM مودمیه که بیرون تحت عنوان GSM میفروشند . یعنی قبلا میکروی اون رو پروگرام کردند. یک درگاه آر اس 232 داره و جایی برای نصب سیم کارت و همینطور محل اتصال اداپتور و آنتن .
به نظر شما اشکال کجاست ؟
در انتها بعد از نوشتن متن ارسالی باید دو کاراکتر
chr(26)
-
chr(13
را هم ارسال کنید تا sms ارسال شود
ممنونم از عنایتتون جوکر عزیز

سعی می کنم سریع تست کنم . ولی جالبه که برای زنگ زدن (Call) فقط یک دستور Print قبل از عبارت "....ATD09" کافی بود . 035
سلام
من دو تا اشتباه داشتم
1 ) RX و TX رو اشتباه بسته بودم .
2 ) تنظیم فیوز بیت ها خیلی خیلی خیلی خیلی مهمه .
یعنی تا زمانی که از اسیلاتور داخلی استفاده نکردم ، جوابـــــــــــــــــــ. . . . نگرفتم . و
و ندیدم کسی به این موضوع اشاره کنه .
دوستان عزیزم . مثل من دوهفته سرکار نمونیدها !
در مجموع ، بد قلق تر از این میکروها فقط خودشون هستند .
ضمنا نیازی به (13)chr هم نیست . چون دستور پرینت خودش نوعی اینتر هست .

از توجهتون بسیار سپاسگزارم .
با سلام
ممنون میشم یه مقدار در مورد gsm استفاده شده توضیح بدید.
نقل قول: ضمنا نیازی به (13)chr هم نیست . چون دستور پرینت خودش نوعی اینتر هست

دوست عزیز در کامپایلر بیسکام , وقتی از دستور Print استفاده میکنید
در آخر یک کد اینتر یا همان 13 را خود به خود ارسال میکند
ولی در کامژایلرهای دیگر مثل کدویژن
باید حتما این کد اعمال شود

نقل قول: من دو تا اشتباه داشتم
1 ) RX و TX رو اشتباه بسته بودم .
2 ) تنظیم فیوز بیت ها خیلی خیلی خیلی خیلی مهمه .
یعنی تا زمانی که از اسیلاتور داخلی استفاده نکردم ، جوابـــــــــــــــــــ. . . . نگرفتم . و و ندیدم کسی به این موضوع اشاره کنه .

دو تا سوال از شما دارم :
1-شما پایه های TX , RX ماژول را مستقیم به میکرو وصل کردید یا از آی سی MAX232 استفاده کردید
2-شما فیوز بیتها را در چه حالاتی تنظیم کردید؟
منظورتون فیوز بیتهای کلاک هست؟ میتونید تنظیمات را قرار دهید

به نظر شما نبایداز کریستال استفاده کرد و از نوسان داخلی میکرو بهره گرف؟
روی چه فرکانسی فیوز بیت را تنظیم کردید؟
سلام.
قبلا که یه ماژول SIM900 راه اندازی کردم متوجه شدم این ماژول نسبت به تغذیش خیلی حساس هست و اگر 0.1 هم کم یا زیاد بشه مشکل پیش میاد.
برای اتصال به PC حتما باید از MAX232 استفاده کرد ولی واسه میکرو نیاز به این کار نیست چون سطحش TTL هست.
سوم اینکه مقدار Delay که بین دستورات استفاده میکنید خیلی مهم هست.
پایه RX هم حتما باید پول داده بشه.
فیوز بیتها هم نمیخواد دستکاری بشه فقط اگر از کریستال خارجی میخواید استفاده کنید مسلما باید اینو واسه میکرو مشخص کنید در غیر اینصورت باید 8000000 قرار بدید و ....
همونطور که گفتین اینتر لازم نیست چون توی دستور Print در بسکام اتوماتیک اینتر زده میشه...
سلام دوست عزیز
ممنون برای پسختون

پ.ن: فرموده بودید که میزان دیلی خیلی مهم است
مقدار دیلی را چه مقدار اندازه بگیریم (فرکانس همان 8000000)
یکی از دوستان waitms500 را پیشنهاد داد یا همان 500 میلی ثانیه
دوست دیگری waitms50 را پیشنهاد داد
من دو به شک شدم کدام درست میگن

----------------------------
این دو فرم برنامه هست با وقفه های پیشنهادی
نظر شما چیه؟
بهترین وقفه به چه میزان هست؟

اگر وقفه دست نباشد و دقیق نباشد , چه اتفاقی میافتد؟؟؟

Print "at"
Waitms 50
Print "AT+CMGF=1"
Waitms 50
Print "AT+CMGS=" ; Chr(34) ; "09*********" ; Chr(34)
Waitms 100
Print "GSM Module Test" ; Chr(26)


Print "at"
Waitms 500
Print "AT+CMGF=1"
Waitms 500
Print "AT+CMGS=" ; Chr(34) ; "09*********" ; Chr(34)
Waitms 100
Print "GSM Module Test" ; Chr(26)

در فرم وقفه 500 میلی ثانیه: فرکانس کاری با کریستال خارجی 6 مگاهرتز
بود. حالا اگر همان 8 مگاهرتز را انتخاب کنیم وقفه را چند قرار دیم بهتر است
سلام

شما دارید از چه ماژولی استفاده میکنید؟
فرکانس رو همون 8000000 بزارید و از یه حلقه loop استفاده کنید :

کد php:
do
Print 
"AT"
Waitms 500
Print "AT+CMGF=1"
Waitms 500
Print "AT+CMGS=" Chr(34) ; "09*********" Chr(34)
Waitms 100
Print "GSM Module Test" Chr(26)
Waitms 600
loop 

سعی کنید دستورات AT رو به حروف بزرگ تایپ کنید چون بعضی مواقع ماژول قاطی میکنه.
دلیل اینکه Delay مهم هست اینه که دستوری رو که واسه ماژول میفرستید مثلا همین دستور AT پاسخی رو از ماژول دریافت میکنید و تا زمانی که پاسخ از ماژول به میکرو فرستاده نشده اگر دستور دیگه ای رو به ماژول بفرستید ماژول اونو دریافت نمیکنه.دلیل اینکه تو حلقه گزاشتیم هم اینه که اگر بر حسب اتفاق یک بار دستورات درست ارسال نشد دوباره بفرسته.میتونید در اخر هم تست کنید اگر sms فرستاده شده بود از حلقه خارج بشه.
صفحه‌ها: 1 2 3 4 5 6