# L293 H-bridge
- 모터 제어를 위한 통합회로. 2개의 DC 모터를 제어할 수 있다.
- DC 모터는 2개의 선에 어떤 극성을 연결하는지에 따라 시계방향 또는 반시계방향으로 회전한다.
- L293 H-bridge는 입력 받는 신호(High, LOW) 에 따라 출력하는 신호(HIGH, LOW)를 선택할 수 있다.
## 준비물
- 아두이노 보드, 브래드보드, 점퍼케이블
- DC 모터, L293D H-bridge
## 회로도
## 코드
### 아두이노 (Arduino)
// code start
int motorA = 3;
int motorB = 4;
int myDelay = 1000;
void setup() {
pinMode(motorA, OUTPUT);
pinMode(motorB, OUTPUT);
}
void loop() {
digitalWrite(motorA, HIGH);
digitalWrite(motorB, LOW);
delay(myDelay);
digitalWrite(motorA, LOW);
digitalWrite(motorB, HIGH);
delay(myDelay);
}
// code end
## 추가 활동
- 1개의 L293 H-bridge 로 2개의 DC 모터를 제어하는 방법은?
## 준비물
- 아두이노 보드, 브래드보드, 점퍼케이블
- DC 모터, L293D H-bridge
- 푸쉬버튼, 10K옴 저항
## 회로도
## 코드
### 아두이노 (Arduino)
// code start
int buttonPin = 2;
int motorA = 3;
int motorB = 4;
int myDelay = 1000;
int buttonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(motorA, OUTPUT);
pinMode(motorB, OUTPUT);
}
void loop() {
buttonState = digitalRead(buttonPin);
if (buttonState == 1) {
digitalWrite(motorA, HIGH);
digitalWrite(motorB, LOW);
} else {
digitalWrite(motorA, LOW);
digitalWrite(motorB, HIGH);
}
}
// code end
## 추가활동
- 버튼을 한 번 누르면 모터가 동작하고 다시 누르면 모터가 멈추게 하려면?
## 준비물
- 아두이노 보드, 브래드보드, 점퍼케이블
- DC 모터, L293D H-bridge
- 푸쉬버튼, 10K옴 저항
- 가변저항
## 회로도
## 코드
### 아두이노 (Arduino)
// code start
int buttonPin = 2;
int motorA = 3;
int motorB = 4;
int analogOutput = 5;
int analogInput = A0;
int speed;
int buttonState = 0;
void setup() {
pinMode(buttonPin, INPUT);
pinMode(motorA, OUTPUT);
pinMode(motorB, OUTPUT);
}
void loop() {
speed = analogRead(analogInput);
speed = map(speed, 0, 1023, 0, 255);
analogWrite(analogOutput, speed)
buttonState = digitalRead(buttonPin);
if (buttonState == 1) {
digitalWrite(motorA, HIGH);
digitalWrite(motorB, LOW);
} else {
digitalWrite(motorA, LOW);
digitalWrite(motorB, HIGH);
}
}
// code end