bp
Jr. Member
Offline
Posts: 25
|
|
« on: February 16, 2011, 02:46:42 AM » |
|
ผมเขียนโปรแกรมติดต่อกับSim300ครับ เงื่อนไขคือ ปิกจะส่งคำสั่งAT commandมาให้Sim300เพื่อนให้โทรออกครับ ผมติดปัญหาตรงที่ ผมทดลองสั่งงานSim300จาก Hyperterminalได้ปกติครับ แต่พอให้PICสั่งมันกลับไม่มีการโทรออก เงียบไปเฉยเลยครับ ด้านล่างเป็นcodeที่ผมเขียนใส่ในpicครับ ท่านใดเคยลองลิงค์sim300กับpicช่วยแนะนำด้วยครับ ผมใช้บอดเรท ที่9600 flowcontrol แบบ xON xOFFแล้วครับ
#include <16F628A.h> #fuses XT,NOWDT,NOLVP,NOPROTECT #use delay(clock=4MHZ) #use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1)
#define on 1 #define off 0
#define PRESS 0 #define NOPRESS 1 #define SENSER input(pin_B0) #define Timer() delay_ms(500) #define OUTPUT(x) output_bit(pin_B4,x)
void main(void) { set_tris_b(0x0F); OUTPUT(off); int i; //char j = 0x0D;
while(true) { if(SENSER == press) { if(i == 10) { if(SENSER == press) { printf("ATD0853640074;\r\n"); // ATCOMMAND FOR CALLNG. OUTPUT(on); Timer(); OUTPUT(off); while(SENSER == press); } } else { i++; } } else { i = 0; } } }
|
|
|
Logged
|
|
|
|
gundam
|
|
« Reply #1 on: February 16, 2011, 08:33:14 AM » |
|
คุณให้ sim300cz ของใครครับ เช่น ETT,SILA หรือซื้อเฉพาะโมดูลมาต่อเอง เพราะทั้งสองค่ายที่ว่าจะมี CD ตัวอย่างมาให้แล้ว
เมื่อต่อกับ PC จะต้องผ่าน MAX232 ส่วนต่อกับ PIC สามารถต่อตรงได้ เมื่อเริ่มเปิดเครื่อง sim300cz รอจนมันขึ้นคำว่า Call Ready หรือยัง
ลองส่ง printf("AT\r\n"); ดูว่ามันตอบ OK หรือยัง ในโปรแกรมลองตัดส่วนที่ไม่จำเป็นออกก่อน
|
|
|
Logged
|
|
|
|
bp
Jr. Member
Offline
Posts: 25
|
|
« Reply #2 on: February 16, 2011, 11:44:30 AM » |
|
ผมใช้ของETTครับ ผมลิ้งค์ SIM300 กับ pic ผ่าน max232 ครับไม่ได้ต่อตรงครับ ตอนทดสอบกับ Hyperterminal ก็ call ready แล้วครับ
|
|
|
Logged
|
|
|
|
bp
Jr. Member
Offline
Posts: 25
|
|
« Reply #3 on: February 16, 2011, 11:56:32 AM » |
|
ผมไม่มีCDตัวอย่างครับมันเป็นบอร์ดของอาจารย์ที่ปรึกษาครับเขาทำซีดีหายครับ ผมพยามหาโหลดอยู่ครับยังไม่เจอครับ
|
|
|
Logged
|
|
|
|
mcuprojects
|
|
« Reply #4 on: February 16, 2011, 12:16:01 PM » |
|
#include <16F628A.h> #fuses XT,NOWDT,NOLVP,NOPROTECT #use delay(clock=4MHZ) #use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1)
void main (void) { printf("ATD0853640074;\r"); // \r หมายถึง <Enter> while(true); }
|
|
|
Logged
|
|
|
|
bp
Jr. Member
Offline
Posts: 25
|
|
« Reply #5 on: February 18, 2011, 01:16:24 PM » |
|
ยังไม่โทรออกอยู่ดีครับ หรือเป็นเพราะว่าผมลิ้งค์ Sim300 ผ่าน mxa232 ครับ รบกวนอีกอย่างครับในซีดีคู่มือนั่นมืออะไรบ้างครับ หาไม่เจอจริงๆครับ รบกวนด้วยครับ
|
|
|
Logged
|
|
|
|
MicroX
|
|
« Reply #6 on: February 18, 2011, 02:06:48 PM » |
|
- ประการแรก คุณต่อกับ Hyperterminal สามารถโทรออกแล้วใช่ไหมครับ แสดงว่าทุกอย่างพร้อม - การต่อกับ MCU กับบอร์ด Sim300 โดยต่อผ่าน PIC<->MAX232-------MAX232<->Sim300 สามารถทำได้ครับ หรือต่อกันโดยตรง PIC<->Sim300 ก็สามารถทำได้ครับ - ให้คุณลองต่อกับ PC โดยใช้ Hyperterminal แล้วรอจนมันขึ้นคำว่า Call Ready แล้วจึงย้ายสายมาเสียบกับ PIC โดยจ่ายไฟให้ PIC ก่อน เสียบสาย RS 232 แล้วกด reset
ใน main เขียน code ดังนี้
delay_ms(200); printf("\r"); delay_ms(500); printf("ATD0853640074;\r"); delay_ms(1000); while(1);
|
|
« Last Edit: February 18, 2011, 03:51:05 PM by microx »
|
Logged
|
|
|
|
|
bp
Jr. Member
Offline
Posts: 25
|
|
« Reply #8 on: February 21, 2011, 02:33:06 AM » |
|
ได้แล้วครับ ต่อตามรูปถึงออกครับ ผมลืมสลับสายกับ จั๊มขา 1 เข้ากับขา 4,6 ครับ
|
|
|
Logged
|
|
|
|
wordman
|
|
« Reply #9 on: May 06, 2011, 10:03:59 AM » |
|
ขอความเห็นคุณ bp ผมต่อกับบอร์ดทดลอง NX-877 plus ยังไม่ได้ครับ #include <16F877.h> #include <stdio.h> #define TxD PIN_C6 #define RxD PIN_C7 #define CLOCK_SP 20000000
#fuses HS, NOLVP, NOWDT, NOBROWNOUT, NOPROTECT #use delay (clock=CLOCK_SP) #use rs232 (baud=9600, xmit=TxD,rcv=RxD) void main(void) { delay_ms(200); printf("\r"); delay_ms(500); printf("ATD0883789770;\r"); delay_ms(1000); while(true);
}
|
|
|
Logged
|
|
|
|
wordman
|
|
« Reply #10 on: May 06, 2011, 10:20:22 AM » |
|
ขอความเห็นคุณ bp ผมต่อกับบอร์ดทดลอง NX-877 plus ยังไม่ได้ครับ #include <16F877.h> #include <stdio.h> #define TxD PIN_C6 #define RxD PIN_C7 #define CLOCK_SP 20000000
#fuses HS, NOLVP, NOWDT, NOBROWNOUT, NOPROTECT #use delay (clock=CLOCK_SP) #use rs232 (baud=9600, xmit=TxD,rcv=RxD) void main(void) { delay_ms(200); printf("\r"); delay_ms(500); printf("ATD0883789770;\r"); delay_ms(1000); while(true);
} สายที่ใช้เป็นตัวผู้ทั้งสองด้าน ผมต่อตามรูปทั้งสองด้านแล้วก็ยังไม่ได้ แต่ถ้าเอาสายที่มีขายทั่วไปต่อเข้า PC ใช้ Hyper ดูก็ออกตามปกติ แต่ใช้สายที่ทำเอง ต่อกับ SIM300 นิ่งเลยครับ ขอความช่วยเหลือทุกๆท่านครับผม
|
|
|
Logged
|
|
|
|
|