시리얼로 서보 각도 설정하기
Coddy Arduino 여정의 출력 섹션에 포함된 레슨. 24개 중 23번째.
팔은 Serial 모니터에서 명령을 받을 수도 있습니다. 각도를 입력하고 Enter 키를 누르면 Serial.parseInt()가 숫자를 읽습니다:
if (Serial.available() > 0) {
int angle = Serial.parseInt();
Serial.read(); // 숫자 뒤의 줄바꿈 문자
// angle 사용
}숫자 뒤의 줄바꿈 문자는 그대로 대기 상태로 남습니다. 다음에 loop()가 실행되면 parseInt()는 숫자를 찾지 못해 1초 동안 기다린 다음 0을 반환합니다. 깜박임 속도에는 그 0을 무시해도 괜찮았지만, 0은 유효한 각도입니다. 그러므로 숫자 바로 뒤에 Serial.read()를 한 번 사용해 줄바꿈 문자를 읽어 없앱니다.
누군가 각도가 아닌 숫자를 입력할 수도 있습니다. arm.write()는 544 이상의 숫자를 마이크로초 단위의 펄스 길이로 읽으므로, 1000을 입력하면 팔은 약 45도 위치로 이동합니다. 먼저 constrain()를 사용해 각도를 0에서 180 사이로 제한합니다:
angle = constrain(angle, 0, 180); // parseInt()가 아니라 변수를 전달하세요챌린지
중급직렬 모니터에 입력한 각도로 서보를 움직이세요:
- 숫자가 도착하면
Serial.parseInt()로 읽은 다음, 개행 문자를 읽어 버리세요(0도 각도입니다). constrain()을 사용해 값을 0에서 180 사이로 유지하세요.- 암을 움직이고 각도를
Angle: 45형식으로 출력하세요.
Run을 누르고 직렬 모니터에서 45를 전송한 다음 Check를 누르세요.
직접 해보기
#include <Servo.h>
Servo arm;
void setup() {
arm.attach(9);
arm.write(90);
Serial.begin(9600);
}
void loop() {
// 숫자가 들어오면 숫자를 읽고 줄바꿈 문자도 읽어 버린 다음,
// 값을 0에서 180 사이로 유지하고 arm을 움직인 뒤 값을 출력합니다
}
이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
출력의 모든 레슨
직접 연습해 보세요: Arduino 플레이그라운드