اطلاعیه

Collapse
No announcement yet.

GSM و ارتباط آن با AVR

Collapse
این موضوع برجسته شده است.
X
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    پاسخ : GSM و ارتباط آن با AVR

    نوشته اصلی توسط pouria71
    ماله من نبود همینجوری بدستم رسید که متاسفانه واسم کار نکرد :biggrin:
    بورد مشابه همین هست که همچیش ردیف باشه مثل تغذیه ماژول و خروجی txd و rxd داشته باشه ؟ (بدون نیاز به کل کل با مازول)
    بورد های فروشگاه سایت اینطور نیستن یا خیلی پایینترن یا خیلی بالاتر
    والا بورد هایی که سایت میزنه یا جاهای دیگه میفروشن باید جواب بده , ببین من با تعداد زیاد 900 کار کردم , شاید توی هر 200 تاش یه دونش دیوونه بازی در بیاره که تنفس مصنوعی میدم بش زنده میشه..
    من پیشنهاد میدم خودت بسازی ... چیز زیاد تری یاد میگیری داداش...

    دیدگاه


      پاسخ : GSM و ارتباط آن با AVR

      دوستان خواهشا کمک کنین
      من بوسیله یرنامه زیر پیامها رو براختی میخونم
      فقط میخوام قسمتی بهش اضافه بشه که بتونم پیامها رو به طور اتوماتیک بخونه
      یعنی زمانی که پیامی رسید وارد متغیر بشه و روی ال سی دی نمایش داده بشه
      اینم از برنامه:

      Print "AT+CMGR=1"
      Sms = ""
      G = 0
      A = 0

      Do
      B = Inkey()
      Select Case B
      Case 0:
      Case 13:
      Incr G
      If Sms <> "" Then
      A = 1
      Exit Do
      End If
      Case 10:
      If Sms <> "" Then
      A = 1
      Exit Do
      End If
      Case Else
      If G = 3 Then
      Sms = Sms + Chr(b)
      End If
      End Select
      Loop
      Cls
      Locate 2 , 1
      Lcd Sms
      Wait 3

      دیدگاه


        پاسخ : GSM و ارتباط آن با AVR

        نوشته اصلی توسط ali2590
        دوستان خواهشا کمک کنین
        من بوسیله یرنامه زیر پیامها رو براختی میخونم
        فقط میخوام قسمتی بهش اضافه بشه که بتونم پیامها رو به طور اتوماتیک بخونه
        یعنی زمانی که پیامی رسید وارد متغیر بشه و روی ال سی دی نمایش داده بشه
        اینم از برنامه:
        سلام رفیق
        نظر من اینه که به جای اینکه برنامه رو به این شکل بنویسی، به صورت وقفه ای کار کنی
        وقفه دریافت سریالت رو فعال کن و توی وقفه ی دریافت سریالت هر چیزی رو که میگیری رو بریز توی یه رشته . تو بیسکام تابعی به نام instr وجود داره که میتونی باهاش توی یک رشته یه عبارت رو جستجو کنی. تو هلپ بیسکام به شکل این تابع یه نگاه بنداز. بلد نیستم تو انجمنتون کد بزارم
        نحوه کد گذاشتن رو بهم بگو تا یه نمونه برنامه بهت بدم

        دیدگاه


          پاسخ : GSM و ارتباط آن با AVR

          نوشته اصلی توسط فین شین
          سلام رفیق
          نظر من اینه که به جای اینکه برنامه رو به این شکل بنویسی، به صورت وقفه ای کار کنی
          وقفه دریافت سریالت رو فعال کن و توی وقفه ی دریافت سریالت هر چیزی رو که میگیری رو بریز توی یه رشته . تو بیسکام تابعی به نام instr وجود داره که میتونی باهاش توی یک رشته یه عبارت رو جستجو کنی. تو هلپ بیسکام به شکل این تابع یه نگاه بنداز. بلد نیستم تو انجمنتون کد بزارم
          نحوه کد گذاشتن رو بهم بگو تا یه نمونه برنامه بهت بدم
          من این کار رو کردم , درسته اصولیه , اما بعضی وقتا میکرو دو سه تا وقفه با هم میخوره اذیت میکنه

          دیدگاه


            پاسخ : GSM و ارتباط آن با AVR

            سلام به همه دوستان
            من برد صنعتی sim900 رو از این فروشگاه خریدم در محیط نرم افزار indigo تستش کردم - هم پیام باهاش ارسال کردم به گوشیم و هم با هاش پیام دریافت کردم و همه چیزاز طریق کامپیوتر خوب است - حال مشکل اینجاست با میکرو کنترلر برنامه می دم چیزی ارسال نمی شه؟ وقتی نتیجه رو تو کامپیوتر می بینم در کل دیده می شه که میکرو داره حروف نامفهوم می فرسته - نرخ ارسال اطلاعات 9600 برای هر دو است. این هم برنامه به زبان c, basic :
            $regfile = "m8def.dat"
            $crystal = 1000000
            $baud = 9600
            Config Pind.2 = Input


            Do
            If Pind.2 = 0 Then
            Print "AT"
            Waitms 500
            Print "AT+CMGF=1"
            Waitms 500
            Print "AT+CMGS=" ; Chr(34) ; "09360000000" ; Chr(34)
            Waitms 100
            Print "HELLO MEHDI" ; Chr(26)
            Waitms 550
            End If
            Loop
            End
            ----------------------

            #include <mega8.h>
            #include <stdio.h>
            #include <delay.h>
            char enter=13;
            char double_quote=34;
            char ctrlz=26;

            void main(void)
            {
            PORTD=0X00;
            DDRD=0x00;
            UCSRA=0x00;
            UCSRB=0x18;
            UCSRC=0x86;
            UBRRH=0x00;
            UBRRL=0x26;

            while (1)
            {
            if(PIND.2==0){
            printf("AT%c",enter);
            delay_ms(500);
            printf("AT+CMGF=1%c",enter);
            delay_ms(500);

            printf("AT+CMGS=%c09360000000%c",double_ quote,double_quote,enter);
            delay_ms(100);

            printf("mehdi ravanbod%c",ctrlz);
            delay_ms(100);
            };
            };
            }

            ---------------------
            کسی از دوستان است کمک کنه ببینم مشکل از کجاست؟
            اگر دوستان پروژه عملی دارن خوشحال می شم برای بنده به اشتراک بذارن
            ممنون

            دیدگاه


              پاسخ : GSM و ارتباط آن با AVR

              نوشته اصلی توسط mehdiravanbod
              سلام به همه دوستان
              من برد صنعتی sim900 رو از این فروشگاه خریدم در محیط نرم افزار indigo تستش کردم - هم پیام باهاش ارسال کردم به گوشیم و هم با هاش پیام دریافت کردم و همه چیزاز طریق کامپیوتر خوب است - حال مشکل اینجاست با میکرو کنترلر برنامه می دم چیزی ارسال نمی شه؟ وقتی نتیجه رو تو کامپیوتر می بینم در کل دیده می شه که میکرو داره حروف نامفهوم می فرسته - نرخ ارسال اطلاعات 9600 برای هر دو است. این هم برنامه به زبان c, basic :
              $regfile = "m8def.dat"
              $crystal = 1000000
              $baud = 9600
              Config Pind.2 = Input


              Do
              If Pind.2 = 0 Then
              Print "AT"
              Waitms 500
              Print "AT+CMGF=1"
              Waitms 500
              Print "AT+CMGS=" ; Chr(34) ; "09360000000" ; Chr(34)
              Waitms 100
              Print "HELLO MEHDI" ; Chr(26)
              Waitms 550
              End If
              Loop
              End
              ----------------------

              #include <mega8.h>
              #include <stdio.h>
              #include <delay.h>
              char enter=13;
              char double_quote=34;
              char ctrlz=26;

              void main(void)
              {
              PORTD=0X00;
              DDRD=0x00;
              UCSRA=0x00;
              UCSRB=0x18;
              UCSRC=0x86;
              UBRRH=0x00;
              UBRRL=0x26;

              while (1)
              {
              if(PIND.2==0){
              printf("AT%c",enter);
              delay_ms(500);
              printf("AT+CMGF=1%c",enter);
              delay_ms(500);

              printf("AT+CMGS=%c09360000000%c",double_ quote,double_quote,enter);
              delay_ms(100);

              printf("mehdi ravanbod%c",ctrlz);
              delay_ms(100);
              };
              };
              }

              ---------------------
              کسی از دوستان است کمک کنه ببینم مشکل از کجاست؟
              اگر دوستان پروژه عملی دارن خوشحال می شم برای بنده به اشتراک بذارن
              ممنون
              این تست شده است داداش
              do
              If Pind.2 = 0 Then exit do
              loop


              Print "AT"
              Waitms 500
              Print "AT+CMGF=1"
              Waitms 500
              Print "AT+CMGS=" ; Chr(34) ; "09376927006" ; Chr(34)
              Waitms 500
              Print "Hello world" ; Chr(26)
              Waitms 600
              end

              دیدگاه


                پاسخ : GSM و ارتباط آن با AVR

                سلام - مرسی داداش
                انجام دادم ولی باز چیزی ارسال نشد - برنامه رو به شکل زیر تغییر دادم
                $regfile = "m8def.dat"
                $crystal = 6000000
                $baud = 9600
                Config Pinc.5 = Input
                Set Portc.5

                Do
                If Pinc.5 = 0 Then Exit Do
                Loop


                Print "AT"
                Waitms 500
                Print "AT+CMGF=1"
                Waitms 500
                Print "AT+CMGS=" ; Chr(34) ; "0936478****" ; Chr(34)
                Waitms 500
                Print "HELLO MEHDI" ; Chr(26)
                Waitms 600
                End


                :cry2:
                کریستا رو روی 6 مگا هرتز گذاشتم

                دیدگاه


                  پاسخ : GSM و ارتباط آن با AVR

                  این با c خودم تستش کردم (منتها من یکیسری برنامه تست شده رو تست کردم جواب نداد ولی این جواب داد)
                  فقط اگه از vcc ماژول کشیدی به میکرو، این vcc رو وقتی وصل کن که شبکه رو کامل شناخت.3
                  البته اینو از تاپیک ((پروژه کامل سیم 900 و موبایل)) از سایت ایران میکرو استفاده کردم با کمی خیلی جزیی!! تغییر.
                  کد:
                  /*****************************************************
                  This program was produced by the
                  CodeWizardAVR V2.04.4a Advanced
                  Automatic Program Generator
                  © Copyright 1998-2009 Pavel Haiduc, HP InfoTech s.r.l.
                  http://www.hpinfotech.com
                  
                  Project : 
                  Version : 
                  Date  : 2013/07/30
                  Author : NeVaDa
                  Company : 
                  Comments: 
                  
                  
                  Chip type        : ATmega32
                  Program type      : Application
                  AVR Core Clock frequency: 11.059200 MHz
                  Memory model      : Small
                  External RAM size    : 0
                  Data Stack size     : 512
                  *****************************************************/
                  
                  #include <mega32.h>
                  
                  // Alphanumeric LCD Module functions
                  #asm
                    .equ __lcd_port=0x1B ;PORTA
                  #endasm
                  #include <lcd.h>
                  #include <delay.h>
                  
                  // Standard Input/Output functions
                  
                  #include <stdio.h>
                  
                  
                  #define enter 0x0d
                  #define ctrl_z 0x1a 
                    
                  char sms_text[100]="hello";
                  
                  
                  // Declare your global variables here
                  flash char at_cmgs[]= {'A','T','+','C','M','G','S','=','"','+','9','8','9','1','*','*','*','*','*','*','*','*','"','\r'};
                   void wait_to_get(char ch)
                    {
                    while(ch != getchar()); 
                    }
                  void main(void)
                  {
                  // Declare your local variables here
                  
                  // Input/Output Ports initialization
                  // Port A initialization
                  // Func7=Out Func6=Out Func5=Out Func4=Out Func3=Out Func2=Out Func1=Out Func0=Out 
                  // State7=0 State6=0 State5=0 State4=0 State3=0 State2=0 State1=0 State0=0 
                  PORTA=0x00;
                  DDRA=0xFF;
                  
                  // Port B initialization
                  // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                  // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                  PORTB=0x00;
                  DDRB=0x00;
                  
                  // Port C initialization
                  // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                  // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                  PORTC=0x00;
                  DDRC=0x00;
                  
                  // Port D initialization
                  // Func7=In Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In 
                  // State7=T State6=T State5=T State4=T State3=T State2=T State1=T State0=T 
                  PORTD=0x00;
                  DDRD=0x00;
                  
                  // Timer/Counter 0 initialization
                  // Clock source: System Clock
                  // Clock value: Timer 0 Stopped
                  // Mode: Normal top=FFh
                  // OC0 output: Disconnected
                  TCCR0=0x00;
                  TCNT0=0x00;
                  OCR0=0x00;
                  
                  // Timer/Counter 1 initialization
                  // Clock source: System Clock
                  // Clock value: Timer1 Stopped
                  // Mode: Normal top=FFFFh
                  // OC1A output: Discon.
                  // OC1B output: Discon.
                  // Noise Canceler: Off
                  // Input Capture on Falling Edge
                  // Timer1 Overflow Interrupt: Off
                  // Input Capture Interrupt: Off
                  // Compare A Match Interrupt: Off
                  // Compare B Match Interrupt: Off
                  TCCR1A=0x00;
                  TCCR1B=0x00;
                  TCNT1H=0x00;
                  TCNT1L=0x00;
                  ICR1H=0x00;
                  ICR1L=0x00;
                  OCR1AH=0x00;
                  OCR1AL=0x00;
                  OCR1BH=0x00;
                  OCR1BL=0x00;
                  
                  // Timer/Counter 2 initialization
                  // Clock source: System Clock
                  // Clock value: Timer2 Stopped
                  // Mode: Normal top=FFh
                  // OC2 output: Disconnected
                  ASSR=0x00;
                  TCCR2=0x00;
                  TCNT2=0x00;
                  OCR2=0x00;
                  
                  // External Interrupt(s) initialization
                  // INT0: Off
                  // INT1: Off
                  // INT2: Off
                  MCUCR=0x00;
                  MCUCSR=0x00;
                  
                  // Timer(s)/Counter(s) Interrupt(s) initialization
                  TIMSK=0x00;
                  
                  // USART initialization
                  // Communication Parameters: 8 Data, 1 Stop, No Parity
                  // USART Receiver: On
                  // USART Transmitter: On
                  // USART Mode: Asynchronous
                  // USART Baud Rate: 9600
                  UCSRA=0x00;
                  UCSRB=0x18;
                  UCSRC=0x86;
                  UBRRH=0x00;
                  UBRRL=0x47;
                  
                  // Analog Comparator initialization
                  // Analog Comparator: Off
                  // Analog Comparator Input Capture by Timer/Counter 1: Off
                  ACSR=0x80;
                  SFIOR=0x00;
                  
                  // LCD module initialization
                  lcd_init(16);
                    // printf("%s%c",sms_text,Ctrlz); 
                    lcd_putsf("Start");
                    delay_ms(1000);
                    lcd_clear();
                  while (1)
                     {
                     // Place your code here
                      putsf(at_cmgs);
                       wait_to_get('>');
                      printf("%s%c",sms_text);
                      putchar(ctrl_z); 
                      lcd_putsf("Massage Sent");
                      delay_ms(1000);
                      lcd_clear();
                     };//EXT.CRYSTAL=11.0592
                  }

                  دیدگاه


                    پاسخ : GSM و ارتباط آن با AVR

                    سلام
                    متاسفانه این هم کار نکرد
                    نمی دونم مشکل از کجاست؟ :angry: :angry: :angry: oo:

                    دیدگاه


                      پاسخ : GSM و ارتباط آن با AVR

                      نوشته اصلی توسط mehdiravanbod
                      سلام
                      متاسفانه این هم کار نکرد
                      نمی دونم مشکل از کجاست؟ :angry: :angry: :angry: oo:
                      سلام
                      اتصالاتت رو شرح بده دقیق دقیق (برد کاربردی صنعتی داری یا راه انداز؟)

                      دیدگاه


                        پاسخ : GSM و ارتباط آن با AVR

                        سلام - من برد صنعتی رو دارم که شامل برد توسعه است و ماژول سیم 900
                        میکرو که ال سی بهش وصل است و کار می کنه - میکرو رو هم پین 10 و 11 رو به تغذیه وصل کردم و 12 و 13 رو هم کریستال 11.0592 - پایه های 9 ماژول به پایه 15 میکرو و پایه 10 ماژول رو هم به پایه 14 میکرو

                        دیدگاه


                          پاسخ : GSM و ارتباط آن با AVR

                          چه گیریه همه میان این کریستال رو وصل میکنن؟ بگین مام یاد بگیریم!!

                          دیدگاه


                            پاسخ : GSM و ارتباط آن با AVR

                            نوشته اصلی توسط mehdiravanbod
                            سلام - من برد صنعتی رو دارم که شامل برد توسعه است و ماژول سیم 900
                            میکرو که ال سی بهش وصل است و کار می کنه - میکرو رو هم پین 10 و 11 رو به تغذیه وصل کردم و 12 و 13 رو هم کریستال 11.0592 - پایه های 9 ماژول به پایه 15 میکرو و پایه 10 ماژول رو هم به پایه 14 میکرو
                            سلام
                            د ن د
                            15 میکرو باید به پایه ده ماژول بخوره
                            14 میکرو به نه ماژول
                            برعکس زدی پسر
                            درضمن فیوزبیت های میکرو باید روی کریستال خارجی باشه
                            خازن های کریستال یاده نره
                            فقط اگه از vcc و گراند بردکاربردی صنعتی کشیدی به میکرو (که البته این کارو بکن از پایین بردکاربردی صنعتی سوراخ های vcc و gnd رو لحیم کن و بده به میکرو کفابت مبکنه)، این vcc و gnd رو وقتی وصل کن که شبکه رو کامل شناخت.
                            در ضمن تمامی پایه های مورد نیاز رو هم از همون پایین بگیر. (مهم)


                            داش امیر این کربستال کارش دقیقه... حال میده خدایی..

                            دیدگاه


                              پاسخ : GSM و ارتباط آن با AVR

                              دادش مرسی - هزار بار سپاس
                              مشکل رو شما هم تو پایه ها اشاره کردید و هم در منبع تغذیه
                              ابتدا پایه های دریافت و ارسال رو جابجا کردم جواب نداد.
                              بعد من برای میکرو از یک تغذیه جداگانه استفاده می کردم و به پیشنهاد شما اومدم پایه های تغذیه رو وصل کردم به تغذیه ماژول و برای اولین بار sms ارسال شد. سپاس
                              نتیجه گیری : 1- خازن های کریستال حتما گذاشته شود - 2- منبع تغذیه میکرو و ماژول باید یکی باشد. 3 - دقت در ارتباط پایه های ارسال و دریافت میکرو و ماژول
                              مرسی - مرسی - مرسی - مرسی - سپاس - سپاس - سپاس -سپاس :wow: :applause: :nice: :job:

                              دیدگاه


                                پاسخ : GSM و ارتباط آن با AVR

                                خواهش میکنم وظیفه است داداش

                                انشاالله موفق باشید

                                دیدگاه

                                لطفا صبر کنید...
                                X