아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo

아두이노 시뮬레이터 01장 - 아두이노 시뮬레이터 서킷(Circuits) 01-1 아두이노 시뮬레이터의 필요성 01-2 아두이노 시뮬레이터가 필요한 사람 01-3 아두이노 시뮬레이터의 동작환경 02장 - 서킷(Circuits) 개요 02-1 팅커캐드(TinkerCAD) 회원가입 02-2 새로운 디자인 생성하기 02-3 회로 배선하기 02-4 키보드 단축키 사용방법 03장 - 신호와 회로의 기본 원리 03-1 디지털과 아날로그 신호 03-2 회로구성과 기본 원리 04장 - 디지털 출력 04-1 LED(발광다이오드) 04-2 LED 깜박이기 예제 04-3 저항(Resistor) 04-4 브레드보드(Breadboard) 04-5 시리얼(Serial) 모니터 04-6 두 개의 LED 교대로 깜빡이기 05장 - 디지털 입력 05-1 푸시버튼으로 LED 켜고 끄기 05-2 풀업(Pull-up)저항과 풀다운(Pull-down) 저항 05-3 내부 풀업(Pull-up)저항 사용하기 05-4 슬라이드 스위치 사용하기 05-5 푸시버튼을 슬라이드 스위치처럼 사용하기 05-6 PIR 센서로 현관등 만들기 06장 - 아날로그 입력 06-1 가변저항(Potentiometer) 사용하기 06-2 조도센서(Photoresistor) 사용하기 06-3 온도센서(TMP36) 사용하기 07장 - 아날로그 출력 07-1 LED 밝기 제어하기 07-2 삼색(RGB) LED 사용하기 07-3 DC모터 제어하기 08장 - 함수와 라이브러리 08-1 초음파(Ultrasonic) 센서 사용하기 08-2 서보모터(Servo motor) 사용하기 09장 - 액정 디스플레이(LCD) 09-1 액정 디스플레이(LCD) 사용하기 09-2 액정 디스플레이(LCD) 응용하기 10장 - 7세그먼트(Segment) 10-1 7세그먼트 사용하기 10-2 7세그먼트 디코더 사용하기 11장 - 적외선 센서와 리모컨 11-1 적외선 리모컨으로 LED 제어하기 11-2 적외선 리모컨으로 무드등 만들기 12장 - 모터 드라이버 12-1 모터 드라이버로 DC모터 제어하기 12-2 무선조종 2륜 자동차 만들기 13장 - 피에조(Piezo) 스피커 13-1 피에조 스피커 로 음계 표현하기 13-2 피에조 스피커로 전자키보드 만들기

목차
1) DC 모터란?
2) 가변저항을 이용한 모터 속도 제어하기
3) 스위치를 이용하여 모터 방향 바꾸기
4) 스위치를 이용하여 기어드모터 방향 바꾸기
5) 버튼 두개를 연결하여 기어드모터 방향 바꾸기

1. DC 모터란?

아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo

DC(Direct Current) 직류 모터이다. (교류 Alternative Current = AC모터)

직류전원으로 동작하며, 다른 고정장치에 비해 가볍고 간단하다.

DC 모터는 속도 및 방향 제어 등이 쉽다.

미니카 같은 장난감 모터로도 사용하는 DC 모터,

DC 모터 선택 기준은,

RPM(Revolutions Per Minute) : 분당 회전수, 예를 들어 500 rpm은 분당 500회전을 뜻함.

이번 수업에서는 RPM을 조절하기 위해서 PWM 포트에 연결하여 속도를 조절해 보겠습니다!


2. 가변저항을

이용한 모터 속도 제어하기

아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo
아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo

int mpin = 9;

void setup()
{

  pinMode(mpin , OUTPUT);
  Serial.begin(9600);

}

void loop()
{

  int val = analogRead(A5);			 	//아날로그 입력을 val에 입력받는다.

  int convertval = map(val,0,1023,0,255);
  //val변수가 가지고 있는 0~1024 센서 값을 0~255로 연산하여 convertval변수값에 넣어준다.

  Serial.println(convertval); 				//가변저항 값을 출력한다.
  analogWrite(mpin,conval);			 	//가변저항 값에 따라 모터의 속도를 조절한다.
  
  delay(100);

}

3. 스위치를 이용하여 모터 방향 바꾸기

아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo
void setup()
{
  pinMode(9 , OUTPUT);	//pwm 지원
  pinMode(10, OUTPUT);	//pwm 지원
  pinMode(8, INPUT); 	//스위치 입력 받기위한 핀
  Serial.begin(9600);
}

void loop()
{
  int val = analogRead(A5);		
  int convertval = map(val,0,1023,0,255);
  
  int inputSwitch = digitalRead(8);		//스위치값을 inputSwitch 변수에 넣는다
  int OnOff = inputSwitch;			//입력받은 스위치값이 On 인지 Off 인지 확인하기위한 변수
  
  if(inputSwitch == LOW){			//스위치의 값이 LOW이면 9번 핀에 전원을 넣고
    analogWrite(9,convertval);
    analogWrite(10,0);
  }
  else{					//스위치의 값이 HIGH이면 10번 핀에 전원을 넣는다
    analogWrite(9,0);
    analogWrite(10,convertval);
  }
  
  Serial.print(OnOff);			//스위치가 On인지 Off인지 출력한다
  Serial.print(" ");					
  Serial.println(convertval);		//가변저항으로 받는 전압의 값을 출력한다
  delay(100);
  
  
}

4. 스위치를 이용하여 기어드모터 방향 바꾸기

아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo
아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo
아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo

5. 버튼 두개를 연결하여 기어드모터 방향 바꾸기

아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo
아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo
아두이노 DC 모터 회전 수 제어 - adu-ino DC moteo hoejeon su jeeo
참조: https://m.blog.naver.com/icbanq/2215999245