اطلاعیه

Collapse
No announcement yet.

راه اندازی ماژول آلتراسونیک SRF02

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

    #16
    پاسخ : راه اندازی ماژول آلتراسونیک SRF02

    عزیزم !!!!! گلم !!!!!
    من که گفتم . waitkey یعنی وایسا هروقت وقفه دریافت داده سریال رخ داد یک بایت بخون و داخل متغیر بریز . شما در تابع وقفه دریافت سریال ( فکر کنم اسمش urxc باشه ) UDR رو بریز توی یه متغیر . A = UDR
    [glow=blue,2,300]آنقدر به تاریکی لعنت نفرستید ، یک شمع روشن کنید. [/glow]

    دیدگاه


      #17
      پاسخ : راه اندازی ماژول آلتراسونیک SRF02

      ISR(USART_RXC_vect)
      {
      A=UDR;
      }
      [glow=blue,2,300]آنقدر به تاریکی لعنت نفرستید ، یک شمع روشن کنید. [/glow]

      دیدگاه


        #18
        پاسخ : راه اندازی ماژول آلتراسونیک SRF02

        /************************************************** ***
        This program was produced by the
        CodeWizardAVR V2.05.3 Standard
        Automatic Program Generator
        © Copyright 1998-2011 Pavel Haiduc, HP InfoTech s.r.l.
        http://www.hpinfotech.com

        Project :
        Version :
        Date : 11/27/2013
        Author : WWW.PARANDCO.COM
        Company : PARAND
        Comments:


        Chip type : ATmega8
        Program type : Application
        AVR Core Clock frequency: 8.000000 MHz
        Memory model : Small
        External RAM size : 0
        Data Stack size : 256
        ************************************************** ***/

        #include <mega8.h>
        #include <delay.h>
        // Standard Input/Output functions
        #include <stdio.h>

        unsigned char a;
        unsigned char b;
        unsigned char c;




        // Declare your global variables here

        void main(void)
        {
        // Declare your local variables here

        // Input/Output Ports initialization
        // 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
        // Func6=In Func5=In Func4=In Func3=In Func2=In Func1=In Func0=In
        // 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
        TCCR0=0x00;
        TCNT0=0x00;

        // Timer/Counter 1 initialization
        // Clock source: System Clock
        // Clock value: Timer1 Stopped
        // Mode: Normal top=0xFFFF
        // 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=0xFF
        // OC2 output: Disconnected
        ASSR=0x00;
        TCCR2=0x00;
        TCNT2=0x00;
        OCR2=0x00;

        // External Interrupt(s) initialization
        // INT0: Off
        // INT1: Off
        MCUCR=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=0x33;

        // Analog Comparator initialization
        // Analog Comparator: Off
        // Analog Comparator Input Capture by Timer/Counter 1: Off
        ACSR=0x80;
        SFIOR=0x00;

        // ADC initialization
        // ADC disabled
        ADCSRA=0x00;

        // SPI initialization
        // SPI disabled
        SPCR=0x00;

        // TWI initialization
        // TWI disabled
        TWCR=0x00;

        while (1)
        {
        // Place your code here
        putchar(0);
        delay_ms(50);
        putchar(84);
        a=UDR;
        ;b=UDR
        c=a*255;
        c=c+b;

        }
        }



        این درسته الان؟
        هر اقدام بزرگی ابتدا محال به نظر میرسد

        دیدگاه


          #19
          پاسخ : راه اندازی ماژول آلتراسونیک SRF02

          به جای a=UDR و b=UDR بنویسید a=getchar و b=getchar.

          دیدگاه


            #20
            پاسخ : راه اندازی ماژول آلتراسونیک SRF02

            ایمان که گفت UDR
            کدومشه بالاخره
            هر اقدام بزرگی ابتدا محال به نظر میرسد

            دیدگاه


              #21
              پاسخ : راه اندازی ماژول آلتراسونیک SRF02

              اینم همونه ولی قبل از اینکه بتونید udr را بخونید یاید اول صبر کنید تا دیتا دریافت بشه که تابع getchar این کار را انجام میده یعنی اول صبر می کنه تا دیتا برسه و بعد مقدار udr را ر می گردونه.

              دیدگاه


                #22
                پاسخ : راه اندازی ماژول آلتراسونیک SRF02

                یه سوال:وقفه ها رو هم فعال کنم ؟
                هر اقدام بزرگی ابتدا محال به نظر میرسد

                دیدگاه


                  #23
                  پاسخ : راه اندازی ماژول آلتراسونیک SRF02

                  نوشته اصلی توسط behroz2010
                  Enable interrupts
                  $baud = 9600
                  dim a as byte
                  dim b as byte
                  dim c as word
                  printbin 0

                  waitms 50
                  printbin 84
                  a= waitkey()
                  b= waitkey()
                  c=a*256
                  c=c+b
                  چرا c=a*256 کرده؟
                  هر اقدام بزرگی ابتدا محال به نظر میرسد

                  دیدگاه


                    #24
                    پاسخ : راه اندازی ماژول آلتراسونیک SRF02

                    نوشته اصلی توسط behroz2010
                    یه سوال:وقفه ها رو هم فعال کنم ؟
                    این طور که شما نوشتید دیگه نیازی نیست ولی با وقفه اصولی تره. و برنامه داخل حلقه گیر نمی کنه.

                    دیدگاه


                      #25
                      پاسخ : راه اندازی ماژول آلتراسونیک SRF02

                      نوشته اصلی توسط behroz2010
                      چرا c=a*256 کرده؟
                      چون اون بایت به اندازه 8 بیت نسبت به بایت دیگه ارزش بیشتری داره به خاطر همین عدد را در 2 به توان 8 که همون 256 هست ضرب می کنیم که 8 بیت ارزشش بالاتر بره.

                      دیدگاه


                        #26
                        پاسخ : راه اندازی ماژول آلتراسونیک SRF02

                        یه سوال
                        میخوایم با این مصدوم (قوطی پپسی فویل پیچیده شده) رو پیدا کنیم ؟چطوری باید نوشت؟
                        یه جا دیدم میگفتن بر اساس بازتاب هست؟چطوریه؟
                        هر اقدام بزرگی ابتدا محال به نظر میرسد

                        دیدگاه


                          #27
                          پاسخ : راه اندازی ماژول آلتراسونیک SRF02

                          نوشته اصلی توسط behroz2010
                          یه سوال
                          میخوایم با این مصدوم (قوطی پپسی فویل پیچیده شده) رو پیدا کنیم ؟چطوری باید نوشت؟
                          یه جا دیدم میگفتن بر اساس بازتاب هست؟چطوریه؟
                          شما هنوز گیر همین ماژولی؟؟؟ اگه نیازی به پیدا کردن مقدار فاصله اون نداری ( یعنی اصن برات مهم نیست که مثلا فاصله ت با قوطی چند سانت هست ) دو راه داری:
                          * اولیش با همین ماژول هست که البته من توصیه نمیکنم چون حیف این ماژول هست برای همچین کار ساده ای. ولی به هر حال اگه اشتباه نکنم این ماژول یه LED داره که به محض اینکه جسمی جلو اون قرار بگیره روشن میشه . دو سر همین LED رو بده به ورودی وقفه میکرو و وجود جسم (قوطی) رو دیتکت کن .
                          * دوم اینکه از ماژول های IR که مخصوص آشکار سازی موانع هستند استفاده کن . بردشون کمتر هست ولی خیلی ارزون تر هستند و برای کار شما مناسب تر .
                          البته راه های زیاد و بهتر دیگه ای هم وجود داره که از همه سخت تر و بهترش پردازش تصویر هست .
                          [glow=blue,2,300]آنقدر به تاریکی لعنت نفرستید ، یک شمع روشن کنید. [/glow]

                          دیدگاه


                            #28
                            پاسخ : راه اندازی ماژول آلتراسونیک SRF02



                            ن باید فرقی بین مانع و مصدوم (قوطی پپسی فویل پیچیده شده) باشه
                            چطور بفهمه این مانع هست و اون مصدوم؟
                            اگه اینطور باشه یه دستور میشه نوشت


                            هر اقدام بزرگی ابتدا محال به نظر میرسد

                            دیدگاه


                              #29
                              پاسخ : راه اندازی ماژول آلتراسونیک SRF02

                              دوتا توی دو تا ارتفاع مختلف بذارید.یکی تا ارتفاع مانع و بالاتر از مصدوم و اون یکی در حد ارتفاع مصدوم.

                              دیدگاه


                                #30
                                پاسخ : راه اندازی ماژول آلتراسونیک SRF02

                                جنس موانع چیه؟
                                [glow=blue,2,300]آنقدر به تاریکی لعنت نفرستید ، یک شمع روشن کنید. [/glow]

                                دیدگاه

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