본문 바로가기
Arduino

아두이노 :: 서브모터

by 코닛 2025. 1. 12.

 

처음부터 끝까지 x

이미 만들어 놓은 것을 활용하는 것

 

라이브러리 : 이미 만들어 놓은 프로그램들의 집합

 

서브모터

 

왔다갔다 하게 만드는 코드 작성

#include <Servo.h>
//포함한다 Servo 장치
Servo myServo;

void setup() {
	myServo.attach(9);
}

void loop() {
	for (int angle = 0; angle <180; angle++) {
		myServo.write(angle);
		delay(100);
	}
	
	for (int angle = 180; angle >0; angle--){
		myServo.write(angle);
		delay(100);
	}
}

map

#include <Servo.h>
#define VAR_REGISTER A0
Servo myServo;

void setup() {
	Serial.begin(9600);
	myServo.attach(9);
}

void loop() {
	int readValue =analogRead(VAR_REGISTER);
	Serial.println(readValue);
	int angle = map(readValue, 0, 1023, 0, 180);
	myServo.write(angle);
	delay(100);
}

 

map ( readValue, 0, 1023, 0, 180)

가변기의 0을 서보모터의 0으로 읽고

가변기의 1023을 서보모터의 180으로 읽어라

 


월요일에 풀 문제 미리풀기

 

문제.

1.푸쉬 버튼을 좌/우로 배치

2.저항은 1K 사용

3.왼쪽 푸쉬 버튼을 누르고 있는 동안 서브모터를 왼쪽으로 10도씩 회전

떼면 중지

4.오른쪽 푸쉬 버튼을 누르고 있는 동안 서브모터를 오른쪽으로 10도씩 회전

떼면 중지

 

 

 

#include<Servo.h>
#define BUTTON_1 7
#define BUTTON_2 6

Servo myServo;
int angle = 0;

void setup() {
	Serial.begin(9600);
	myServo.attach (9);
	pinMode(BUTTON_1,INPUT);
	pinMode(BUTTON_2,INPUT);
}

void loop() {
	if (digitalRead(BUTTON_1) == HIGH){
      if(angle >180){
        angle = 180;
      } else {
        angle += 10;
      }
	}
  	if (digitalRead(BUTTON_2) == HIGH){
      if(angle <0) {
        angle = 0;
      } else {
        angle -=10;
      }
    }
  myServo.write(angle);
  delay(500);
}

 

시험은 물론 브레드보드를 세로로 세워서 다시 정렬한 다음

배선하고 정의도 이름 바꿔서 냈습니다

 

'Arduino' 카테고리의 다른 글

아두이노 :: PUSH BUTTON, 가변저항  (0) 2025.01.11