توی پروتل یا پروتیوس قطعه ی SIM300 و یا سایر ماژول های این سری وجود ندارن. من خودم برای SIM300cz شماتیک و PCB زدم.
اینم از پیوست فایلها :
.
اینم فایل پروتئوس من:
تو قسمت library کپی کن.
مدارو که بستی،دیگه مشکلی نداری..دستوراتی که میخوای رو از دیتاشیت میخونی،میزنی،جواب میگیری،بعدشم بسته به جوابش،برنامه رو مینویسی...هر مشکل دیگه ای هم داشتی،ما در خدمتیم
این جور چیزا رو یاد بگیر خودت رسم کن..خیلی کارتو راحت تر میکنه..جفتشو من خودم رسمیدم از رو دیتاشیت
سلام مدار sim900 رو بستم .خازن تقریبا 2000میکرو فاراد گذاشتم . بعد از آداپتور شارژر نوکیا 5 ولت .350میلی آمپر استفاده کردم .که از دیود 1n4007 گذاشتم سر راهش .پین powerky رو که صفر کردم .netlight شروع کرد پشمک زدن تند تند .بعد همینجوری روشن موند .دفعه بعد پشمک زد خاموش موند .گفتم شاید منبع جریان نمیده و.... از این آداپتورها استفاده کردم که رنج متغیر داره .حداکثر یه آمپر جریان میده .گذاشتم 4.5 ولت .وصل کردم .روشن نشد .بعد باز آداپتور نوکیا رو وصل کردم باز روشن نشد . 6 تا خازن 47 میکرو دیگه موازی کردم باز نشد .کلا دیگه led netlight که به پایه مربوطه وصل کردم روشن نمیشه .ولی همیشه ماژول داغ میشه ، که بنظرم غیر طبیعیه . رو پایه poweky هم یه ولتاژ کمی هست فکر کنم در حد 2و3 ولت . لطفا کمکم کنید . خیلی حیاتیه واسم . بنظرتون ماژول سوخته ؟ چه جوری میشه تست کرد که سالمه یا نه . این بود مصیبت نامه من .سیم کارتی که استفاده کردمم همراه اوله .زنگم بهش میزنم میگه خاموش .
رفیق متاسفم برات...اگه داغ میکنه،یعنی ماژولت سوخته...زیاد ناراحت نشو..همه مون سوزوندیم..من به شخصه 3تا سوزوندم...آداپتورها که رنج متغیر دارن،ولتاژ رگوله شده ی درست حسابی نمیدن..اصلآ نباید ازونا استفاده کنی..همون سوزونده..(معمولآ از ترانس و یکسو کننده تمام موج و 1خازن تشکیل شدن)
اول که خاموش شد،دلیلش کم بودن جریان آداپتورت بود...حداقل 1 آمپر باید جریان بده..بعدشم با اونیکی آداپتور سوزوندیش..1آداپتور ولتاژ ثابت جریان بالا بگیر...
تست سالم بودنشم اینه که با مولتی متر پایه های vcc و gnd ماژول رو چک کن ببین اتصال کوتاه شدن یا نه...
ماژولهای gsm and gps برای پیدا کردن آنتن تا 2 آمپر جریان میخوان.
اینکه ماژول داغ میکنه ممکنه سوخته باشه! البته ماژولی که استفده میکنم، خیلی کم گرم میشه...
pcb رو خوردوتن طراحی کردید؟
رفیق وقتی منبع بش وصله،اینکه اتصال کوتاه میشه،نمیتونه کلآ ولتاژ ورودیشو صفر کنه که...ولی ولتاژ ورودیشو میاره پایین..اگه داغ میکنه،دیگه تست نمیخواد..بیخیالش شو..ماژول خیلی حساسه..هرکاری خواستی باش بکنی،قبلش تو سایت مطرح کن
اگه به ورودی 7805 ولتاژ 12ولت بدی و lcd وصل کنی به 7805 و نور زمینه شو روشن کنی،رگولاتور انقد گرم میشه که دستتو میسوزونه...رفیق پس با مولتی متر تست کن
سلام دوستان بابت مطالب مفیدی که تو سایت میزارین ممنون مخصوصا آقای صفائیان, من بدنبال طراحی دزدگیر با ماژول sim 300هستم برنامش وکار هاشو نوشتم فقط یک مشکلی دارم اونم اینکه پیامی که برای ماژول میفرستم رو روی LCDنمایش میده ولی نمی تونم مثلا با فرستادن کد 1 دزدگیر رو فعال کنم اگر کسی میتونه کمکم کنه ممنون می شم. انم ایمیلم farkhani007@gmail.comاینم برنامه ای که نوشتم
$regfile = "m32def.dat"
$crystal = 8000000
'--- config serial -------------------------------------------------------------
Ucsra = &B00000000
Ucsrb = &B00011000
Ucsrc = &B10000110
$baud = 2400
'--- config port ---------------------------------------------------------------
Ddra = 0 : Porta = 255
Config Portc = Output : Config Portd.6 = Output
'--- dim var as ----------------------------------------------------------------
Dim R(100) As Byte , N As Integer , Convert As Byte , New As Byte
Dim S(100) As String * 1 , Atc As String * 30 , Recive As Byte , Cle As Byte
Dim Flag As Bit , T As Byte , Sms1 As String * 1 , Sms2 As String * 1
Dim Shsms1 As Byte , Shsms2 As Byte , Flag2 As Bit , Command(5) As String * 1
Dim Tel(15) As String * 1 , His(15) As String * 1 , Temp As Byte
'--- config lcd ----------------------------------------------------------------
Config Lcd = 16 * 2
Config Lcdpin = Pin , Rs = Portb.0 , E = Portb.2 , Db4 = Portb.4 , _
Db5 = Portb.5 , Db6 = Portb.6 , Db7 = Portb.7
Cursor Off
Cls
Lcd "HELLO"
Wait 1
'--- SEND ----------------------------------------------------------------------
Print "AT"
Gosub Get_data
Waitms 1000
Print "AT"
Gosub Get_data
Waitms 1000
'Print "AT"
'WAITMS 600
Print "AT+CMGD=1"
Gosub Get_data
Waitms 1000
Print "AT+CMGD=2"
Gosub Get_data
Waitms 1000
'Print "AT+CMGD=3"
'Waitms 600
'Print "AT+CMGD=4"
'Waitms 600
'Print "AT+CMGD=5"
'Waitms 600
Ucsra.7 = 0
'--- RESIVE --------------------------------------------------------------------
Do
If Pina.0 = 0 Then
L1:
If Pina.0 = 0 Then : Goto L1 : End If
Cls
Lcd "ROBBER IN HOME(1)"
Atc = "1"
Flag = 0
Gosub Send
Portc.0 = 1
End If
If Pina.1 = 0 Then
L2:
If Pina.1 = 0 Then : Goto L2 : End If
Cls
Lcd "ROBBER IN HOME(2)"
Atc = "2"
Flag = 0
Gosub Send
Portc.0 = 1
End If
If Pina.2 = 0 Then
L3:
If Pina.2 = 0 Then : Goto L3 : End If
Cls
Lcd "ROBBER IN HOME(3)"
Atc = "3"
Flag = 0
Gosub Send
Portc.0 = 1
End If
If Pina.3 = 0 Then
L4:
If Pina.3 = 0 Then : Goto L4 : End If
Cls
Lcd "ROBBER IN HOME(4)"
Atc = "4"
Flag = 0
Gosub Send
Portc.0 = 1
End If
If Pina.4 = 0 Then
Portc.0 = 0
Cls
Lcd "HOME IS SAFE"
End If
If Ucsra.7 = 1 Then
Gosub Get_data
End If
Loop
Send:
Print "AT"
Gosub Get_data
If S(1) <> "O" Or S(2) <> "K" Then
Goto Send
End If
Cls
Lcd "YES"
If Flag = 0 Then
Print "AT+CMGS=" ; Chr(34) ; "09398931522" ; Chr(34)
Waitms 100
Print Atc ; Chr(26)
Else
If Flag2 = 0 Then
Print "AT+CMGR=" ; Sms1 ; Sms2
Else
Print "AT+CMGR=" ; Sms1
End If
N = 0
Do
If Ucsra.7 = 1 Then
Incr N
Toggle Portd.6
R(n) = Udr
New = R(n)
If New <> 10 And New <> 13 Then
S(n) = String(1 , New)
End If
If R(n) = 13 And S(n - 1) = "K" And S(n - 2) = "O" Then
Cls
Lcd " ---ok--- "
For New = 1 To N
If S(new) = "," Then
Convert = New + 3
Temp = Convert + 11
Cls
For T = Convert To Temp
Tel(t) = S(t)
Locate 1 , T
Lcd Tel(t)
Next
Convert = Convert + 17
Temp = Convert + 14
For T = Convert To Temp
His(t) = S(t)
Locate 2 , T
Lcd His(t)
Next
Convert = 0
For New = 1 To 13
Lcd His(new)
Next
For T = 1 To 13
Locate 2 , T
Lcd Tel(t)
Next
Waitms 600
Print "AT+CMGD=" ; Sms1
Waitms 600
Ucsra.7 = 0
Return
End If
Next
Ucsra.7 = 0
Return
Exit Do
End If
End If
Loop
End If
Return
Get_data:
N = 0
Do
If Ucsra.7 = 1 Then
N = N + 1
Toggle Portd.6
R(n) = Udr
New = R(n)
If New <> 10 And New <> 13 Then
S(n) = String(1 , New)
Elseif New = 10 Then
N = 0
Portd.6 = 0
Return
End If
Ucsra.7 = 0
If R(n) = 13 Then
Cls
New = N - 1
For Convert = 1 To New
If Convert =< 16 Then
Locate 1 , Convert
Else
Cle = Convert - 16
Locate 2 , Cle
End If
Lcd S(convert)
Next
Portd.6 = 0
New = N - 1
For T = 1 To New
'Print T
If S(t) = "," And R(t -2) = 77 And R(t -3) = 83 Then
Sms1 = "" : Sms2 = ""
Convert = T + 1
Sms1 = S(convert)
Shsms1 = Val(sms1)
Convert = Convert + 1
If Convert = New Then
Sms2 = S(convert)
Shsms2 = Val(sms2)
Flag2 = 0
Else
Flag2 = 1
End If
Cls
Lcd "RESIVE SMS " ; Shsms1 ; Shsms2
Wait 1
Cls
Flag = 1
Gosub Send
Return
End If
Next
Return
End If
End If
Loop
Return
رفیق اگه c بود بیشتر میتونستم کمکت کنم...باید کاراکترهای پیام رو بخونی و ببینی از کدوم شماره یا بعد چه کاراکترهای ثابتی پیامت شروع میشه،بعدش دستور کنترلیت رو بخونی...
هر سری هم که میخوای پیام رو بخونی،باید بافر مربوطه رو خالی کنی..
من اینجوری نوشته بودم که ارتباط سریال رو غیرفعال می کردم و هر سری که میخواستم چیزی بخونم،فعال میکردم و بعدش دوباره غیر فعال..که بافرش خالی باشه
ببینین روی همون کاراکترهایی که دریافت میکنین و میتونید که نمایش بدین باید پردازش انجام بدین و کاراکتر مورد نظرتون رو تشخیص بدین و بعد کارتون رو انجام بدین.
این پردازش یکم فکر و وقت لازم داره. فقط همین. مهم اینه که اون کاراکتر مورد نظر رو تشخیص بدین
پروژه های مهم من در ایران میکرو:
" انتقال اطلاعات با SIM900 " ، " آموزش پورت USB " ، " راه اندازی MFRC522 " ، " راه اندازی SLE4442 " ، ""
عطف به اینکه گفته بودین هر کاری خواستی کنی تو سایت مطرح کن یه ماژول جدید گرفتم واسه تغذیه اش هم از lm317t که متغیره استفاده کردم یه مقاومت 2.2 کیلو فیدبک پایه خروجی و adjust و مقاومت 4.7 کیلو adjust تا زمین . پروتیوسش پیوست شده . یه مولتی متر هم خریدم از این 10 تومنی ها که مصیبت گذشته تکرار نشه . (جالبه که ولتاژ دو سر آداپتور نوکیا که روش نوشته 5 ولت و نشون میده 8.5 ولت !!!! تف به اینهمه دروغ ، همه جا پره از دروغ حتا رو آداپتور) یه تی شرتم خریدم
از بیمزه بازیها بگذریم حالا من این ولتمتر و میزنم دو سر خروجی lm317t ولتاژ ناامید کننده و گیج کننده ای نشون میده .وقتی ورودی 8.5 هست خروجی 6.45 یا وقتی ورودی 13 -20-10 هست به ترتیب خروجی 7.25 -7.88-6.9 هست که اصلا با فرموله دیتا شیت و شبیه سازی جور در نمیاد !!!!! این چه جور رگولاتوریه !!!! ولی وقتی سر خروجی یه مقاومت میذارم فرقم نمیکنه 330 اهم یا 2.2 کیلو ولتاژ خروجی میشه 4.1 ولت که دقیقا برابر شبیه سازی و فرموله . من اصلا نمیفهمم ایراد از چیه ؟ خروجیش و وصل کنم به ماژول؟نسوزه باز؟ قلبم طاقت یک سوزش ناجوانمردانه رو نداره ها . چیکار کنم؟ لطفا کمک .
قبلا توضیح داده شده بود ولی حساب میکنیم که تاپیک طولانی شده و وقت شما هم خیلی خیلی پره و نمیتونید سرتون رو بخارونید.
lm317 برای کارکرد صحیح باید حتما حداقل جریانی ازش کشیده بشه. من یک 1کیلو در خروجیش قرار میدم معمولا. در دیتاشیت هم توضیح داده. وقتی ثابت شد و مطمئن شدین که دیگه تغییر نمیکنه اونوقت تا بیشتر از 1 آمپر هم ثابت میمونه ولتاژ
پروژه های مهم من در ایران میکرو:
" انتقال اطلاعات با SIM900 " ، " آموزش پورت USB " ، " راه اندازی MFRC522 " ، " راه اندازی SLE4442 " ، ""
احتمالآ دلیل اینکه ولتاژ آداپتور رو زیاد نشون میده دلیلش اینه که آداپتورت سوئیچینگ نیست و ترانسی هست.
آقای صفامنش هم توضیح دادن...
pcb زدین؟
حتمآ آنتن رو بش وصل کنین و بعد روشن کنین..
آداپتورتون جریان بیشتر از 1 آمپر میده؟
در حال کار بش دست نزنین که حساس به الکتریسیته ساکن هست
اتفاقا فکر می کنم چون منبع تغذیه سوئیچینگ هست اینطور نشون میده! معمولا ولتاژ خروجی منابع تغذیه سوئیچینگ باید تحت بار اندازه گیری بشه وگرنه مقدار بیشتری نشون داده میشه.(جالبه که ولتاژ دو سر آداپتور نوکیا که روش نوشته 5 ولت و نشون میده 8.5 ولت !!!! تف به اینهمه دروغ ، همه جا پره از دروغ حتا رو آداپتور)
.