اطلاعیه

Collapse
No announcement yet.

چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

Collapse
X
 
  • فیلتر
  • زمان
  • Show
Clear All
new posts

    چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

    با سلام خدمت همه شما مهندسین عزیز و خوش ذوق :wow:
    بنده برای پروژه آزمایشگاه الکترونیک 3 با توجه به اینکه قبلا روی طراحی برنامه های اندروید کار کرده بودم تصمیم گرفتم مطلبی که سایت wle گذاشته بود را به عنوان پروژه ارائه کنم. موردی که من میخواستم پیاده کنم این بود: پروژه رادیو کنترل ربات با گوشی اندروید
    بنده دقیقا همون چیزی که اینجا گفت رو پیاده کردم.
    البته روند کار رو میگم که شما در جریان باشد: :nerd:
    1- ماژول hc05 رو از همیجا خریدم و پایه ایناشو لحیم کاری کردم و بدون مشکل روی مدار بر بورد نصبش کردم.
    2- بعد یه میکرو کنترلر atmega8 خریدم و روی اون هم دقیقا همین برنامه ی که تو پروژه معرفی کرده بودند رو پروگرام کردم.
    3- اومدم طبق چیزی که تو راهنمای پروژهبود سیم ها و LED هارو متصل کردم به ماژول و کنترلرمون.
    4- بعد اومدم 2 تا باطری 1.5 ولتی رو وصل کردم به vcc و gnd ماژول بولوتوث.
    5- و یه آدابتور 4.9 هم داشتم که وصل کردم به میکرومون.
    6- مدار روشن شد و چراغ بلوتوث شروع کرد به چشمک زدن، با نرم افزار اندرویدی که تو خود سایت بود اومدم و به راحتی وصل شدم به ماژول.
    7- مشکل از اینجا شروع شد که روی هر دکمه ای که میزدم هیچ اتفاق نمی افتاد! و هیچکدوم از LED ها روشن نمی شدن!

    برای عیب یابی مدار چندتا کار انجام دادم:
    1- اولین کاری که انجام دادم این بود که دوتا پایه TX و RX رو به هم وصل کردم و چک کردم. هرچی که می فرستادم با برنامه همون رو بهم پاسخ می داد. یعنی مثلا A رو می زدم پاسخ میومد A . استدلال کردم که پس ماژول نباید مشکلی داشته باشه! عکس های screen 1 , screen2 که پیوست کردم براتون
    2- اومدم میکرو کنترلر رو عوض کردم و باز دوباره برنامه ریزی کردم! بازهم عمل نکرد! حدود 4 تا میکروکنترلر تازه و نو رو تست کردم که بازم جواب نداد.
    3- گفتم شاید مشکل از برنامه باشه. اومدم توی برنامش اون دستورات اضافی رو پاک کردم، و فقط گفتم که اگه A رو دریافت کردی Print کن که Yes I got it . ما بازهم عمل نکرد!

    حالا دیگه نمی دونم چیکار باید بکنم و دست به دامن شمام الان :cry:

    برای اینکه همه چی تکمیل بشه، عکس های مدارم رو هم براتون میگذارم. عکس های 1st, 2nd, 3rd

    البته اینو هم بگم که بنده چندینبار پیام واسه پشتیبانی سایت گذاشتم و با توجه به اینکه کاربر طلایی هم بودم اما بازم جوابی نگرفتم و در آخر جوابی هم که دادند بدرد من نمیخورد!

    دوستان اگه نیاز دیدید شماتیک مدار و برنامه میکروشو هم میگذارم. منتظر نظرات وکمکهاتون هستم. ممنون








    اضافه شده در تاریخ :
    کسی نمی تونه کمکی کنه؟

    #2
    پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

    2تا نکته رو بررسی کنید:
    1- شما میکرو رو با 5 ولت راه انداختین و ماژول رو با 3 ولت، بعد میکرو رو مستقیم به ماژول وصل کردین! این اشتباهه! و میتونه باعث سوختن ماژول بشه!
    بهترین راه اینه که میکرو و ماژول رو با هم با 3.3 ولت تغذیه کنین، یا اگه لازم دارین میکرو با 5 ولت کار کنه با تقسیم مقاومتی محاسبه کنید که چه مقاومت هایی باید بین پایه TX میکرو و RX ماژول باید قرار بدین. (بین RX میکرو و TX ماژول نیاز نیست)
    2- زمین هر 2تا مدار تغذیه باید حتما به هم متصل باشن
    ;()((void (*)(void))0x0000))

    دیدگاه


      #3
      پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

      منم قبلا همین مدارو تست کردم جواب داد :smile: به گفته دوستمون بهتره برای hc-05از رگولاتور 3.3 جدا استفاده کنی وبرای ایس هم از رگولاتور سوا استفاده کنی
      فکر می کنم برنامه گوشی برای ربات نباشه http://s6.uplod.ir/i/00506/w1nghrmz9lp4.png
      اون برای کنترل ledبودش ولی فرقی نمیکنه باید برنامه گوشی رو درست مثل اموزش تنظیم کنی به داخل سورس برنامه برو وبه حروف کوچک و بزرگ دقت کن بعد یک بار دیگه تنظیمش کن

      دیدگاه


        #4
        پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

        یعنی من یه ورودی 5 ولت بیارم. یه سرشو ببریم به میکرو و سر دیگش رگولاتور 3.3 بزارم و خروجی رگولاتور رو ببرم تو ماژول و زمیناشونو به هم وصل کنم؟

        دیدگاه


          #5
          پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

          اره
          نوشته اصلی توسط sadra777
          یعنی من یه ورودی 5 ولت بیارم. یه سرشو ببریم به میکرو و سر دیگش رگولاتور 3.3 بزارم و خروجی رگولاتور رو ببرم تو ماژول و زمیناشونو به هم وصل کنم؟
          اره همینکارو بکن
          http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

          دیدگاه


            #6
            پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

            میکرو هم بهش همون 3.3 رو بده، اینجوری خود به خود زمیناشم یکی میشه
            ;()((void (*)(void))0x0000))

            دیدگاه


              #7
              پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

              نوشته اصلی توسط sadra777
              یعنی من یه ورودی 5 ولت بیارم. یه سرشو ببریم به میکرو و سر دیگش رگولاتور 3.3 بزارم و خروجی رگولاتور رو ببرم تو ماژول و زمیناشونو به هم وصل کنم؟
              سلام
              مهندس تاپیک در این مورد زیاد هست اگه سرچ میزدین شاید به جوابتون میرسیدین، بگذریم .
              شما چرا اصرار برای ولتاز 5 دارین. با 3.3 راه بنداز اشکالی نداره که . یه چیز دیگه احتمالش هست تنظیم نبودن نرخ ارسال اطلاعاتتونه. با استفاده از دستورات at-command ببین رو چی تنظیمه . یا اون چیزی که مدنظرتونه تنظیم کنین
              یاعلی
              در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

              دیدگاه


                #8
                پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیاب&#

                من دوباره مدار رو ساختم و یه ولتاژ 3.3 دادم به ماژول و یه ولتاژ 5 هم دادم به میکرو و زمیناشونم به هم وصل کردم همونطور که در شکل زیر میبینید.
                نرم افزار اندروید به راحتی به ماژول وصل میشه، من 2سر tx و RX رو به هم وصل کردم و تست کردمو دیدم همون داده ای که میدم رو بر میگردونه.
                مشکل اینجاست که اصلا LED ها روشن نمیشن! :sad:
                یعنی همچی تا خروجی ماژول اوکی هست اما LED ها روشن نمیشه! :eek:


                دیگه موندم چیکار کنم! :cry:
                فایل پروگرم میکرو رو اینج واستون میزارم شما یه چک کنید ببینید لطفا یه وقت مشکل از پرووگرم نباشه:
                program.txt - 880 B
                چندتا مورد هست بگم که یه وقت شاید مهم بود:
                1- اون مقاومتی که سمت راست تصویر میبینید اومدم باتقسیم مقاوتی از 5 ولت یه 3.3 گرفتم دادم به ماژول.
                2- من روی ماژول هیچ برنامه ای نریختم همینجوری که تحویل گرفتم راست راست گذاشتم تو مدار :icon_razz: ( اینو گفتم که شاید یه وقتی ماژول هم به پروگرم احتیاج داشته و من نمی دونستم )
                3- LED2 یعنی اونی که چشمک میزنهبری من هر 1 ثانیه 2بار پشت سر هم چشمک میزنه، چون شنیده بودم این نحوه چشمک زدن هم مهمه!
                لطفا کمک کنید. تا 4شنبه بیشتر فرصت ندارم که این پروژه رو تحویل بدم :cry2:

                دیدگاه


                  #9
                  پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

                  سلام
                  منم همین مشکل رو دارم اما فرصت نکردم براش دنبال راه حلی بگردم. البته من از همون اول تغذیه هر دوتا (ماژول و میکرو) رو 3.3 دادم و تونستم به ماژول هم وصل بشم، اما تو ارتباط بین ماژول و میکرو مشکل داشتم.
                  مرسی
                  تشكر نكن، صلوات بفرست:

                  [img width=165 height=100]http://www.askdin.com/gallery/images/29839/1___________5.png[/img]

                  دیدگاه


                    #10
                    پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

                    کد:
                    [left]
                    //*********************** header file **************************//
                    
                    #include <mega16a.h>
                    #include <delay.h>
                    #include <alcd.h>
                    #include <stdlib.h>
                    #include <stdio.h>
                    
                    //************************* function **************************//
                    
                    void setting(void);
                    int str_compare(char str1[],char str2[]);
                    
                    //************************* variable **************************//
                    
                    //char h1[]="hhhh";
                    //char h2[]="ssss";     __test function str_compare__
                    //char h3[]="hhhh";
                    
                    char buzer_on[]="buzer-on";
                    char buzer_off[]="buzer-off";
                    char led_on[]="led-on";
                    char led_off[]="led-off";
                    
                    
                    char buffer[];
                    
                    int back;
                    
                    //************************* program ***************************//
                    
                    void main(void)
                    {
                    
                    setting();
                    
                    
                    while (1)
                       {
                    
                        PORTB.0=~PORTB.0;
                        scanf("%s",&buffer);
                        PORTB.0=~PORTB.0;
                        delay_ms(100);
                        puts(buffer);
                        lcd_clear();
                        lcd_puts(buffer);
                    
                    
                        if( back = str_compare(buzer_on,buffer)==0)       PORTB.2=1;
                    
                        if( back = str_compare(buzer_off,buffer)==0)      PORTB.2=0;
                    
                        if( back = str_compare(led_on,buffer)==0)        PORTB.1=1;
                    
                        if( back = str_compare(led_off,buffer)==0)       PORTB.1=0; 
                        
                        
                        
                        
                       }
                    }
                    
                    
                    //******************** str_compare ********************//
                    
                    int str_compare(char str1[],char str2[])
                      {
                        int i;
                        for(i=0;str1[i] || str2[i];i++)
                          {
                            if(str1[i]>str2[i])     return 1;
                    
                            if(str1[i]<str2[i])     return -1;
                          }
                    
                        return 0;
                      }
                    
                    //********************** setting **********************//
                    
                    void setting (void)
                    {
                      // Declare your local variables here
                    
                      // Input/Output Ports initialization
                      // Port A initialization
                      // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
                      DDRA=(0<<DDA7) | (0<<DDA6) | (0<<DDA5) | (0<<DDA4) | (0<<DDA3) | (0<<DDA2) | (0<<DDA1) | (0<<DDA0);
                      // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
                      PORTA=(0<<PORTA7) | (0<<PORTA6) | (0<<PORTA5) | (0<<PORTA4) | (0<<PORTA3) | (0<<PORTA2) | (0<<PORTA1) | (0<<PORTA0);
                    
                      // Port B initialization
                      // Function: Bit7=Out Bit6=Out Bit5=Out Bit4=Out Bit3=Out Bit2=Out Bit1=Out Bit0=Out
                      DDRB=(1<<DDB7) | (1<<DDB6) | (1<<DDB5) | (1<<DDB4) | (1<<DDB3) | (1<<DDB2) | (1<<DDB1) | (1<<DDB0);
                      // State: Bit7=0 Bit6=0 Bit5=0 Bit4=0 Bit3=0 Bit2=0 Bit1=0 Bit0=0
                      PORTB=(0<<PORTB7) | (0<<PORTB6) | (0<<PORTB5) | (0<<PORTB4) | (0<<PORTB3) | (0<<PORTB2) | (0<<PORTB1) | (0<<PORTB0);
                    
                      // Port C initialization
                      // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
                      DDRC=(0<<DDC7) | (0<<DDC6) | (0<<DDC5) | (0<<DDC4) | (0<<DDC3) | (0<<DDC2) | (0<<DDC1) | (0<<DDC0);
                      // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
                      PORTC=(0<<PORTC7) | (0<<PORTC6) | (0<<PORTC5) | (0<<PORTC4) | (0<<PORTC3) | (0<<PORTC2) | (0<<PORTC1) | (0<<PORTC0);
                    
                      // Port D initialization
                      // Function: Bit7=In Bit6=In Bit5=In Bit4=In Bit3=In Bit2=In Bit1=In Bit0=In
                      DDRD=(0<<DDD7) | (0<<DDD6) | (0<<DDD5) | (0<<DDD4) | (0<<DDD3) | (0<<DDD2) | (0<<DDD1) | (0<<DDD0);
                      // State: Bit7=T Bit6=T Bit5=T Bit4=T Bit3=T Bit2=T Bit1=T Bit0=T
                      PORTD=(0<<PORTD7) | (0<<PORTD6) | (0<<PORTD5) | (0<<PORTD4) | (0<<PORTD3) | (0<<PORTD2) | (0<<PORTD1) | (0<<PORTD0);
                    
                      // Timer/Counter 0 initialization
                      // Clock source: System Clock
                      // Clock value: Timer 0 Stopped
                      // Mode: Normal top=0xFF
                      // OC0 output: Disconnected
                      TCCR0=(0<<WGM00) | (0<<COM01) | (0<<COM00) | (0<<WGM01) | (0<<CS02) | (0<<CS01) | (0<<CS00);
                      TCNT0=0x00;
                      OCR0=0x00;
                    
                      // Timer/Counter 1 initialization
                      // Clock source: System Clock
                      // Clock value: Timer1 Stopped
                      // Mode: Normal top=0xFFFF
                      // OC1A output: Disconnected
                      // OC1B output: Disconnected
                      // 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=(0<<COM1A1) | (0<<COM1A0) | (0<<COM1B1) | (0<<COM1B0) | (0<<WGM11) | (0<<WGM10);
                      TCCR1B=(0<<ICNC1) | (0<<ICES1) | (0<<WGM13) | (0<<WGM12) | (0<<CS12) | (0<<CS11) | (0<<CS10);
                      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=0xFF
                      // OC2 output: Disconnected
                      ASSR=0<<AS2;
                      TCCR2=(0<<PWM2) | (0<<COM21) | (0<<COM20) | (0<<CTC2) | (0<<CS22) | (0<<CS21) | (0<<CS20);
                      TCNT2=0x00;
                      OCR2=0x00;
                    
                      // Timer(s)/Counter(s) Interrupt(s) initialization
                      TIMSK=(0<<OCIE2) | (0<<TOIE2) | (0<<TICIE1) | (0<<OCIE1A) | (0<<OCIE1B) | (0<<TOIE1) | (0<<OCIE0) | (0<<TOIE0);
                    
                      // External Interrupt(s) initialization
                      // INT0: Off
                      // INT1: Off
                      // INT2: Off
                      MCUCR=(0<<ISC11) | (0<<ISC10) | (0<<ISC01) | (0<<ISC00);
                      MCUCSR=(0<<ISC2);
                    
                      // USART initialization
                      // Communication Parameters: 8 Data, 1 Stop, No Parity
                      // USART Receiver: On
                      // USART Transmitter: On
                      // USART Mode: Asynchronous
                      // USART Baud Rate: 9600
                      UCSRA=(0<<RXC) | (0<<TXC) | (0<<UDRE) | (0<<FE) | (0<<DOR) | (0<<UPE) | (0<<U2X) | (0<<MPCM);
                      UCSRB=(0<<RXCIE) | (0<<TXCIE) | (0<<UDRIE) | (1<<RXEN) | (1<<TXEN) | (0<<UCSZ2) | (0<<RXB8) | (0<<TXB8);
                      UCSRC=(1<<URSEL) | (0<<UMSEL) | (0<<UPM1) | (0<<UPM0) | (0<<USBS) | (1<<UCSZ1) | (1<<UCSZ0) | (0<<UCPOL);
                      UBRRH=0x00;
                      UBRRL=0x33;
                    
                      // Analog Comparator initialization
                      // Analog Comparator: Off
                      // The Analog Comparator's positive input is
                      // connected to the AIN0 pin
                      // The Analog Comparator's negative input is
                      // connected to the AIN1 pin
                      ACSR=(1<<ACD) | (0<<ACBG) | (0<<ACO) | (0<<ACI) | (0<<ACIE) | (0<<ACIC) | (0<<ACIS1) | (0<<ACIS0);
                      SFIOR=(0<<ACME);
                    
                      // ADC initialization
                      // ADC disabled
                      ADCSRA=(0<<ADEN) | (0<<ADSC) | (0<<ADATE) | (0<<ADIF) | (0<<ADIE) | (0<<ADPS2) | (0<<ADPS1) | (0<<ADPS0);
                    
                      // SPI initialization
                      // SPI disabled
                      SPCR=(0<<SPIE) | (0<<SPE) | (0<<DORD) | (0<<MSTR) | (0<<CPOL) | (0<<CPHA) | (0<<SPR1) | (0<<SPR0);
                    
                      // TWI initialization
                      // TWI disabled
                      TWCR=(0<<TWEA) | (0<<TWSTA) | (0<<TWSTO) | (0<<TWEN) | (0<<TWIE);
                    
                      // Alphanumeric LCD initialization
                      // Connections are specified in the
                      // Project|Configure|C Compiler|Libraries|Alphanumeric LCD menu:
                      // RS - PORTC Bit 0
                      // RD - PORTC Bit 1
                      // EN - PORTC Bit 2
                      // D4 - PORTC Bit 4
                      // D5 - PORTC Bit 5
                      // D6 - PORTC Bit 6
                      // D7 - PORTC Bit 7
                      // Characters/line: 16
                      lcd_init(16);
                    }
                    [/left]
                    سلام
                    مهندس من با این برنامه جواب گرفتم.
                    اطلاعات ورودی هم رو lcd نمایش دادم هم با هایپر ترمینال
                    متناسب با اون چیزی هم که میخاستم یه کاریو انجام دادم. میکرو هم atmega16 بوده
                    کد هم واضح هست . برو ببین کجا داری اشتباه میکنی. شما باس یجوری متوجه بشی اطلاعاتی که به ماژول میفرستی چی هست یا نه!
                    یه lcd وصل کن یا با کامپیوتر ببین
                    ان شاالله که کارت راه بیفته
                    یاعلی
                    در کشور هاي غربي انتقال تجربيات و دانش به افراد مبتدي يک پيشرفت محسوب شده و به آن مديريت دانش مي گويند. ولي متاسفانه اين فرهنگ هنوز در کشور ايران رايج نشده است !!!

                    دیدگاه


                      #11
                      پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

                      خب اینکه خیلی زیاده و اینکه با LCDآ‌ هست کلا برنامش با این فرق داره!
                      میخوام ببینم این پروژه و برنامه ای که مال منه کجاش مشکل داره؟ شما تو برنامه ی من مشکلی دیدن؟ مشکل کار کجاست!؟

                      دیدگاه


                        #12
                        پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

                        دوستان الان مدیر اون سایت بهم پیام داد که " فیوز بیت رو روی 8 مگ داخلی بذار "
                        یعنی کدوم فیوزبیت رو ؟آ‌
                        الان کجارو باید 8 مگ بگذارم؟

                        دیدگاه


                          #13
                          پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

                          نوشته اصلی توسط sadra777
                          دوستان الان مدیر اون سایت بهم پیام داد که " فیوز بیت رو روی 8 مگ داخلی بذار "
                          یعنی کدوم فیوزبیت رو ؟آ‌
                          الان کجارو باید 8 مگ بگذارم؟
                          سلام
                          تو تنظیمات فیوز بیت میکرو باید موقع پروگرام کردن این کارو بکنی. با چه کمپایلری کار میکنین؟
                          تشكر نكن، صلوات بفرست:

                          [img width=165 height=100]http://www.askdin.com/gallery/images/29839/1___________5.png[/img]

                          دیدگاه


                            #14
                            پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

                            نوشته اصلی توسط محمد ن
                            سلام
                            تو تنظیمات فیوز بیت میکرو باید موقع پروگرام کردن این کارو بکنی. با چه کمپایلری کار میکنین؟
                            پروگرامرت چیه؟
                            http://s6.uplod.ir/i/00674/9cm41hm4inx0.jpg

                            دیدگاه


                              #15
                              پاسخ : چگونه ماژول HC-05 را راه اندازی و اشکالیابی کنی

                              نوشته اصلی توسط MAHDI ZAMANI
                              پروگرامرت چیه؟
                              جان؟ oo:
                              تشكر نكن، صلوات بفرست:

                              [img width=165 height=100]http://www.askdin.com/gallery/images/29839/1___________5.png[/img]

                              دیدگاه

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