슬라이드 1

Similar documents
Microsoft PowerPoint - es-arduino-lecture-09

Section 03 트랜지스터를이용한스위칭동작 16/45 트랜지스터의직류특성 활성 직류상황에서전류 I C 는전류 I B 보다 h FE 배만큼더많은전류가흐름» 베이스와이미터가순방향으로바이어스» 컬렉터와베이스가역방향으로바이어스 차단 만일 I B 가 0[A] 이면컬렉터전류

Motor

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - 3. BJT

PowerPoint Presentation

Microsoft PowerPoint - es-arduino-lecture-08

슬라이드 1

실험 5

5_10.hwp

REVERSIBLE MOTOR 표지.gul

서보교육자료배포용.ppt

INDUCTION MOTOR 표지.gul

TDB 3000 Series Full Closed Loop STEP DRIVER의특징 Feedback-Loop로인한진동이없음 감속기없이높은토크구현 높은정밀도 정확한속도제어 SERVO DRIVER의특징 위치유지력 탈조가없음 토크제어가능 STEP DRIVER 와 SERVO

전자회로 실험

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

제 1 장 집적회로 개요

Slide 1

S O L U T I O N I N N O V A T I O N T P C M E C H A T R O N I C S TPC TPC SERVO & STEP MOTOR, DRIVER Series TDB2000 (일체형/분리형,

歯03-ICFamily.PDF

RVC Robot Vaccum Cleaner

Microsoft PowerPoint - Chapter4&6(강의용)

ez-md+_manual01

슬라이드 1

실험 5


Microsoft PowerPoint - Ch8


EP-B-P407 [변환됨].eps

½½¶óÀ̵å Á¦¸ñ ¾øÀ½

歯FDA6000COP.PDF

untitled

歯동작원리.PDF

도큐멘트3

아날로그입력 Analog Input 작품이외부세계에관한정보를아날로그형태로읽어들이는경우. 센서를이용하는여러프로젝트들이이에속한다. 이를테면작품앞에있는사람의몸무게는어느정도인지, 방안의 조명은얼마나밝은지등을알고자하는경우가이에속한다. 예 ) 다양한센서들

ez-shv manual

Microsoft PowerPoint - 6. FET 증폭기

졸업작품 2 차보고서 Graduation Project 내자전거를지켜줘! 이름학번연락처이메일 이주희 김민선 지도교수 :

전자실습교육 프로그램

Microsoft Word - PEB08_USER_GUIDE.doc

Microsoft PowerPoint - Ch3

(b) 미분기 (c) 적분기 그림 6.1. 연산증폭기연산응용회로

BS-K1217-M□□-3012_ProductGuide_KR_PDF

(b) 연산증폭기슬루율측정회로 (c) 연산증폭기공통모드제거비측정회로 그림 1.1. 연산증폭기성능파라미터측정회로

Microsoft Word - Installation and User Manual_CMD V2.2_.doc

untitled

<4D F736F F F696E74202D DC0FCB1E2C0FCC0DAC8B8B7CEB1E2C3CA>

Stepper Motors

시프트 레지스터 Shift Resistor 자, 이제 LED MATRIX 8x8 Board를 마이크로컨트롤러에 연결된 3개의 선으 로 제어해 보자. 이는 마이크로컨트롤러의 포트를 확장함과 동시에 프로그램 으로 제어를 더 쉽게 한다는 장점이 있다. 물론 포트를 절약하게

대경테크종합카탈로그

PowerPoint Presentation

제목을 입력하십시오

Microsoft Word - SRA-Series Manual.doc

<4D F736F F F696E74202D204443B8F0C5CDC1A6BEEE5FBCADBAB8B8F0C5CD5F E BC8A3C8AF20B8F0B5E55D>

가. 도트매트릭스제어하기 단일 LED와는다르게도트매트릭스를구동시는구동전류가프로세서에서출력되는전류보다사용량을더많이필요하기때문에 TTL 계열의 IC로구동시키기에는무리가따른다. 이러한문제를해결하기위해서사용전압, 전류정격이높은달링턴트랜지스터가어레이형태로들어있는 ULN2803을

hd1300_k_v1r2_Final_.PDF

Motor Control Solution

BC6HP Korean.ai

1. REACTOR TAP 90% 로변경, 제작공급한사유 - 고객요청사항은 REACTOR 80% 운전기준임. - 삼성테크윈에서사용하는표준 REACTOR 사양은 80%, 75%, 70% 로 STARTER 도면은표준사양으로제출됨. - 동프로젝트용모터사양서 / 성적서확인결과

Arduino- 서보모터 서울과학기술대학교기계시스템디자인공학과 교수김성환

4 CD Construct Special Model VI 2 nd Order Model VI 2 Note: Hands-on 1, 2 RC 1 RLC mass-spring-damper 2 2 ζ ω n (rad/sec) 2 ( ζ < 1), 1 (ζ = 1), ( ) 1

김기남_ATDC2016_160620_[키노트].key

1. 제품소개 그림. 1.1 이란? DC 모터구동시하드웨어제작에소요되는시간을단축시켜프로그래밍연구개발및학습효과를극대화시켜주는 입니다. 또한당사 DEV 보드와 1P 점퍼클립케이블을이용하여연동이가능하며, 산업용 DC 모터의정회전, 역회전구동및속도제어시유용하게사용되는 입니다.


KR

Coriolis.hwp

# KM

실험 5

제목을 입력하십시오

MR-3000A-MAN.hwp

Microsoft Word - PLC제어응용-2차시.doc

스마트주택용분전반_160331

논리회로설계 3 장 성공회대학교 IT 융합학부 1

0.1-6

Microsoft Word - LAB_OPamp_Application.doc

Microsoft Word - Lab.4

KEY 디바이스 드라이버

6 강남구 청담지구 청담동 46, 삼성동 52 일대 46,592-46,592 7 강남구 대치지구 대치동 922번지 일대 58,440-58,440 8 강남구 개포지구 개포동 157일대 20,070-20,070 9 강남구 개포지구중심 포이동 238 일대 25,070-25,

27집최종10.22

황룡사 복원 기본계획 Ⅵ. 사역 및 주변 정비계획 가. 사역주변 정비구상 문화유적지구 조성 1. 정비방향의 설정 황룡사 복원과 함께 주변 임해전지(안압지) 海殿址(雁鴨池)와 분황사 등의 문화유적과 네트워크로 연계되는 종합적 정비계획안을 수립한다. 주차장과 광장 등 주변

- 2 -

1_12-53(김동희)_.hwp

2001/1학기 공학 물리 중간고사

차시 AS_02 대상 교육주제아두이노 LED 및버튼제어프로젝트교육시간 120 분 1. 아두이노를이용하여 LED 를제어할수있다. 교육목표 2. 아두이노를이용하여삼색 LED 를제어할수있다. 3. 아두이노에서버튼입력을수행하여프로그램에연동할수있다. 장비류는미리배분하고, 재료는

Microsoft PowerPoint - Ch13

part3[11-15장].hwp

Microsoft PowerPoint - Ch12

01. Start JAVA!

EMCA-EC_STO_BES_E_ a_ k1

KMC.xlsm

Microsoft PowerPoint 상 교류 회로

CD-6208_SM(new)

歯메뉴얼v2.04.doc

歯기구학

2

Microsoft Word doc

ITVX-A-C1

Section 03 인터럽트활성화와인터럽트서비스루틴연결 34/82 장치에대한인터럽트설정과활성화 내부장치에대한특수레지스터존재 장치의특성을반영한동작설정용또는상태관찰용비트로구성 인터럽트사건의발생패턴을설정해야함 인터럽트활성화비트를 1 로셋하여, 인터럽트발생을허락» 전제, 전역

DIB-100_K(90x120)

?뗡뀶?믟뀱?솽꼶?듄꼮??

Transcription:

임베디드시스템개론 : Arduino 활용 Lecture #9: Motor 제어 2012. 5. 18 by 김영주

강의목차 소형모터개요 트랜지스터를이용한 DC 모터제어 Motor Driver IC를이용한 DC 모터제어 Servo 모터제어 2

3 1. 소형모터 (Motor)

소형모터 (1) 소형모터 전기에너지를회전운동으로변환하는장치모터소형화로다양하게응용되고있음 종류 : AC 모터 DC 모터 BLDC 모터 Servo 모터 Stepping 모터 Geared 모터 4

5 2. 트랜지스터를이용한 DC 모터제어

트랜지스터 (Transistor) (1) 트랜지스터 (Tansistor) 전류흐름에대한스위칭또는증폭동작을수행하는소자 트랜지스터의스위칭동작 : 트랜지스터와기계적인스위치를이용한 LED ON/OFF 동작비교 그림 2-1 6

트랜지스터 (Transistor) (2) 트랜지스터의직류특성 활성영역 (Active Region) 직류상황에서전류 I C 는전류I B 보다 h FE 배만큼더많은전류가흐름 h FE : 전류이득 베이스 (Base) 와이미터 (Emitter) 가순방향으로바이어스 컬렉터 (Collector) 와베이스 (Base) 가역방향으로바이어스 차단영역 (Cutoff Region) 만일 I B 가 0[A] 이면컬렉터전류 I C 는거의 0[A], 트랜지스터는차단 포화영역 (Saturation Region) 베이스와이미터, 컬렉터와베이스가모두순방향 I B 가계속증가하더라도최대로흐를수있는이상으로 I C 는증가하지않음 7

트랜지스터 (Transisteor) (3) 트랜지스터포화 / 차단과스위치 ON/OFF 관계 트랜지스터포화 / 차단전기적특성 기계적인스위치 ON/OFF 에의한전기적특성 8

트랜지스터 (Transistor) (4) 트랜지스터를이용한스위치 ON/OFF 동작구현 [ 그림 2-1] 회로에서의트랜지스터스위치 ON 동작 Base에서연결된출력핀에 High 디지털전압레벨출력 R B 가작으면트랜지스터는포화영역에있게됨트랜지스터는스위치 ON 동작과같게됨트랜지스터의 I C 정격전류까지흐르게할수있음 [ 그림 2-1] 회로의트랜지스터스위치 OFF 동작 Base에연결된출력핀에 Low 디지털전압레벨을출력베이스전류가거의 0[A], 트랜지스터는차단영역에있게됨트랜지스터는스위치 OFF 동작을하게됨 9

트랜지스터 (Transistor) (5) 트랜지스터소자유형 NPN-type Transistor PNP-type Transistor 범용 NPN 트랜지스터 2N2222A 베이스에유입되는전류의크기에따라컬렉터에서이미터로전류이득의배수만큼전류가흐름 차단및포화특성 : 10

트랜지스터 (Transistor) (6) 범용 PNP 트랜지스터 2N2907A NPN 트랜지스터와스위칭동작이반대로이루어짐 베이스에전류유입이차단되면이미터로유입되는전류가컬렉터로흐름 베이스에 Low 디지털전압이출력되면베이스와이미터사이는순방향으로바이스되고, 컬렉터와베이스사이는역방향으로바이스됨. 베이스에 High 디지털전압이출력되면베이스와이미터사이가역방향으로바이스되어전류흐름이차단됨. 11

트랜지스터 (Transistor) (7) 트랜지스터를이용한정격초과전류공급 NPN 트랜지스터를이용한구동회로 - ATmega128 정격을초과하는전류공급사례 고휘도 LED 4 개를구동 PC0 에 HIGH 디지털전압레벨이출력 Q1 의스위칭동작은 ON LED 켜기에충분한전류가흐름 정격규격 : 3.2V / 20mA LOW 디지털전압레벨이출력 Q1 의스위칭동작은 OFF LED 꺼짐 [ NPN 트랜지스터를이용한정격초과전류공급회로 ] 12

트랜지스터 (Transistor) (8) 트랜지스터를이용한정격초과전류공급 NPN 트랜지스터를이용한구동회로 - ATmega128 정격을초과하는전류공급사례 ( 계속 ) I C = 75[mA] 계산값 VCE(Sat)=0.3[V], LED 전압강하 3.2[V] I B = 6[mA] 계산값, 출력핀으로충분히공급할수있음 20[Ω] 양단의전압강하는 5-3.2-0.3 = 3.5[V] 측정값 77[mA] 13

트랜지스터를이용한 DC 모터제어 (1) H-Bridge 회로를이용한소형 DC 모터정 역회전 H-Bridge 회로 모터의전류흐름 : 좌 우 A, D 단락 B, C 개방 모터의전류흐름 : 우 좌 A, D 개방 B, C 단락 M+ M- 모터전류차단 A, B, C, D 모두개방 ( 혹은 ) A, B 개방혹은 C, D 개방 [ H- 브리지회로와스위치 ] 14

트랜지스터를이용한 DC 모터제어 (2) 소형모터구동을위한 H- 브리지회로 15 [ H- 브리지회로를이용한 DC 모터정 역방향제어회로 ]

트랜지스터를이용한 DC 모터제어 (3) 소형모터구동을위한 H- 브리지회로 ( 계속 ) 베이스저항값이 470[Ω] 일때 직류전류이득을 50 이라가정하면 450[mA] 까지구동할수있음 DC 모터양단에걸리는전압 4.6[V], 450[mA] 범위의소형또는마이크로 DC 모터를구동 16

트랜지스터를이용한 DC 모터제어 (4) 소형모터구동을위한 H- 브리지회로 ( 계속 ) DC 모터회전을위한 A, B, C, D 입력신호 17

트랜지스터를이용한 DC 모터제어 (5) 소형모터구동을위한 H- 브리지회로 ( 계속 ) 소형모터를위한간소화된회로 18

트랜지스터를이용한 DC 모터제어 (6) 소형모터구동을위한 H- 브리지회로 ( 계속 ) 간소화된회로에서의 DC 모터회전을위한입력제어 19

H-Bridge 회로를이용한 DC 모터제어실험 (1) 실험개요 간소화된 H-Bridge 회로를이용하여 DC 모터의회전을제어한다. 사전요구사항 트랜지스터의특성을이해하여야한다. DC 모터의동작방식을이해하여야한다. H-Bridge 회로의동작원리를이해하여야한다. 20

H-Bridge 회로를이용한 DC 모터제어실험 (2) 회로도및회로구성 회로도 21

H-Bridge 회로를이용한 DC 모터제어실험 (3) 회로도및회로구성 회로구성 22

H-Bridge 회로를이용한 DC 모터제어실험 (4) 아두이노프로그램 : H-Bridge 회로제어 const int ACPin = 2; const int BDPin = 2; void setup() { pinmode(acpin, OUTPUT); pinmode(bdpin, OUTPUT); } digitalwrite(acpin, LOW); digitalwrite(bdpin, LOW); void loop() { digitalwrite(acpin, LOW); // forward rotation digitalwrite(bdpin, HIGH); delay(2000); digitalwrite(acpin, HIGH); // reverse rotation digitalwrite(bdpin, LOW); delay(2000); digitalwrite(acpin, HIGH); // stop digitalwrite(bdpin, HIGH); delay(500); } 23

H-Bridge 회로를이용한 DC 모터제어실험 (5) 실험결과및검토사항 간소화된 H-Bridge 회로에서는단순히 DC 모터의회전방향만전환할수있다. DC 모터의속도를제어할수있는방법은? DC 모터에서양극사이 (M+ 과 M- 사이 ) 에흐르는전류량을제어 트랜지스터는베이스에공급되는전류량에따라컬렉터와이미터사이에흐르는전류량이증가함. 베이스에공급되는전류량을 PWM으로제어가능 24

H-Bridge 회로를이용한 DC 모터제어실험 (6) 속도제어 H-Bridge 회로 25

H-Bridge 회로를이용한 DC 모터제어실험 (8) 수정회로도및회로구성 수정회로도 26

H-Bridge 회로를이용한 DC 모터제어실험 (9) 회로도및회로구성 회로구성 27

H-Bridge 회로를이용한 DC 모터제어실험 (10) 아두이노프로그램 : 속도조절 H-Bridge 회로제어 const int ACPin = 2; const int BDPin = 2; const int speedpin = 8; void setup() { pinmode(acpin, OUTPUT); pinmode(bdpin, OUTPUT); } digitalwrite(acpin, LOW); digitalwrite(bdpin, LOW); void loop() { int duty; for (duty = 20; duty < 255; duty += 20) { analogwrite(speedpin, duty); digitalwrite(acpin, LOW); // forward rotation digitalwrite(bdpin, HIGH); delay(2000); 28

H-Bridge 회로를이용한 DC 모터제어실험 (11) 아두이노프로그램 : 속도조절 H-Bridge 회로제어 } digitalwrite(acpin, HIGH); // reverse rotation digitalwrite(bdpin, LOW); delay(2000); digitalwrite(acpin, HIGH); // stop digitalwrite(bdpin, HIGH); delay(500); } 29

3. Motor Driver IC 를이용한 DC 모터제어 30

TA8050P (1) TA8050P 간단한모터드라이버 IC 회전방향전환만제어가능 정격전류 3A 까지지원가능 별도의주변소자가필요없음 주의사항 : 모터전압이아두이노공급전압보다높아야함. IC 와아두이노가동일한접지를사용하여야함.

TA8050P (2) TA8050P 사용예 :

L298 (1) L298 Series 대형패키지형태로과열보호기능지원 DC 46V까지의동작전압과 DC4A까지의전류제어가능 PWM을이용하여속도제어가능논리입력 1.5V, Dual Bidirectional 타입의 IC 주로중형 DC모터를제어하는데사용

L298 (2) L298 를이용한모터드라이버회로 IC 동작전압과 Motor 공급전압이틀림

L298 (3) L298 를이용한모터드라이버회로

36 4. Servo 모터제어

Servo Motors (1) Servo Motors a motor with an inherent feedback mechanism that allows you to send position commands to it without requiring you to do the position reading DC motor High-torque gearing Potentiometer to read position Can be positioned from 0-180º Feedback circuitry to read pot and control motor All built in, you just feed it a PWM signal Easy three-wire PWM 5V interface RC 모형등에반복동작제어등에주로사용회전운동을직선운동으로변환이용 37

Servo Motors (2) Servo Motors ( 계속 ) 다양한크기를지원모든종류가동일한 3-wire I/F 지원 서보모터사양예 : weight: 9g speed:.12s/60deg @ 6V torque: 22oz/1.5kg @ 6V voltage: 4.6~6V size: 21x11x28 mm 38

Servo Motors (3) Servo Motor 제어 PWM Freq. = 50Hz(i.e. every 20 millisecs) Pulse width = from 1 to 2 millisecs 1 millisec = full anti-clockwise position 2 millisec = full clockwise position 39

Servo Motors (3) Servo Motor 동작 실제로는 pulse 폭은 500 usec 에서 2500 usec 사이에서제어가능 40

Servo Motors (4) Servo Motor 동작테스트 아두이노를이용하여 servo 모터회전동작을테스트한다. Servo 모터를 0 ~180 사이를이동하도록한다. 테스트회로 : 41

Servo Motors (5) Servo Motor 동작테스트 ( 계속 ) 테스트프로그램 #1 const int servopin = 7; int pulsewidth = 0; int angle; void servopulse(int servopin, int angle) { pulsewidth = (angle * 3.3) + 1150; digitalwrite(servopin, HIGH); delaymicroseconds(pulsewidth); digitalwrite(servopin, LOW); Serial.print( Pulse width = ); Serial.println(pulseWidth); delay(20); } void setup() { pinmode(servopin, OUTPUT); Serial.begin(115200); } 42

Servo Motors (6) Servo Motor 동작테스트 ( 계속 ) 테스트프로그램 #1 void loop() { for (angle=0; angle <= 180; angle++) { servopulse(servopin, angle); } } 43

Servo Motors (7) Servo Motor 동작테스트 ( 계속 ) 테스트프로그램 #2 const int servopin = 7; int pulsewidth = 0; int angle; void servopulse(int servopin, int angle) { pulsewidth = (angle * 3.3) + 1150; digitalwrite(servopin, HIGH); delaymicroseconds(pulsewidth); digitalwrite(servopin, LOW); Serial.print( Pulse width = ); Serial.println(pulseWidth); delay(20); } void setup() { pinmode(servopin, OUTPUT); Serial.begin(115200); Serial.println( Servo Motor Test Ready ); } 44

Servo Motors (8) Servo Motor 동작테스트 ( 계속 ) 테스트프로그램 #2 void loop() { int val = Serial.read(); if (val >= 0 && val <= 9 ) { val -= 0 ; val = val * (180 / 9); Serial.print( moving servo to ); Serial.println(val, DEC); for (int i=0; i < 50; i++) { servopulse(servopin, val); } } } 45

Servo Motors (8) 테스트결과및검토사항 Servo Motor 회전을정확하게제어할수없다 Servo Motor 종류에따라 pulse width 사양이다름. 정확한 pulse width 제어가어려움 Servo Motor 동작제어하는동안다른동작을병행할수없다. delay() 함수를사용하여시간을조절하기때문 Timer 장치를이용하여해결가능 아두이노 servo 라이브러리를사용 46

Servo Motors (9) 아두이노 Servo 라이브러리 아두이노에서 servo 모터를사용할수있도록지원하는라이브러리 Mega B/D의경우, 48개의 servo 모터를지원가능 13 개이상의모터를사용할경우 pin 11 & 12 의 PWM 기능을사용할수없음 이전의 B/D 의경우, 12 개의 servo 모터를지원가능 pin 9 & 10 의 pwm 기능을사용할수없음 주요함수 attach() : servo PWM 제어핀을설정 attach(pin) / attach(pin, main, max) write() : servo shaft을원하는각도만큼이동 write(angle) 연속적인회전동작인경우는속도를의미 writemicroseconds() : servo shaft 이동은시간으로지정 read() : servo의현재angle를반환 attached() : servo가 attach되어있는지검사 detach() : 연결된 servo의연결해제 제어핀의 PWM 기능복원 47

Servo Motors (10) 아두이노 Servo 라이브러리 테스트프로그램 : sweep #include <Servo.h> Servo myservo; // create servo object to control a servo int pos = 0; // variable to store the servo position void setup() { myservo.attach(7); } // attaches the servo on pin 9 to the servo object 48 void loop() { for(pos = 0; pos < 180; pos += 1) // goes from 0 degrees to 180 degrees { // in steps of 1 degree myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } for(pos = 180; pos>=1; pos-=1) // goes from 180 degrees to 0 degrees { myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } }

Servo Motors (11) 아두이노 Servo 라이브러리 테스트프로그램 : knob #include <Servo.h> Servo myservo; // create servo object to control a servo int pos = 0; // variable to store the servo position int val = 0; void setup() { myservo.attach(7); } // attaches the servo on pin 9 to the servo object void loop() { val = analogread(0); // read the value of potentimeter val = map(val, 0, 1023, 0, 179) myservo.write(pos); // tell servo to go to position in variable 'pos' delay(15); // waits 15ms for the servo to reach the position } 49

과제물 #4 과제내용 1. Servo 모터를이용하여차단기를구현하여라. 물체의이동을인식하여물체가접근하면차단기를올리고, 물체가지나가면차단기를내리도록한다. 2. 학기말과제최종설계도를작성하여제출하여라 제출물 회로도, 프로그램소스, 실행예 ( 사진 ) 제출일 차주수업시간 50