회원가입 ID/PW 찾기
AA

어케 어케 센서와 모터를 따로 따로 동작은 시켰지만...
문제는 이걸 합칠려고 하니 잘 모르겠어서요.;;;
일단은 AVR128에 12Mhz 모터는 스텝모터구요.
DDRA는 모터, DDRC는 발광, DDRF는 수광입니다.
일단은 참고서적에 있는 소스를 제것에 맞게 바꾸어는 봤는데요.
참으로 이상한게... 모터에 6개의 선이 있잖아요? SLA7024에서 나오는 출력부가 모터에 들어갈때요.
근데 이것이-____- 6개중에 4개만 펄스가 나오더라구요?;; 대략 난감...
발광부는 펄스파형이 나오는걸로 봐서 정상적이긴한데...
수광부는 쩝...전류는 흘르는데...검은색 선에 반응을 안하니 -_-;; 나중엔 이자식 망가졌나라는 생각이...;;
일단 이게 돌아가면...우찌 응용하면...좌회전 우회전은 가능할꺼 같은데...
양쪽 끝 센서는 가감속용 센서지만 일단은 역회전용으로 되어있습니다.

우찌하면 센서값을 입력받아서 모터를 동작시킬수있을까요?
AVR Studio로 작업중이고 보내는 것은 ponyporg로 하고 있는데...소스에는 문법적 오류는 없고...
워링은 한개 있긴하지만 무시해도 될만한것이고...에러는 없구요.
포트나 여타 지정방법에서 틀린것 같은데요 ;;


#include <avr/io.h>
#include <avr/interrupt.h>
#include <avr/signal.h>

const unsigned char two_phase[ ] = {0x55,0x66,0xaa,0x99};
volatile unsigned char  count,center_sensor,right_sensor,phase_pnt;
unsigned char dir,tmp;

void initialize_timer(void);
void delay(unsigned int d1, unsigned int d2);
void go_step_2phase(unsigned int time);

SIGNAL(SIG_OVERFLOW0)  //4000 Hz sensor interrupt routine
{
    TCNT0 = 141;       //250us
    count++;
    switch(count){
        case 1:
            tmp = PINC | 0xFF;                    
           PORTC = tmp;
            break;
        case 2:
            center_sensor = PINF & 0x81;
            tmp = PINC & 0x00;         
            PORTC = tmp;
            break;
        case 3:
            tmp = PINC | 0xFF;          
            PORTC = tmp;
            break;
        case 4:
            right_sensor = PINF & 0x18; 
            tmp = PINC & 0x00;         
            PORTC = tmp;
            break;
        case 6:
            count = 0;
            break;
        default:
            break;
    }
}

int main(void)
{
    DDRA = 0xFF;           
    DDRC = 0xFF;            
    DDRF = 0x00;
    initialize_timer();
    do{
        if(center_sensor){      
            dir = 0;            
            go_step_2phase(700);
        }
        else if(right_sensor){  
            dir = 1;            //역회전
            go_step_2phase(700);
        }
    }while(1);
}

void delay(unsigned int d1, unsigned int d2)
{
    unsigned int    i, j;

    for(i=0;i<d1;i++){
        for(j=0;j<d2;j++);
    }
}

void initialize_timer(void)
{
    TCNT0 = 141;  
    TCCR0 = 0x03; 
    TIMSK = 0x01; 
    sei();       
}

void go_step_2phase(unsigned int time)
{
    if(!dir)//정회전
        PORTA = (two_phase[phase_pnt++] << 4);
    else    //역회전
        PORTA = (two_phase[phase_pnt--] << 4);
    phase_pnt &= 0x03;                                                        //phase_pnt = (4,0xff)이면 -> phase_pnt = (0,3)
    delay(time, 100);
}

댓글 2
  • No Profile
    -____- 6개중에 4개만 펄스가 나오더라구요?;; 대략 난감...

    -->두개는 전원+.-아닌가요?


    검은색에 반응안하는건 센서의 위치나 센서의불량문제혹은 감도문제일수 있습니다. 다른 글을 검색해보세요.
  • 스테핑모터 쓰시는 듯 한데용
    4개는 컨트롤라인이구요 (A, /A, B, /B)
    2개는 전원부 선입니다.(vcc, gnd)

    센서부쪽은
    첫번째 : 회로 체크 해보기(숏트났는지 등등)
    두번째 : 센서고장여부 확인 바람니다.

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

search
번호 분류 제목 글쓴이 조회 수 날짜
136 전기전자 아무거나 HOTlm3886 power1 에드소닉 880 2009.01.08
135 드론/로봇/라인트레이서 HOT아크마님 질문이 있습니다..1 박정범 989 2008.12.21
134 드론/로봇/라인트레이서 HOT아크마님 다시 질문드릴께요1 박정범 1088 2008.12.20
133 드론/로봇/라인트레이서 HOT악마 라인트레이서 스위치관련 질문요..1 박정범 1188 2008.12.20
132 전기전자 아무거나 HOTkeil c compiler.. 도움좀..6 히무라켄신 1268 2008.12.19
131 드론/로봇/라인트레이서 HOT마이컴을 공부하려면?2 필링사랑 1200 2008.12.15
130 전기전자 아무거나 HOT피에조 센서 피스파이스 시뮬레이션 ㅜ9 깝채 5592 2008.12.09
129 전기전자 아무거나 HOT커패시터 충전시간5 빛나는 영혼 2374 2008.12.03
128 전기전자 아무거나 HOT마이크로프로세서 질문인데요2 마모루 772 2008.12.03
127 전기전자 아무거나 HOT장애인시설 안내강화 지하철네비게이션 작성중2 뚱뚱한팬더 1128 2008.11.26
126 전기전자 아무거나 HOT자일링스를 8051로..1 이순재 910 2008.11.22
125 전기전자 아무거나 HOT라인트레이서와 라이트 트레이서의 차이점1 빨래 868 2008.11.18
124 전기전자 아무거나 HOTL165관련 질문입니다.2 Tristan77 856 2008.11.17
드론/로봇/라인트레이서 HOTAVR128 센서+모터 소스입니다. 봐주세용;;2 천청심 2212 2008.11.16
122 전기전자 아무거나 HOT3채널 온도계를 만들어보라는데...3 성민군 794 2008.11.13
121 전기전자 아무거나 HOT전자과 관련이요4 투덜이닌자 679 2008.11.11
120 전기전자 아무거나 HOTPIR 회로도 설명좀 해주세요.6 준똥 4991 2008.10.31
119 전기전자 아무거나 HOT시뮬레이션 관련 질문입니다.1 준똥 749 2008.10.31
118 드론/로봇/라인트레이서 HOT아크마라인트레이서중 핸들갑 먹이는부분에서 납득안되는부분이 ㅎㅎ4 초보꾼 3571 2008.10.30
117 전기전자 아무거나 HOT막막합니다..어떻게 해야하나요?11 암흑 763 2008.10.29
Prev 1 ... 28 29 30 31 32 33 34 35 36 37 ... 39 Next
  • 경영인의 가장 중요한 과업중의 하나는 자기직원들의 불이행에 대한 변명을 없애는 것이다.
    - 타운센드
  • * 납포인트 정보 *
  • 글 작성 : 3
  • 댓글 작성 : 1
  • 내 글이 추천받음 : 1
저작권법에 위배되는 콘텐츠는 등록 불가하며, 저작물에 대한 권리는 저작자에게 있습니다.
Copyright 2006-2021 © hardwareis.com, All rights reserved.