اطلاعیه

Collapse
No announcement yet.

برنا مه نویسی روبات سه سنسوره ساده

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

    برنا مه نویسی روبات سه سنسوره ساده

    سلام دوستان من دارم یه روبات سه سنسوره ساده که با op amp و درایور l293d کار میکنه و از oscilator هم استفاده شده رو برای شروع کارم تو روباتیک بسازم ولی برنامه نویسی که میکنم تو پروتوس جواب نمیده :cry2:. اگه کمکم کنید که مشکلش چیه یا اینکه فایل آموزش کامل روبات مسیر یاب رو بزارید خیلی ممنون میشم. تو وب هر چی سرچ میکنم چیزی پیدا نمیکنم.
    اینم از برنامه:
    کد:
    /*****************************************************
    This program was produced by the
    CodeWizardAVR V2.05.0 Evaluation
    Automatic Program Generator
    © Copyright 1998-2010 Pavel Haiduc, HP InfoTech s.r.l.
    http://www.hpinfotech.com
    
    Project : 
    Version : 
    Date  : 1/11/2014
    Author : Freeware, for evaluation and non-commercial use only
    Company : 
    Comments: 
    
    
    Chip type        : ATmega16
    Program type      : Application
    AVR Core Clock frequency: 8.000000 MHz
    Memory model      : Small
    External RAM size    : 0
    Data Stack size     : 256
    *****************************************************/
    
    #include <mega16.h>
    
    // Declare your global variables here
    
    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=Out Func2=In Func1=In Func0=In 
    // State7=T State6=T State5=T State4=T State3=0 State2=T State1=T State0=T 
    PORTB=0x00;
    DDRB=0x08;
    
    // Port C 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 
    PORTC=0x00;
    DDRC=0xFF;
    
    // Port D 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 
    PORTD=0x00;
    DDRD=0xFF;
    
    // Timer/Counter 0 initialization
    // Clock source: System Clock
    // Clock value: 125.000 kHz
    // Mode: Fast PWM top=0xFF
    // OC0 output: Non-Inverted PWM
    TCCR0=0x6B;
    TCNT0=0x00;
    OCR0=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: 125.000 kHz
    // Mode: Fast PWM top=0xFF
    // OC2 output: Non-Inverted PWM
    ASSR=0x00;
    TCCR2=0x6C;
    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
    // USART disabled
    UCSRB=0x00;
    
    // 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
        (if(PINB.1=0,PINB.0=1,PINB.2=1
        { OCR0=225;
         OCR2=225;
         PORTD.0=1;
         PORTD.1=0;
         PORTD.2=1;
         PORTD.3=0;}
        (if(PINB.1=1,PINB.0=0,PINB.2=1
        { OCR0=225;
         OCR2=0;
         PORTD.0=1;
         PORTD.1=0;
         PORTD.2=0;
         PORTD.3=0;}
        (if(PINB.1=1,PINB.0=1,PINB.2=0
        { OCR0=0;
         OCR2=225;
         PORTD.0=0;
         PORTD.1=0;
         PORTD.2=1;
         PORTD.3=0;}
       } 
    }
    لطفا سوالات فنی رو به جای پیام خصوصی در انجمن مطرح کنید.

    #2
    پاسخ : برنا مه نویسی روبات سه سنسوره ساده

    if تون اشتباهه
    برای And منطقی تو C باید از && استفاده کنید نه ,

    head<=
    ...تشکر خدا...
    [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

    دیدگاه


      #3
      پاسخ : برنا مه نویسی روبات سه سنسوره ساده

      با تشکر از پاسختون :biggrin:
      الان اومدم تو کد ویژن اینجوری نوشتم ولی error میده
      (if(PINB.1=0 && PINB.0=1 && PINB.2=1
      { OCR0=225;
      OCR2=225;
      PORTD.0=1;
      PORTD.1=0;
      PORTD.2=1;
      PORTD.3=0;}
      (if(PINB.1=1 && PINB.0=0 && PINB.2=1
      { OCR0=225;
      OCR2=0;
      PORTD.0=1;
      PORTD.1=0;
      PORTD.2=0;
      PORTD.3=0;}
      (if(PINB.1=1 && PINB.0=1 && PINB.2=0
      { OCR0=0;
      OCR2=225;
      PORTD.0=0;
      PORTD.1=0;
      PORTD.2=1;
      PORTD.3=0
      کد:
      ;}
      اینم errorها:
      Error: G:\filey az.c(134): the expression must be a modifiable lvalue
      Error: G:\filey az.c(141): the expression must be a modifiable lvalue
      Error: G:\filey az.c(148): the expression must be a modifiable lvalue
      فاصله بین && ها رو هم برداشتم ولی بازم error میده
      وقتی از همون علامت , استفاده کنم error نمیده :cry:


      لطفا سوالات فنی رو به جای پیام خصوصی در انجمن مطرح کنید.

      دیدگاه


        #4
        پاسخ : برنا مه نویسی روبات سه سنسوره ساده

        سلام دوست عزیز
        در C برای بررسی کردن این که دوچیز برابرند از == استفاده میکنن نه =

        head<=
        ...تشکر خدا...
        [img width=97 height=100]http://mahdi3d.persiangig.com/image/5280543_t.jpg[/img]

        دیدگاه


          #5
          پاسخ : برنا مه نویسی روبات سه سنسوره ساده

          نوشته اصلی توسط m4hd1r
          سلام دوست عزیز
          در C برای بررسی کردن این که دوچیز برابرند از == استفاده میکنن نه =
          درود بر شما واقعا دستتون درد نکنه. :job: رفتم مسوی رو درستش کردم الان داره درست کار میکنه. خیلی خوشحالمون کردی دیگه داشتم نا امید میشدم. :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause: :applause:
          لطفا سوالات فنی رو به جای پیام خصوصی در انجمن مطرح کنید.

          دیدگاه


            #6
            پاسخ : برنا مه نویسی روبات سه سنسوره ساده

            سلام می خواستم بدونم شما پایه OC0 و OC2 رو به ENA و ENB وصل کردین؟

            دیدگاه


              #7
              پاسخ : برنا مه نویسی روبات سه سنسوره ساده

              نوشته اصلی توسط ahmp
              سلام می خواستم بدونم شما پایه OC0 و OC2 رو به ENA و ENB وصل کردین؟
              سلام پایه OC0(پایه4میکرو) رو دادم به EN1(پایه1درایور موتور) و OCR2(پایه21میکرو) رو هم دادم به EN2(پایه9 درایور موتور).
              لطفا سوالات فنی رو به جای پیام خصوصی در انجمن مطرح کنید.

              دیدگاه


                #8
                پاسخ : برنا مه نویسی روبات سه سنسوره ساده

                سلام
                من دارم یک ربات مسیریاب ساده(مثا شما) رو می سازم اما هر دفعه به مشکل برمی خورم.اگه میشه یه نگاهی به PCB من بندازین ببینین درسته؟
                این لینکش:
                http://www.uplooder.net/cgi-bin/dl.cgi?key=5a835ef861788a9797242926c4aba5b4
                اگه ممکنه عکسی از رباتتون برام بذارید
                ممنون

                دیدگاه


                  #9
                  پاسخ : برنا مه نویسی روبات سه سنسوره ساده

                  نوشته اصلی توسط ahmp
                  سلام
                  من دارم یک ربات مسیریاب ساده(مثا شما) رو می سازم اما هر دفعه به مشکل برمی خورم.اگه میشه یه نگاهی به PCB من بندازین ببینین درسته؟
                  این لینکش:
                  http://www.uplooder.net/cgi-bin/dl.cgi?key=5a835ef861788a9797242926c4aba5b4
                  اگه ممکنه عکسی از رباتتون برام بذارید
                  ممنون
                  دوست عزیز, این pcd و شماتیکی که گذاشتی ناقص و اشتباس:
                  1- برا برد سنسور و هنچنین تغذیه و موتور و ... کانکتور نذاشتی (نکنه می خوای هویجوری یه جای خالی پیدا کنیو سیمارو لحیم بزنی؟ :icon_razz: )
                  2- pcb که طراحی کردی اولن top silk هستش (که البته این مشکل زیاد بزرگی نیست)
                  3- border edge نداری
                  4- نمی دونم از چه نوع مقاومت متغیری می خوای استفاده کنی, ولی معمولا از نوع مولتی ترن استفاده می شه که اینحا درست انتخاب نشده.
                  5- یه سری اتصالاتت مونده که باید اونارو جامپر بزنی, البته می تونی با جا به جایی قطعات تعداد جامپر هارو به حد اقل برسونی ولی فک نمی کنم تعدادش صفر بشه!
                  6- یه کم به خودت اعتماد داشته باش, 3 تا کم نیس؟ ما تو دانشگاه تبریز آموزشمونو با 8 تا شروع می کنیم, یادمه تو کانون پرورش فکری برای نوجوانان 2 تا سنسور داشتیم (البته اون اصلا میکرو نداشته و خیلی خیلی ساده بود :mrgreen: )
                  :job:
                  اي پادشه خوبان داد از غم تنهايي

                  دل بي تو به جان آمد وقت است که باز آيي

                  دیدگاه

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