초급 예제

누구나 쉽게 따라해볼 수 있는 쉬운 예제들입니다. 가볍게 도전~!

스크래치를 사용하여 스위치로 DC 모터 돌리기

2016-01-12 16:39:56

개요

1) DC모터란 무엇인가?
 
DC모터는 직류(DC: Direct Current)를 전원으로 동작하는 전기모터로 직류모터라고도 합니다. 외부의 고정된 부분 (고정자)에 영구자석을 배치하고 내부의 회전체에 코일을 사용하여 구성합니다. 회전체 (회전자/전기자)에 흐르는 전류의 방향을 전환함으로써 발생하는 자기장과 자석 자기장의 상호 반발력을 이용하여 회전력을 얻습니다. 
 
DC모터는 다른 구동장치에 비해 가볍고 구조가 간단하여 선풍기, 냉장고 등 가전제품부터 전기자동차, 고속 열차 등 운송수단까지 광범위하게 사용되고 있습니다.
 



 

2) DC모터 사용방법
 
DC모터는 2개의 커넥터나 터미널 블럭을 사용하여 연결할 수 있습니다. DC모터는 양방향으로 동작하기 때문에 어떤 선을 연결할지 DC모터의 극성은 크게 신경을 쓰지 않아도 됩니다. DC모터에 연결된 전류의 방향에 따라 회전 방향만 변경됩니다. 
 
DC모터의 회전속도는 코일에 흐르는 전류와 정비례하기 때문에, DC모터의 구동전압을 변화시키면 회전속도가 변화됩니다.
 
DC모터 구동시(정지시) 역전류가 발생할 수 있습니다. 역전류란 반대 방향으로 흐르는 전류를 말하며, 큰 전위차를 만들기 때문에 오렌지보드를 포함한 전자부품에 손상을 줄 수 있습니다. 따라서 다이오드를 달아 역전류를 막아줍니다. 

 

 

부품 목록

NO 부품명 수량 상세설명
1 오렌지 보드 1  
2 DC모터 1  
3 스위치 1  
4 330Ω 저항 1  
5 10kΩ 저항 1  
6 다이오드 1  
7 트랜지스터 1  
8 브레드 보드 1  
9 점퍼 케이블 9  

 

부품명 오렌지 보드 DC모터 스위치 330Ω 저항 10kΩ 저항
파트
  다이오드 트랜지스터 브레드보드 점퍼 케이블  
파트  


 

하드웨어 making

 

브레드 보드

 
1. 오렌지보드의  5V핀을 브레드보드의 +버스에 연결합니다.
2. 오렌지보드의 GND핀을 브레드보드의 - 버스에 연결합니다. 
3. DC모터의 커넥터를 세로 방향으로 연결합니다
4. 트랜지스터의 평평한 면이 오렌지보드를 향하게하여 세로로 꽂습니다.
5. 트랜지스터의 가운데 단자 (Base)에 330Ω 저항을 연결합니다. 
6. 다이오드를 DC모터 상단 커넥터에 연결합니다. 다이오드 띠가 아래를 향하게 합니다.
7. 스위치를 그림과 같이 양쪽 IC영역에 걸치게 꽂습니다.
8. 트랜지스터의 첫번째 단자 (Emitter)를 - 버스에 연결합니다.
9. 저항이 연결된 트랜지스터의 2번째 단자 (Base)를 오렌지보드 3번핀에 연결합니다.
10. 트랜지스터의 세번째 단자 (Collector)를 DC모터의 상단 커넥터에 연결합니다. 
11. DC모터의 하단 커넥터를 +버스에 연결합니다. 
12. 스위치의 왼쪽 하단 단자에 오렌지보드 6번핀과 10KΩ 저항을 연결합니다. 
13. 10KΩ 저항 반대쪽 끝부분을 -버스에 연결합니다.
13. 스위치의 오른쪽 상단 단자를 +버스에 연결합니다.
 
 
 

전자 회로도



 

 

 

스크래치 coding

 

스크래치에서 아래 코드를 작성함으로 스위치로 DC모터를 제어하실 수 있습니다.

 <스크래치 스위치로 DC모터 제어하기 코드>
 
 

이번 소스 코드도 스크래치를 사용하여 스위치로 LED 제어하기와 마찬가지로 오렌지보드 소스코드에서는 INPUT_PULLUP을 소스코드에서 설정하여 버튼에 저항을 연결을 하지 않아도 됬지만, 스크래치에서는 이것을 따로 구현할 수 없어 직접 물리적으로 풀업 저항을 연결했습니다.

6번핀에 연결된 버튼이 눌리게 되면 3번핀에 연결된 DC모터가 돌아가고 버튼을 떼면 3번핀에 연결된 모터가 멈춥니다.

 

int motor = 3;
int sw = 6;

void setup() {
	pinMode(motor, OUTPUT);
	pinMode(sw, INPUT_PULLUP);
}

void loop() {
	if (digitalRead(sw) == LOW) {
		analogWrite(motor, 128);
	}
	else {
		analogWrite(motor, 0);
	}
}

 

<오렌지보드 스위치로 DC모터 제어하기 소스>

kocoafabeditor

항상 진취적이고, 새로운 것을 추구하는 코코아팹 에디터입니다!

오렌지 보드, 스크래치, DC 모터, 푸쉬 버튼, 아두이노, orange board, scratch, dcmotor, push button, arduino