아두이노를 이용하여 유량을 조절할 수 있는 워터펌프를 만들어보았다.
기본 개념
워터펌프는 일반적으로 DC모터를 이용하여 물을 순환시킨다. 그렇기 때문에 DC모터의 속도를 조절해서 유량을 조절할 수 있다. DC모터의 속도는 모터에 가해지는 전류의 세기에 따라 달라지는데 모터의 속도를 조절하기 위해 L298n DC모터 드라이브에 PWM 신호를 변화시켜 줌으로서 모터에 공급되는 전류의 세기를 조절할 수 있다.
아두이노를 이요하면 PWM신호를 사용자가 직접 제어할 수 있기 때문에 정량적인 워터펌프의 속도조절이 가능하다. (정량적 컨트롤이 아니라면 DC-DC 컨버터를 이용해서 가변저항을 조절해서 펌프의 속도를 조절할 수 있다.)
하드웨어 부품연결
사용한 부품
- 아두이노 메가(PWM 신호가 나오는 것이면 다 가능), L298n 모터드라이버, 스위치, 워터펌프(385HPC-9, 저소음펌프), 12V 어댑터(워터펌프 외부전원), 컴퓨터
L298의 외부출력부분(1번)을 펌프의 모터와 연결시켜준다(+ - 상관없음). 중간에 스위치를 통과하도록 만들어 전원을 켜고끌수 있도록 만들어준다.
12V외부전원을 L298n의 2번과 연결시켜준다. 12V 에는 +를 연결하고 GND에는 GND를 연결시켜준다.
PWM 신호를 받기 위해 모터의 가장 왼쪽 혹은 오른쪽 핀을 사용할 수 있게 한뒤 (channel A enbled 에 있는 핀 사용) 아두이노의 pwm 출력핀과 연결시켜준다. 그리고 옆의 logic pin은 아두이노에서 설정한 두개의 디지털 출력핀과 연결시켜준다. (여기에서는 pwm 8번, logic 핀 2,3번)
소프트웨어 코딩
아두이노 코드에서는 원하는 전압값을 사용자가 입력하면(pwm 값을 설정하여 모터에 흐르는 전류설정) 모터드라이버가 모터를 제어하는 기능을 만들었다.
int Dir1Pin_A = 2; // L298N pin 1 아두이노와 모터드라이버 연결
int Dir2Pin_A = 3; // L298N pin 2
int SpeedPin_A = 8; // PWM signal
int voltage; // voltage value
void setup(){
pinMode(Dir1Pin_A, OUTPUT); // set digital pin as output
pinMode(Dir2Pin_A, OUTPUT);
pinMode(SpeedPin_A, OUTPUT);
Serial.begin(9600); // Serial communication begin
while(!Serial); // if serial is connected, move to next
Serial.println("PUMP ON"); // if serial is connected, print pump on
}
void loop(){
if(Serial.available()){ //If serial monitor is opend, 시리얼모니터를 통해 전압값입력
voltage = Serial.parseInt(); // set serial int value to 'voltage' variable ( set the voltage value)
Serial.print("Volatage : ");
Serial.println(voltage); // print the set voltage value
}
digitalWrite(Dir1Pin_A, HIGH); // control the motor direction 모터방향설정
digitalWrite(Dir2Pin_A, LOW);
analogWrite(SpeedPin_A, voltage*21.25);
// change the input voltage value to PWM signal(0-254) 255/12 = 21.25 곱해줌
// 전압입력 -> PWM 신호로 변경 -> 모터드라이버 조절 -> 펌프속도 조절
delay(100);
}
결과
아두이노 시리얼 모니터에서 전압값 8V ( 모터가 작동하는 최소전압(전류)의 크기) 를 입력했을 때 물이 천천히 나오다가 12V 를 입력하면 물이 빠르게 나온다.
개선할 점
노트북을 사용하지 않기 위해 가변저항과 LCD를 이용하여 가변저항의 변화값이 PWM신호로 변환되고 LCD에 표시되어 더 간편하게 제어할 수 있도록 해야겠다.
아두이노 전원을 12V어댑터에서 가져올 수 있도록 연결
구매
https://link.coupang.com/a/wQUSv
https://link.coupang.com/a/wQU65
https://link.coupang.com/a/wQVdE
https://link.coupang.com/a/wQVml
"이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다."
참고
https://code-for-fun.tistory.com/27
https://youtu.be/QJNVLkiCXwk?t=149
'만들기 > 아두이노' 카테고리의 다른 글
DC - DC 컨버터 (0) | 2022.09.01 |
---|---|
스텝모터 2개 이상 제어하기 (0) | 2022.08.31 |
온도조절 펌프 만들기 ( 아두이노, 펠티어, 열선) (0) | 2022.08.13 |
포텐셔미터(가변저항)으로 360도 서보모터 방향 속도 조절하기 (0) | 2022.07.14 |
MG995 360도 서보모터 예제 (0) | 2022.07.08 |