오늘은 조이스틱 x축을 이용하여 DC 모터의 속도를 조절하는 간단한 프로그램을 만들어보겠습니다.
회로 소개
DC모터의 드라이브와 모터 연결 회로도를 소개합니다.
이후 조이스틱을 함께 연결합니다. 조이스틱의 회로도는 아래와 같습니다.
코드
#define EN_PIN 11
#define IN1_PIN 10
#define IN2_PIN 9
#define X_PIN A0
#define Y_PIN A1
#define SW_PIN 7
/*
DC모터와 조이스틱을 이용한
Dc모터 속도제어 프로그램
*/
void setup()
{
Serial.begin(9600);
pinMode( SW_PIN, INPUT_PULLUP );
pinMode( X_PIN, INPUT );
pinMode( Y_PIN, INPUT );
pinMode(EN_PIN, OUTPUT);
pinMode(IN1_PIN, OUTPUT);
pinMode(IN2_PIN, OUTPUT);
}
boolean bReverse = false;
int Speed = 0;
void loop()
{
int x = analogRead(X_PIN);
int y = analogRead(Y_PIN);
int z = digitalRead(SW_PIN);
Speed = map(x, 0, 1023, 0, 255);
setMotor(Speed, bReverse); //- 회전
Serial.println(Speed);
}
void setMotor(int nSpeed, boolean bReverse)
{
analogWrite(EN_PIN, nSpeed);
digitalWrite(IN1_PIN, !bReverse);
digitalWrite(IN2_PIN, bReverse);
}
'IoT > 아두이노' 카테고리의 다른 글
[아두이노] 4digit-7세그먼트, 써미스터 (4) | 2022.07.07 |
---|---|
[아두이노] 조도 센서, 도트매트릭스(8x8) (4) | 2022.07.02 |
[아두이노] RGB LED, 가변저항, 스위치 (0) | 2022.06.07 |