아두이노 가변 저항기에 의해 제어되는 서보 모터

이전 튜토리얼에서는 포텐쇼미터가 서보 모터를 어떻게 작동시키는지 배웠습니다. 이번 튜토리얼에서는 포텐쇼미터의 출력 값에 따라 서보 모터를 어떻게 회전시키는지 배울 예정입니다.

준비물

1×아두이노 우노 R3 쿠팡 | 아마존
1×USB 2.0 타입 A-to-B 케이블 (USB-A PC용) 쿠팡 | 아마존
1×USB 2.0 타입 C-to-B 케이블 (USB-C PC용) 아마존
1×서보 모터 쿠팡 | 아마존
1×포텐셔미터 쿠팡 | 아마존
1×노브가 있는 포텐셔미터 모듈 쿠팡 | 아마존
1×브레드보드 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino Uno 아마존
1×(추천) 아두이노 우노용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.

서보 모터와 포텐쇼미터에 대하여

서보 모터와 포텐쇼미터(핀 배치, 작동 방식, 프로그래밍 방법 등)에 대해 잘 모른다면, 다음 튜토리얼에서 배워보세요:

선연결

아두이노 서보 모터 가변저항 연결 배선도

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

프로그램 하는 방법

포텐쇼미터의 값을 읽습니다 (0에서 1023 사이의 값)

int analogValue = analogRead(A0);

각도(0과 180 사이의 값)로 조정합니다

int angle = map(analogValue, 0, 1023, 0, 180);

각도에 따라 서보 위치를 설정합니다.

myServo.write(angle);

아두이노 코드

/* * 이 아두이노 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-servo-motor-controlled-by-potentiometer */ #include <Servo.h> Servo myServo; // 서보 개체를 생성하여 서보를 제어합니다 void setup() { // 9600 비트/초로 시리얼 통신 초기화: Serial.begin(9600); myServo.attach(9); // 9번 핀에 서보를 부착하여 서보 객체에 연결합니다 } void loop() { // 포텐쇼미터의 값을 읽습니다(값은 0에서 1023 사이) int analogValue = analogRead(A0); // 서보 사용을 위해 스케일을 조정합니다(값은 0에서 180 사이) int angle = map(analogValue, 0, 1023, 0, 180); // 스케일된 값에 따라 서보 위치를 설정합니다 myServo.write(angle); // 값 출력 Serial.print("Analog: "); Serial.print(analogValue); Serial.print(", Angle: "); Serial.println(angle); delay(100); }

사용 방법

  • 아두이노를 USB 케이블을 통해 PC에 연결하십시오
  • 아두이노 IDE를 열고 올바른 보드와 포트를 선택하십시오
  • 위의 코드를 복사하여 아두이노 IDE로 엽니다
  • 코드를 아두이노에 업로드하려면 아두이노 IDE에서 Upload 버튼을 클릭하십시오
아두이노 코딩
  • 시리얼 모니터 열기
  • 포텐쇼미터를 돌리세요
  • 서보 모터의 회전을 확인하세요
  • 시리얼 모니터에서 결과를 확인하세요
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Uno
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno' on 'COM15')
New Line
9600 baud
Analog: 0, Angle: 0 Analog: 85, Angle: 14 Analog: 201, Angle: 35 Analog: 286, Angle: 50 Analog: 370, Angle: 65 Analog: 444, Angle: 78 Analog: 521, Angle: 91 Analog: 608, Angle: 106 Analog: 690, Angle: 121 Analog: 793, Angle: 139 Analog: 907, Angle: 159 Analog: 1023, Angle: 180 Analog: 1023, Angle: 180
Ln 11, Col 1
Arduino Uno on COM15
2

코드 설명

소스 코드의 주석 라인에 있는 줄별 설명을 읽으세요!

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.