회원가입 ID/PW 찾기
AA
속도가 전혀~~~~~~~~~~~~~~~~~~~~~` 제어가 안되네요
무쟈게 빨라서 바디부분이 뿌아질라고 그람니다
답답해 죽겠네
어떻게 해야죠 님들 답변 부탁드려요~
댓글 6
  • No Profile
    글쓴이 고문관 07.10.23 02:30 댓글 좋아요 0 싫어요 0
    지금이 새벽2시반   답안나옵니다 ~
  • -.-;; 어캐... 제어 잘하시라는 말씀밖엔....

    그놈 서보모터 감히 고문관님의 말을 안듣다니.
  • No Profile

    드뎌 찾았습니다.ㅋㅋㅋ 도움되시길....이건 8051 작품란에도 올려놓겠습니다.
    동시에 여러개 RC서보 제어하는 방법은 빠라삐리뽀님 글을 찾으면 제가 답변해노은게 있습니다.

    이것도 어딘가 소스가 있을텐데.ㅠㅠ


    /*

    8051을 이용해 IR리모콘으로 RC서보모터 제어

    8051을 이용해서 IR리모콘(TV리모콘과 같은)로 RC서보모터를 원격조정하는 것입니다...
    만들당시 회로는 너무 간단해서 회로도는 그리지 않았습니다.;;
    사진은 차후에 올려드리겠습니다.
    작성자 :   아크마

     작성일 : 2004년 12월 8일
     VERSION : 0.1

    */

    // 컴파일러 : 마이크로비젼 7.0

    #include <at89x52.h>
     /*
    645
    1382
    2119
    18432
    */

    #define TIME_SEC    20000
    #define RATE_8952   0.000001085069444
    #define PULS_LEFT       900
    #define PULS_MID       2000
    #define PULS_RIGHT      5000
    #define PULS_OFF        18432
    #define SPEED_1        1
    #define SPEED_2        2
    #define SPEED_3       3
    #define SPEED_4       4
    #define SPEED_5       5
    #define SPEED_6       6
    #define SPEED_20      20

    #define TIMER0_ON  TR0 = 1
    #define TIMER0_OFF   TR0 = 0
    #define TIMER1_ON       TR1 = 1
    #define TIMER1_OFF   TR1 = 0
    #define TIMER_IT0_ENABLE ET0 = 1
    #define TIMER_IT0_DISALBE ET0 = 0
    #define TIMER_IT1_ENABLE ET1 = 1
    #define TIMER_IT1_DISABLE ET1 = 0
    #define IT_ENABLE  EA = 1
    #define IT_DISABLE   EA = 0
    #define SERVO_PORT  P2_7
    #define TRUE    1
    #define FALSE    0  


    #define REMOCON_RIGHT  P1_4                         
    #define REMOCON_DOWN  P1_3                         
    #define REMOCON_STOP  P1_2                         
    #define REMOCON_UP   P1_1                         
    #define REMOCON_LEFT  P1_0  

    #define REMOCON_TEST  P1_5                      

    char old_right=1;
    char old_down=1;
    char old_stop=1;
    char old_up=1;
    char old_left=1;

    typedef unsigned int  word;
    typedef unsigned char  byte;
    typedef char   bool;

    byte flag = 0;
    word speed;
    word rate= PULS_MID;//PULS_MID;
    word angle  = PULS_MID;
    word target = PULS_MID;
    bool chat_flag = FALSE;

    long delay_count =0;
    long delay_count_h=0;
    int led_num = 0;


    void delay_s(unsigned int iSec)
    {
     int iCnt;
     
     while(iSec)
     {
      for(iCnt=0; iCnt < TIME_SEC; iCnt++);
             iSec--;
     }
    }
      
    void delay_t(unsigned int iTime)
    {
     while(iTime--);
    }
     

    //타이머 초기화
    bool InitTimer(void)
    {    


        TMOD = 0x11;  // TMOD 1(16bit timer/counter) setting - use TH, TL, [hgigh : M1 = 0, M0 = 1]  [low : M1 = 0, M0 = 1]

     TH0 = 0x4C;
       TL0 = 0x00;
     TH1 = 0x4c;
     TL1 = 0x00;
           
        TIMER_IT0_ENABLE;
        TIMER_IT1_ENABLE;
     
     TIMER0_ON;
     IT_ENABLE;
     
        return 1;

    }

    //인터럽트 초기
    bool InitInt()
    {

     PX0 = 1 ;  
     IT0 = 1 ; 
     EX0 = 1 ;  
     EX1 = 1 ;
     IT_ENABLE;

    }

    // 서보 이동속도 설
    void SetSpeed(word s)
    {
     speed = s;
    }
    void test()
    {
     char cnt;

     for(cnt=0;cnt<3;cnt++)
     {
     REMOCON_TEST = 1;
     delay_s(1);
     REMOCON_TEST = 0;
     delay_s(1);
     }
     }


    int main(void)
    {

     char flag_h = 0;

     delay_t(1);
        delay_s(1);
          
        InitTimer();
     InitInt();

     SetSpeed(SPEED_3);
        rate = 92;
        
     P0_3 = 0;
        
     while(1)
     {

      chat_flag = TRUE;

      if(old_left!=REMOCON_LEFT)
      {
       old_left = REMOCON_LEFT; 
      /*
       if(REMOCON_LEFT==0)
       {
        if(target-100 >= PULS_LEFT)
         target-=100;  
       }
       */
        if(REMOCON_LEFT==0)
       {
        target=PULS_LEFT;  
       }else
       {
        target  = angle;
        }

      }


      
      if(old_right!=REMOCON_RIGHT)
      {
       old_right = REMOCON_RIGHT;

       if(REMOCON_RIGHT==0)
       {
        target=PULS_RIGHT;  
       }else
       {
        target  = angle;
        }
        }

      
      if(old_up!=REMOCON_UP)
      {
       old_up = REMOCON_UP;

       if(REMOCON_UP==0)
       {
        if(speed < SPEED_20)
        {
         speed+=3;
        }  
       }
      }

      
      if(old_down!=REMOCON_DOWN)
      {
       old_down = REMOCON_DOWN;

       if(REMOCON_DOWN==0)
       {
        if(speed > SPEED_1)
        {
         speed-=3;
        }
       }
      }

     

      delay_count++;
      if(delay_count>40000)
      {
       delay_count = 0;

       switch(led_num)
       {
        case 0:
         P0_0 = 0;
         P0_1 = 1;
         P0_2 = 1;
         break;
        case 1:
         P0_0 = 1;
         P0_1 = 0;
         P0_2 = 1;
         break;
        case 2:
            P0_0 = 1;
         P0_1 = 1;
         P0_2 = 0;
         break;
       }

       led_num++;
       if(led_num > 2)
        led_num = 0;
        }
      
     
        delay_count_h++;
      if(delay_count_h>3000)
      {
       delay_count_h=0;
       if(angle >= PULS_MID-100 && angle <= PULS_MID+100)
         {
        if(flag_h)
         P0_3 = 0;
        else
         P0_3 = 1;
     
          flag_h = ~flag_h;
         }else
         {
           P0_3 = 0;
         }
      }

          /* target = PULS_MID;

         delay_s(15);

         target = PULS_MID + 300;

         delay_s(15);
     
         target = PULS_MID - 500;

          delay_s(15);
      */
     }      
    }

     

    void T0_int (void) interrupt 1
    {

     TIMER0_OFF;         

         if(flag == 0)
         {
          flag = 1;
            SERVO_PORT = 0;
      rate = PULS_OFF - angle; // low level time
         }
        
         else
         {
      flag = 0;
           SERVO_PORT = 1;
      rate = angle;
     }
       
         if(angle + speed < target)
          angle += speed;
         else if(angle - speed > target)
          angle -= speed;
         else
          angle = target;
        
         TH0 = ~(byte)((0xff00 & rate) >> 8);
         TL0 = ~(byte)(0x00ff & rate);

        TIMER0_ON;
    }


    void ext_int(void) interrupt 0
    {
     IT_DISABLE;
    /*
     if(chat_flag)
     {//채터링처리
      if(target+100 <= PULS_RIGHT)
       target+=100;
      else
       target = PULS_LEFT;
     }else
         chat_flag = FALSE;
    */
     IT_ENABLE;
     

  • No Profile
    올리고 보니 AVR이었네요.ㅠㅠ

    http://www.micombox.com/avr_work/635 

    위 글과 같이 잘 보시길..어차피 원리는 다 똑같고 IR리모콘부분만 다르니까요.
  • No Profile
    글쓴이 고문관 07.10.23 10:35 댓글 좋아요 0 싫어요 0
    리모컨으로 제어하는건가요 ?
    참고하겠습니다
    근데 우회를회서
    rf제어를 하고 있습니다
    지금 한번에 많은 각을주지 않고 조금씩주어서 하고있습니다
    완전 부드럽지않고 ㅡㅡ 답안나옵니다
  • No Profile
    난언제 저거 하나 ㅡ.ㅡ;;

하드웨어 설계 및 개발에 대하여 개발자들이 자유롭게 토론하는 공간입니다.
- Q&A, 자유주재 토론, 관련 정보 공유
- 분야 : 마이크로프로세서 응용, 전기/전자(아날로그/디지털) 회로 설계, C/C++ 프로그래밍, 펌웨어,
         PCB Artwork, 트러블슈팅 등 하드웨어 설계에 관한 전반인 내용
※ 게시글에 맞는 분류를 선택하여 글을 작성해 주시면 쾌적한 사이트 운영에 많은 도움이 됩니다.
※ 하드웨어 인사이트는 회원들간의 거래정보를 게재할 뿐이지, 그 어떤 책임과 의무도 가지지 않습니다.

search
번호 분류 제목 글쓴이 조회 수 날짜
14 구인구직 HOT사람인 - 월급 1000만원 프로젝트, 프로그래머 모집 쭈니닷 5046 2012.06.18
13 구인구직 HOT(주)엑스큐어넷 - 소프트웨어 개발자(프로그래머) 채용 쭈니닷 4916 2012.06.12
12 구인구직 HOT(주)시뮬라인 - 기술개발본부 소프트웨어 팀 신입/경력사원 채용공고 쭈니닷 5476 2012.06.11
11 구인구직 HOT㈜엔써즈 - 시스템엔지니어 신입사원 모집 쭈니닷 6351 2012.06.08
10 구인구직 HOT㈜고우넷 - unix 엔지니어 채용 콘마개마 3833 2012.06.05
9 구인구직 HOT전액무료 자바(java)기반 하이브리드 프레임웍개발 안드로이드 개발교육과정 cocoa13 3388 2012.05.14
8 구인구직 HOT[교육부담 0%] 이공계 전액무료 하이브리드 앱 개발자 취업확정자 교육연수과정 cocoa13 4064 2012.05.01
7 구인구직 HOT[전액무료교육] 구로디지털 단지 자바개발 업체 채용확정자 취업교육” 안드로이드 개발 및 프로젝트 과정 cocoa13 3626 2012.04.30
6 구인구직 HOT[전액무료과정] 웹디자이너 양성교육 비주얼 컨텐츠 디자인 과정 안내 cocoa13 4623 2012.04.26
5 구인구직 HOTPOWER설계 및 하드웨어 경력자 찾아요. 박우종 4997 2012.03.07
4 구인구직 HOT회로수리 및 수땜, ECO작업등 필요하시면 연락주세요. 세윤파파 8654 2012.01.27
3 구인구직 HOT실력있는 펌웨어 엔지니어를 모집합니다. JamesHan 8114 2011.12.27
2 구인구직 HOT(주)로벤 연구소에서 연구원을 모집합니다. maddog 6493 2011.11.10
1 구인구직 HOT[급구] PCB 설계 경력자 & H/W 및 펌웨어 엔지니어 모집 용가리3 13447 2010.12.23
Prev 1 ... 5 6 7 8 9 10 11 12 13 14 Next
  • 마음이 있지 않으면 보아도 보이지 않고, 들어도 들리지 않고, 먹어도 그 맛을 모른다.
    - 대학
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.