실험제목DC모터 드라이버실험목적? H-Bridge의 원리를 이해한다.? Labview와 DAQ를 이용하여 DC모터를 제어할 수 있는 회로를 구성한다.? DC Geared Motor의 원리를 이해한다.? 엔코더를 이용하여 모터의 회전속도를 측정할 수 있다.? 4체배(QEP)회로를 이용하여 엔코더의 분해능을 높일 수 있다? OP Amp를 이용하여 PWM파형을 출력할 수 있다.본 자료는 예비레포트를 쓸 때 필요한 지식들을 모두 모아놓은 자료입니다.한 문항도 빠짐없이 포함되어있음을 알려드립니다.- DC모터 드라이버, 예비레포트 총정리1번, 시스템설계(네모박스 안에 들어갈 것은 정답, 다음 페이지에)2~3번, DC Geared Motor, Incremental Type Encoder(모든 항목에 대한 답과 계산식이 다 포함되어 있음. Pulse, 각도, rpm 등등)4번, 4체배 회로사진으로 답 첨부5번, H-Bridge모든 답 및 Datasheet 포함.핵심은 저항값 계산!TIP222 증폭률을 4000이라 하면 모터의 정격 전류가 ㅇㅇㅇmA이므로I _{B(122)}=ㅇㅇㅇ2N2222가 B=150이라 하면I _{B(127)}=ㅇㅇㅇ따라서R _{B} = {BIGCIRC BIGCIRC V} over {BIGCIRC BIGCIRC A} = BIGCIRC TIMES 10 ^{6} CONG BIGCIRC M OMEGATIP127의 B=ㅇㅇㅇ이라하면 ㅇㅇㅇ=ㅇㅇㅇ=I _{B(127)}2N2222의I _{E} CONG I _{C} = BIGCIRC BIGCIRC mA` 비례를 통해R _{C}를 구해보면R _{C} = BIGCIRC M OMEGA TIMES 10 ^{BIGCIRC } TIMES {BIGCIRC mA} over {BIGCIRC mA`} = BIGCIRC kΩ 이다. 실험에서 쓸 저항을 정한다면 ㅇㅇㅇk가 적절할 것이다.6~7번, PWM회로, Labview답 첨부8번, 기타(각 부분에 대한 회로도 설계)뒤에 피스파이스 회로 및 시뮬 첨부1번2번1.DC모터는 입력 전압과 모터의 속도가 비례하는 특징을 가지고 있다.원리는 전자기력에 의한 것인데, 자기장 속에 전류가 흐르면 전류가 흐르는 도선은 힘을 받아 움직인다. 자기장 방향은 N->S이며, 전류는 +->- 이다. 이 때 전압과 전류는 비례하므로 전압과 속도가 비례한다고 할 수 있다.2.Output이 6000rpm인데 실험에 사용하는 모터의 감속비가 1/31이므로 실제 모터의 rpm은 6000/31 = 200rpm이다.3.모터가 한 바퀴 도는데 발생하는 pulse는 다음과 같다.엔코더 펄스수 x 기어비 x 체배 = 26*31*4=3224여기서 비례식을 이용하여 1 pulse당 각도를 계산하면 다음과 같다1:x=3224:360. 따라서 1 pulse당 각도 x=0.112도4.rpm=f _{max} TIMES 60 TIMES 10 ^{3} /Z 이다.f _{max}: maximum pulse frequency of shaft encoder, or input frequency of downstream.Z: number of pulses of shaft따라서 Z는 모터 기본 사양에 나오는 것이므로, 엔코더에서 출력된 신호f _{max}만 알면 rpm을 알 수 있다. 앞서 짜 놓은 회로대로 계산을 하면10Mhz TIMES 1/1000 TIMES 1/4`=`f``=`2.5kHzrpm=2.5 TIMES 10 ^{3} TIMES 60÷26=5769rpm3번감속비는 1/31, 4체배일 때엔코더 펄스 수 x 기어 비 x 4 = 26 x 31 x 4 = 3224 번 발생4번5번1번PNP는 P형N형P형 반도체를 접합시킨 것이고 NPN은 반대로 접합시킨 것이다.P형에는 정공이 다수캐리어고 N형은 전자가 다수캐리어다.전자이동이 정공이동보다 빠르기 때문에 빠른 것을 요구할 때는 npn,크기나 속도 보다는 민감도가 중요하면 pnp를 사용해야 한다.2번위 회로는 H-Bridge회로도이다. 저항 Rc를 통해 어떤 트랜지스터가 ON될지를 조절할 수 있다. 위쪽 TR이 ON되면 모터에 전류가 위쪽에서 아래쪽으로 흐르고 아래 TR이 ON되면 모터에 전류가 아래에서 위로 흐른다. 따라서 전자가 정방향으로 설정했다면 후자는 역방향이 되는 것이다.3번TR의 일반적인 증폭율은 100~1000배 정도가 됩니다. Darlington이라는 것은 두 개의 TR을 직렬 접속한 것으로 TR의 증폭을 배로 만들어준다.위의 그림은 TIP122를 datasheet에 나온 것이다. 증폭률이 1000~10000이라는 것을 확인할 수 있다. 그래서 많은 전류를 흘릴 수 있는 스위칭 TR에 사용한다.4번TIP222 증폭률을 4000이라 하면 모터의 정격 전류가 1600mA이므로1600/4000=0.4mA=I _{B(122)}2N2222가 B=150이라 하면 0.4mA/150=2.67uA=I _{B(127)}따라서R _{B} = {5-0.7 TIMES 3V} over {2.67uA} =1.08 TIMES 10 ^{6} CONG 1M OMEGATIP127의 B=4500이라하면 1600/4500=0.35=I _{B(127)}2N2222의I _{E} CONG I _{C} =0.4mA` 비례를 통해R _{C}를 구해보면R _{C} =1M OMEGA TIMES 10 ^{-3} TIMES {0.4mA} over {0.35mA`} =1.14k 이다. 실험에서 쓸 저항을 정한다면 1k가 적절할 것이다.6번6-1>PWM이란 Pulse Width Modulation을 뜻한다. 즉 펄스 폭 변조이다.on 시간과 off 시간을 조절하여 제어하는 방법으로 motor 속도 제어, LED밝기 제어, inverter 제어 등에 사용된다.on 시간에 따라 평균 전압이 틀려지는 것을 이용한다.예를 들어 최대전압이 10V 일 때, 펄스를 50%씩 on off를 교대로 하면 전압최대최소는 10V에서 왔다 갔다하지만 평균전압은 5V가 나온다.DC모터의 경우 전압에 따라서 속도(RPM)이 변하는데, 전압이 올라갈수록 RPM이 올라간다.그래서 PWM으로 전압을 조절하여 motor 속도를 조절할 수 있다.참고로, 태양광 모듈에서 나온 전기를 PWM 충전방식으로 PWM 방식 충전콘트롤러가 사용되고 있다,6-2>단전원 OP Amp는 Ground Sense OP Amp를 가리킨다. 즉, Ground level (단전원 사용 시)의 입력이 인가 가능한 OP Amp를 의미한다.6-3>( http://na8888.blog.me/130168134421)7번7-1>(http://blog.naver.com/PostView.nhn?blogId=vikaly&logNo=80107412352&categoryNo=1&viewDate=¤tPage=1&listtype=0)ms 단위로 시간을 재는 곳에 사용하는 함수이다. 이 함수의 기준인 0ms가 되는 시점은 컴퓨터가 부팅이 되면서 랩뷰가 운영체제의 어딘가에서 자신과 관련된 서비스를 실행하면서부터이다. 시작점은 다르지만 그 이후부터는 윈도우 타이머와 연동해서 1ms씩 카운트를 해주게 된다. 이 함수의 값의 범위는 Unsigned Integer 32bits, 즉, 0부터 2의 32승에다가 1을 뺀 값까지 표현이 가능하다. 주로 for, while 루프가 실행될 때 그 루프가 실행되는 타이밍을 체크할 때라든지 아니면 어떤 코드가 실행될 때 그 코드가 실행되는 시간 등을 알고 싶을 때 유용하게 사용할 수 있다.지정된 ms를 기다리고 ms 타이머의 값을 반환한다. 0의 값을 기다릴 ms입력에 연결하여 현재 스레드가 CPU의 컨트롤을 양도하도록 강제한다.이 함수는 비동기적으로 시스템을 호출하나, 노드 자체는 동기적으로 작동한다. 그러므로, 이 함수는 지정된 시간이 지날때까지 실행을 완료하지 않는다.
--------------------------------------------------------------------------------------------------------------Digital Circuit 2--------------------------------------------------------------------------------------------------------------분 반:x반조:x조학 번:20xxxxxxxx이 름:x x x실험일자:x월 xx일(금)제출일자:x월 xx일(수)실험목적Labview와 DAQ를 이용하여 엔코더를 측정할 수 있는 회로를 구현한다.DC Geared Motor의 원리를 이해한다.Incremental Type Encoder의 동작우너리를 이해하고 이를 이용한다.4체배(QEP) 회로를 이용하여 엔코더의 분해능을 높일 수 있다.Karnaugh Map을 이용하여 논리연산회로를 최소화 할 수 있다.실험결과실험 1 : 발진회로실험결과분석 : 위 회로는 발진회로이다. Y2크리스탈에서 발진이 일어나는데, 일정 전압을 가하면 항상 동일한 사인파를 생성시키는 주파수 제너레이터 역할을 한다. 따라서 회로도를 보면 Y2크리스탈 부분에 10Mhz라고 쓰여있는데 10Mhz로 사인파를 발생시킨다는 뜻이다. 주기는 1/주파수이므로 계산해보면 1/10M = 10us가 나온다. 그런데 발진회로는 낮은 주파수를 만들 수 없기 때문에 다음 회로인 분주회로에서 주파수를 낮춘다. 이 실험에서 브래드보드에 7414소자 사이에 있는 캐패시터를 연결할 때 조금 복잡해서 한 번 잘못연결 했었다. 그랬더니 정확한 파형을 얻을 수 없었는데, 다시 제대로 연결하니 위에 오실로스코프 사진처럼 제대로 된 파형을 얻을 수 있었다. 여기서 출력파형 모양에서 캐패시터의 충방전이 관찰되는데, 이는 안정화를 위해 회로에 캐패시터를 추가시켰기 때문이다.실험 2 : 분주회로실험결과분석 : 위 실험은 분주회로였다. 목적은 위에서 말한 바와 같이, 주파수를 낮춰주는 역할을 한다. 회로구성은 위와 같으며 자세한 설명을 위해 datasheet에 있는 소자를 첨부했다. 위의 pin설명을 하자면 위 실험인 발진회로에서 생성된 10Mhz의 파형이 분주회로의 nCP0에 들어간다. 그럼 그 파형이 Q0에서 2분주되어 나오고 그것을 다시 CP1에 넣는다. 그럼 최종적으로 10분주가 되어 Q1, Q2, Q3에서 파형이 출력된다. 세개의 주기는 모두 같지만, 출력파형의 길이가 약간 다르다. 실험에서는 Q3를 사용했다. 소자 하나당 두 번 분주를 할 수 있으므로 총 100분주까지 가능하다. 그래서 실험에서 두개의 소자를 써서 1000분주를 한 후 다음 회로로 넘어갔다. 또한 MR은 동기화 마스터 리셋기능을 하며, high일 때 동작하므로 Ground에 연결해서 동작하지 않게 한다. 그렇게 총 1000분주를 하여 Q3로 나온 파형이 위의 오실로스코프 사진이다.실험 3 : 4체배 회로실험결과분석 : 위 실험은 4체배 회로 실험이었다. 출력된 파형을 보면 최종결과 한 주기에 총 4개의 High신호가 나오는 것이 관찰된다. 위 구성된 회로는 왼쪽은 74LS74이며, 오른쪽 밑에 있는 소자는 7486으로 XOR이다. 4체배회로에 모터를 연결하게 되는데, A상과 B상은 7474의 D에 입력시키면 된다. 이 A신호와 B신호는 회전방향을 산출되도록 디코드를 할 수 있는데, 4체배를 써서 A와 B신호의 모든 Edge를 변환하도록 회로를 구성하였다. 회로는 조금 복잡해 보이지만, 원리를 이해하면 그렇게 어렵진 않다. 일단, 분주회로를 통해 1000분주된 클럭을 7474의 CK로 받는다. 그리고 첫번째 7474에서 나온 출력중 Q를 다음 7474의 입력에 넣는다. 그러고 두 번째 7474에서 나온 출력을 XOR의 입력으로 보낸다. 그 뒤에 피스파이스 회로에서 보이는 바와 같이 3번의 XOR을 거쳐 나온 출력을 카운터회로로 보낸다. 위에 찍힌 오실로스코프 사진은 A상 B상을 입력 후, 나온 출력파형이다. 한 주기에 4개의 High신호가 나오는 것을 확인할 수 있다.실험 4 : 카운터 회로[N-state ripple counter using ripple clock]실험결과분석 : 위 실험은 카운터회로였다. 카운터회로는 출력되는 신호를 DAQ에 입력을 시켜 카운트를 하는 역할을 한다. FND에서 총 4개의 입력이 필요한데, 그 바로 Q0, Q1, Q2, Q3에서 나오는 신호가 그 역할을 한다. 먼저, 이 회로에 들어가는 클락(CP)은 4체배회로에서 출력으로 나온 신호를 넣으면 된다. 또한 parallel load는 Low에서 작동하므로 High를 연결한다. 또한 위의 datasheet에 나온 회로도처럼 RC(RCO)를 다음 74190의 클락(CP)에 넣는다. 그러고 작동을 위해 CE에 Low를 연결하고 나머지는 사용하지 않는다. 그렇게 총 3개의 74190을 썼는데, 첫 번째는 1의자리를 카운트하는 회로이고, 두 번째는 10의자리, 세 번째는 100의자리를 카운트하는 회로가 완성된다. 회로는 이렇게 완성되며, 다음 실험에서 Q1~Q4까지 각각 해당하는 DAQ핀에 연결하여 Labview를 통해 카운트하는 것을 확인하게 된다.실험 5 : 스위치실험결과분석 : 위 실험은 스위치였다. 첫 번째 스위치는 Reset, 두 번째 스위치는 Stop이다. 스위치를 이용하려면 가장 중요한 부분이 바로 Toggle이다. Toggle기능을 하기 위해 JK-FF을 사용하였다. 또한 각 스위치에 저항을 연결해서 전압이 분배되도록 하여 안정적으로 작동하도록 만들었다. LED를 저항 바로 다음에 연결해놨다가, 실험 때는 빼고 실험을 했다. 별 차이는 없지만, 사실 LED를 달아 놓는 것이 스위치가 작동하는 것을 명확하게 확인할 수 있기는 하다.실험 6 : Labview (디코더 & FND & Display)(구동영상 http://blog.naver.com/m_campus/150189123686)실험결과분석 : 위 Labview프로그램은 가장 위의 사진에서 알 수 있듯이, 모터가 회전함에 따라 그 신호를 읽어들여서 회전수와 그 순간의 각도, 그리고 누적각도 등을 출력하는 프로그램이다. 위에 7-segment BCD디코더가 있는데 이것을 3번 반복하면 1의자리 10의자리 100의자리를 표현할 수 있다. 그리고 회전수와 각도는 360으로 나누도록 해서 표현하도록 해놓았다. 위의 사진을 보면 Labview는 매우 명료한 표현이 되므로, 프로그램을 작성하는데 그렇게 어렵지는 않았다. 다만 프로그램 구동영상을 보면 약간의 오차가 있는데 1의자리가 조금씩 튀는 현상이 보인다. 오차의 원인은 아무래도 회로를 작성할 때, 미묘하게 신호가 잘 안가는 부분이 있어서 그런 것이라 추측된다.고 찰이번 프로젝트를 통해서 성공적으로 인코더회로를 구현하여 모터가 회전하는 것을 Labview를 통해 그 데이터를 얻을 수 있었다. 거의 모든 조가 성공했지만 오차에 있어서 그 차이가 조금씩 났는데, 회로의 미묘한 차이때문으로 생각된다. 또한, 실험 도중 문제가 생겼을 때, 그 문제의 부분을 찾아내서 고치는데도 회로작성의 중요도를 알 수 있었다. 우리 조는 회로를 매우 깔끔하게 만들어서 오실로스코프로 파형을 찍어 본 후 문제가 생기면 바로 수정할 수 있었기에, 남들보다 항상 실험진행이 빠른 편에 속했었다. 가장 어려웠던 부분은 4체배회로 부분과 Labview였다. 랩뷰는 다 만들고 난 후엔 그렇게 어렵지 않았다는 것이 가장 크게 느껴지는 부분이었다. 4체배회로는 이해하는데 조금 걸렸다. 모터를 연결했을 때 어떤 원리로 신호가 입력되고 출력되는지에 대해 이해가 잘 안 갔으나, 오실로스코프를 통해 출력된 파형을 하나하나 관찰하고 이론을 다시 보면서 이해할 수 있었다. 그래서 회로를 만들 때 4체배부분은 조원의 도움을 많이 받았었다. 또한 스위치 부분이 조금 어려웠다. 원리대로 하려니 잘 안되서 결국 다른 조의 도움을 받아야 했다. 그리고 1의자리에서 값이 튀는 오차가 발생했는데, 그 부분은 어디에서 오차가 발생되는지 해석이 안돼서 결국 못 고치고 끝났다. 아무래도 회로 어딘가 연결이 잘 안되었다고 추정된다. 그리고 Labview를 통해 조건문을 통해 값이 튈 때, 그 값을 수정하도록 작성하면 오차값이 나와도 수정되지 않았을까 하는 약간 막연한 추정을 해본다.느낀 점 및 잘못된 점처음 프로젝트를 시작했을 때는, 조교님이 보여준 완성본을 보고 ‘아, 과연 내가 이 프로젝트를 할 수 있을까?’싶었는데 조원과 함께 한 단계 한 단계 하다보니 어느새 완성을 하였다. 각 파트에 대한 이해를 제대로 하고 넘어가면 다음 파트를 원활히 진행하고, 또 그 파트를 제대로 이해해서 다음 파트로 넘어가고 하는 방식으로 생각보다 어렵지 않게 진행이 되었던 것이 아직도 조금 신기하지만 뿌듯하다. 하지만, 이번 실험에서 조원의 도움을 많이 받았는데, 2인1조인데 혼자서 다하는 조를 보면, 하는 한 명은 확실히 실력이 많이 늘었을 것으로 생각되어 더 열심히 해야겠다는 자극을 받았다. 또한 처음에 Labview는 거의 맨땅에 헤딩하는 느낌이었다. 일단 전에 만들어 놓은 7-segment decoder를 복사 붙여넣기를 하고 DAQ 출력으로 해 놓았다. 그 다음 부분에서 크게 막혔었는데, 다른 조원 등의 도움을 받기도 하며 한 단계 한 단계 완성해갔다. 그래서 완전히 혼자 짠 프로그램은 아니지만, 이해를 하며 작성하니 확실히 랩뷰에 대한 실력이 향상된 것이 느껴졌다. 또한, 마지막 실험 전날 밤새 하는 과정이 있었는데, 우리조는 웬만한 것은 다 했다고 여겨 그 날 조금만 하고 집에갔다. 이 때 DAQ를 연동해서 작동하는 것을 확인했어야 했는데 안 했던 것이 크게 화근이 되었다. 다음날 DAQ가 고장났는데, 그런지도 모르고 엉뚱한데서 계속 원인을 찾고있었다. 역시 실험은 남들 할 때 같이하여 시너지효과를 받고, 항상 확실하게 하고 넘어가야 한다는 것을 느꼈다.x반 / x조 / 20xxxxxxx / xxx전자회로 실험1PAGE * MERGEFORMAT1 | 페이지