오늘이라도
[Arduino] 5. 서보 모터, DC 모터, LCD 본문
https://github.com/upcake/Class_Examples
교육 중에 작성한 예제들은 깃허브에 올려두고 있습니다.
gif 파일은 클릭해서 보는 것이 정확합니다.
- 서보 모터 -
- 서보 모터에서 데이터선, +선, -선이 나온다.
- 일반적으로 검은색이 +선, 밝은 선이 데이터선이다.
- 서보 모터를 사용하기 위해 Servo 객체를 생성해준다.
- myservo.attach(핀번호) : 모터에 데이터를 전달하는 핀 번호
- myservo.write(각도) : 서보 모터는 0 ~ 179도까지 가능하다.
- 가변 저항으로 서보 모터 조작 -
- 초음파 센서를 이용하여 거리에 따른 서보 모터 조작 -
- millis() : 밀리 초를 계속 반환하는 함수
- 시간에 따른 능동적인 조작이 필요한 경우, delay()보다는 millis()를 권장된다.
- DC 모터 -
- 직류 모터를 브레드 보드에 직접 연결하면 많이 복잡하므로 모터 드라이버를 이용한다.
▼DC 모터, 코드
#define ENABLE_A 3 // 좌우 모터 설정
#define IN1_A 4
#define IN2_A 5
#define ENABLE_B 9
#define IN3_B 7
#define IN4_B 8
byte speedDC = 255; // 모터 최고 속도
void setup()
{
pinMode(ENABLE_A,OUTPUT);
pinMode(IN1_A,OUTPUT);
pinMode(IN2_A,OUTPUT);
pinMode(ENABLE_B,OUTPUT);
pinMode(IN3_B,OUTPUT);
pinMode(IN4_B,OUTPUT);
}
void motor_speed(int spd) //모터에 속도를 준다
{
analogWrite(ENABLE_A,spd);
analogWrite(ENABLE_B,spd);
}
void motor_dir(int dir)
{
if ( dir == 0 ) { // forward
digitalWrite(IN1_A,HIGH);
digitalWrite(IN2_A,LOW);
digitalWrite(IN3_B,HIGH);
digitalWrite(IN4_B,LOW);
}
else if ( dir == 1 ) { // turn right
digitalWrite(IN1_A,HIGH);
digitalWrite(IN2_A,LOW);
digitalWrite(IN3_B,LOW);
digitalWrite(IN4_B,HIGH);
}
else if ( dir == 2 ) { // turn left
digitalWrite(IN1_A,LOW);
digitalWrite(IN2_A,HIGH);
digitalWrite(IN3_B,HIGH);
digitalWrite(IN4_B,LOW);
}
else if ( dir == 4 ) { // backward
digitalWrite(IN1_A,LOW);
digitalWrite(IN2_A,HIGH);
digitalWrite(IN3_B,LOW);
digitalWrite(IN4_B,HIGH);
}
}
void loop()
{
motor_speed(150);
motor_dir(0);
delay(2000);
motor_speed(0);
delay(1000);
motor_speed(150);
motor_dir(1);
delay(2000);
motor_speed(0);
delay(1000);
motor_speed(254);
motor_dir(2);
delay(2000);
motor_speed(0);
delay(1000);
motor_speed(150);
motor_dir(4);
delay(2000);
motor_speed(0);
delay(1000);
}
- LCD 라이브러리 사용하기, Hello, world! -
- LCD를 쉽게 사용하기 위해 구글에서 'LiquidCrystal I2C' 라이브러리를 다운로드한다.
- 해당 라이브러리를 아두이노\libraries에 붙여 넣기 하여 사용할 수 있다.
'취업성공패키지 SW 개발자 교육 > 사물 인터넷(IoT)' 카테고리의 다른 글
[Arduino] 7. RC카 조립 (0) | 2020.04.28 |
---|---|
[Arduino] 6. LCD 글자 이동, 초 출력, 깜빡이기 / 입력한 글자 출력 / 초음파 센서 연동 / 블루투스 모듈 연결, 설정 / 블루투스로 LED 켜기 (1) | 2020.04.27 |
[Arduino] 4. 스트라이크 게임, 조도 센서, 피에조 스피커, 초음파 거리 센서, 거리에 따라 소리 출력하기 (0) | 2020.04.23 |
3. 시리얼 통신, begin, available, read, print, parseInt, randomSeed, random, 메서드 이용 (0) | 2020.04.22 |
2. 버튼 활용, 복수의 LED 켜기, 가변 저항, map(), RGB LED, 복수의 버튼 활용 (0) | 2020.04.21 |