아두이노 - 구동기 | Arduino - Actuator

이 튜토리얼에서는 다음 사항을 배울 예정입니다:

이 튜토리얼은 피드백이 없는 리니어 액추에이터용입니다. 피드백이 있는 리니어 액추에이터에 대해 배우고 싶다면, 이 Arduino - 피드백이 있는 액추에이터 튜토리얼을 참조하세요.

준비물

1×Arduino Uno Amazon
1×USB 2.0 cable type A/B 쿠팡 | Amazon
1×Linear Actuator Amazon
1×L298N Motor Driver Module 쿠팡 | Amazon
1×12V Power Adapter Amazon
1×DC Power Jack 쿠팡 | Amazon
1×Jumper Wires Amazon
1×(Optional) 9V Power Adapter for Arduino Amazon
1×(Recommended) Screw Terminal Block Shield for Arduino Uno 쿠팡 | Amazon
1×(Recommended) Breadboard Shield For Arduino Uno 쿠팡 | Amazon
1×(Recommended) Enclosure For Arduino Uno Amazon
공개: 이 섹션에서 제공된 링크 중 일부는 제휴 링크입니다. 이 링크를 통해 구매한 경우 추가 비용없이 수수료를 받을 수 있습니다. 지원해 주셔서 감사합니다.

리니어 액츄에이터에 관하여

Linear Actuator Extend Retract

선형 액추에이터 핀배열

리니어 액추에이터는 두 개의 전선이 있습니다:

긍정적인 전선: 보통 빨간색

부정적인 전선: 보통 검은색

Linear Actuator Pinout

작동 원리

리니어 액추에이터를 구매할 때, 해당 리니어 액추에이터가 작동하는 전압을 알 필요가 있습니다. 예를 들어, 12V 리니어 액추에이터를 예로 들어봅시다.

12V 전원 소스로 12V 선형 액추에이터에 전원을 공급할 때:

  • 12V와 GND를 각각 긍정적인 선과 부정적인 선에 연결하면: 리니어 액추에이터는 한계에 도달할 때까지 최고 속도로 확장됩니다.
  • 12V와 GND를 각각 부정적인 선과 긍정적인 선에 연결하면: 리니어 액추에이터는 한계에 도달할 때까지 최고 속도로 축소됩니다.

확장하거나 축소하는 동안, 액추에이터에 전력을 중단하면(양극과 음극 선 모두에 GND를 제공하면), 액추에이터의 확장/축소가 멈춥니다.

※ NOTE THAT:

DC 모터, 서보 모터, 기어링 없는 스텝 모터의 경우, 부하를 지고 있는 상태에서 전원을 끄면 위치를 유지할 수 없습니다. 이러한 모터들과 달리, 액추에이터는 부하를 지고 있는 상태에서 전원을 멈추어도 위치를 유지할 수 있습니다.

12V 이하로 선형 액추에이터에 전력을 공급하면 선형 액추에이터가 여전히 확장/수축하지만 최대 속도가 아닙니다. 이는 전원 공급 장치의 전압을 변경하면 선형 액추에이터의 속도를 변경할 수 있음을 의미합니다. 그러나 전원 출처의 전압을 제어하기 어렵기 때문에 이 방법은 실제로 사용되지 않습니다. 대신, 전원 소스의 전압을 고정시키고 PWM 신호를 통해 선형 액추에이터의 속도를 제어합니다. PWM의 듀티 사이클이 높을수록 선형 액추에이터가 확장/수축하는 속도가 높아집니다.

How to control linear actuator

아두이노를 사용하여 리니어 액추에이터를 제어하는 방법

선형 액추에이터를 제어하는 것은 다음을 포함합니다:

  • 선형 액추에이터를 최대 속도로 확장합니다.
  • 선형 액추에이터를 최대 속도로 축소합니다.
  • (선택 사항) 확장/축소 속도를 제어합니다.

아두이노는 선형 구동기를 제어하기 위한 신호를 생성할 수 있습니다. 그러나 이 신호는 전압과 전류가 낮아서, 우리는 그것을 선형 구동기를 제어하는 데에 직접 사용할 수 없습니다. 우리는 아두이노와 선형 구동기 사이에 하드웨어 드라이버를 사용해야 합니다. 드라이버는 두 가지 일을 합니다:

  • 아두이노에서 오는 제어 신호(전류 및 전압)를 증폭시키세요.
  • 전원 공급 장치의 극성을 전환하기 위해 아두이노에서 다른 제어 신호를 수신하세요 → 방향 제어를 위함입니다.

※ NOTE THAT:

  • 이 튜토리얼은 모든 선형 액추에이터에 적용될 수 있습니다. 12V 선형 액추에이터는 단지 예시일 뿐입니다.
  • 5V 선형 액추에이터를 제어할 때, 아두이노 핀이 5V(선형 액추에이터의 전압과 같음)를 출력하더라도, 선형 액추에이터에 필요한 충분한 전류를 아두이노 핀이 제공하지 않기 때문에 아두이노와 선형 액추에이터 사이에 드라이버가 필요합니다.

다양한 종류의 칩과 모듈(예: L293D, L298N)이 선형 액츄에이터 드라이버로 사용될 수 있습니다. 이 튜토리얼에서는 L298N 드라이버를 사용할 것입니다.

※ NOTE THAT:

릴레이를 구동기로도 사용할 수 있습니다. 하지만 단일 선형 액추에이터(확장/축소 모두 포함)를 제어하려면 4개의 릴레이가 필요합니다.

L298N 드라이버에 대하여

L298N 드라이버는 선형 액추에이터, DC 모터 및 스테퍼 모터를 제어하는 데 사용할 수 있습니다. 이 튜토리얼에서는 선형 액추에이터를 제어하는 방법을 배웁니다.

L298N 드라이버 핀아웃

L298N Driver Pinout

L298N 드라이버는 채널 A와 채널 B라고 불리는 두 개의 채널이 있습니다. 따라서 L298N 드라이버는 동시에 두 개의 선형 액추에이터를 독립적으로 제어할 수 있습니다. 리니어 액추에이터 A가 채널 A에 연결되어 있고, 리니어 액추에이터 B가 채널 B에 연결되어 있다고 가정해 봅시다. L298N 드라이버에는 13개의 핀이 있습니다:

두 채널 모두에 대한 공통 핀:

  • VCC 핀: 선형 구동기에 전력을 공급합니다. 5V에서 35V 사이일 수 있습니다.
  • GND 핀: 공통 접지 핀으로, GND(0V)에 연결해야 합니다.
  • 5V 핀: L298N 모듈에 전력을 공급합니다. 아두이노에서 5V를 공급받을 수 있습니다.

채널 A 핀:

  • ENA 핀: 선형 액추에이터 A의 속도를 제어하는 데 사용됩니다. 점퍼를 제거하고 이 핀을 PWM 입력에 연결하면 선형 액추에이터 A의 확장/축소 속도를 제어할 수 있습니다.
  • IN1 & IN2 핀: 선형 액추에이터의 이동 방향을 제어하는 데 사용됩니다. 하나가 HIGH이고 다른 하나가 LOW일 때, 선형 액추에이터는 확장되거나 축소됩니다. 두 입력 모두 HIGH이거나 LOW이면 선형 액추에이터가 멈춥니다.
  • OUT1 & OUT2 핀: 선형 액추에이터 A에 연결됩니다.

채널 B 핀들:

  • ENB 핀: 선형 작동기 B의 속도를 제어하는 데 사용됩니다. 점퍼를 제거하고 이 핀을 PWM 입력에 연결하면 선형 작동기 B의 확장/수축 속도를 제어할 수 있습니다.
  • IN3 & IN4 핀: 선형 작동기의 이동 방향을 제어하는 데 사용됩니다. 하나가 HIGH이고 다른 하나가 LOW일 때, 선형 작동기는 확장되거나 수축됩니다. 입력이 모두 HIGH이거나 LOW인 경우 선형 작동기는 멈춥니다.
  • OUT3 & OUT4 핀: 선형 작동기에 연결됩니다.

위에서 설명한 것처럼, L298N 드라이버에는 두 가지 입력 전원이 있습니다:

  • 선형 액추에이터(VCCGND 핀)용: 5V에서 35V까지.
  • L298N 모듈의 내부 작동(5V 및 GND 핀)용: 5V에서 7V까지.

L298N 드라이버는 고급 사용이나 기타 목적을 위해 3개의 점퍼도 가지고 있습니다. 단순화를 위해 L298N 드라이버에서 모든 점퍼를 제거해 주십시오.

아두이노와 L298N 드라이버를 사용하여 두 개의 리니어 액추에이터를 동시에 독립적으로 제어할 수 있습니다. 각 리니어 액추에이터를 제어하기 위해, 우리는 아두이노에서 단지 세 개의 핀만 필요합니다.

※ NOTE THAT:

이 튜토리얼의 나머지 부분은 채널 A를 사용하여 리니어 액추에이터를 제어합니다. 다른 리니어 액추에이터를 제어하는 것은 비슷합니다.

선형 액추에이터를 제어하는 방법

우리는 L298N 드라이버를 사용하여 리니어 액추에이터를 제어하는 방법을 배울 것입니다.

배선도

L298N 모듈의 배선을 하기 전에 점퍼 3개를 모두 제거해 주세요.

Arduino Linear Actuator L298N Driver Wiring Diagram

이 이미지는 Fritzing을 사용하여 만들어졌습니다. 이미지를 확대하려면 클릭하세요.

리니어 액추에이터를 확장/축소하는 방법

선형 액추에이터의 이동 방향은 IN1 및 IN2 핀에 논리 HIGH/LOW를 적용하여 제어할 수 있습니다. 아래 표는 양쪽 채널의 방향을 제어하는 방법을 보여줍니다.

IN1 pin IN2 pin Direction
LOW LOW Linear Actuator A stops
HIGH HIGH Linear Actuator A stops
HIGH LOW Linear Actuator A extends
LOW HIGH Linear Actuator A retracts
  • 리니어 액추에이터 A 확장
digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW);
  • 리니어 액추에이터 A를 축소합니다.
digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH);

※ NOTE THAT:

OUT1 & OUT2 핀이 선형 액추에이터의 두 핀에 역방향으로 연결되면 이동 방향이 반대로 전환됩니다. 그런 경우에는 단순히 OUT1 & OUT2 핀을 서로 바꾸거나 코드 내에서 IN1과 IN2 핀의 제어 신호를 변경하면 됩니다.

리니어 액추에이터가 확장하거나 수축하는 것을 멈추는 방법

선형 구동기는 제한에 도달하면 자동으로 확장/축소를 멈춥니다. 또한 제한에 도달하지 않았을 때 확장/축소를 프로그래밍 방식으로 멈출 수도 있습니다.

리니어 액추에이터를 멈추는 두 가지 방법이 있습니다.

속도를 0으로 제어합니다.

analogWrite(ENA_PIN, 0);

IN1 IN2 핀을 같은 값(LOW 또는 HIGH)으로 제어합니다.

digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW);

"." 또는

digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, HIGH);

선형 액추에이터의 속도를 L298N 드라이버를 통해 제어하는 방법

선형 구동기의 속도를 제어하는 것은 간단합니다. ENA 핀을 HIGH로 제어하는 대신, ENA 핀에 PWM 신호를 생성합니다. 이는 다음과 같이 할 수 있습니다:

  • 아두이노의 핀을 L298N의 ENA에 연결하세요.
  • analogWrite() 함수를 사용하여 ENA 핀에 PWM 신호를 생성하세요. L298N 드라이버는 리니어 액추에이터에 PWM 신호를 증폭합니다.
analogWrite(ENA_PIN, speed); // 속도는 0에서 255까지의 값입니다

속도는 0과 255 사이의 값입니다. 속도가 0이면, 선형 구동기가 멈춥니다. 속도가 255이면, 선형 구동기가 최대 속도로 확장/축소됩니다.

아두이노 예제 코드

아래 코드는 다음과 같은 작업을 합니다:

  • 구동기를 최대 속도로 확장하라
  • 선형 구동기를 정지하라
  • 구동기를 최대 속도로 축소하라
  • 선형 구동기를 정지하라
/* * 이 Arduino 코드는 newbiely.kr 에서 개발되었습니다 * 이 Arduino 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino/arduino-actuator */ // 상수는 변경되지 않음 const int ENA_PIN = 9; // EN1 핀 L298N에 연결된 아두이노 핀 const int IN1_PIN = 6; // IN1 핀 L298N에 연결된 아두이노 핀 const int IN2_PIN = 5; // IN2 핀 L298N에 연결된 아두이노 핀 // setup 함수는 보드를 리셋하거나 전원을 켤 때 한 번 실행됩니다 void setup() { // 디지털 핀을 출력으로 초기화한다. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } // loop 함수는 계속해서 반복 실행됩니다 void loop() { // 구동기를 확장합니다 digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); delay(20000); // 구동기는 제한에 도달하면 자동으로 확장을 멈춥니다 // 구동기를 축소합니다 digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); delay(20000); // 구동기는 제한에 도달하면 자동으로 축소를 멈춥니다 }

사용 방법

  • L298N 모듈의 모든 점퍼 세 개를 제거하세요.
  • 위의 코드를 복사하여 Arduino IDE로 열기
  • Arduino IDE에서 Upload 버튼을 클릭하여 코드를 Arduino에 업로드하세요
  • 다음을 볼 수 있습니다:
    • 리니어 액추에이터가 확장되고 제한에 도달하면 정지합니다
    • 리니어 액추에이터가 일정 시간 동안 위치를 유지합니다
    • 리니어 액추에이터가 축소되고 제한에 도달하면 정지합니다
    • 리니어 액추에이터가 일정 시간 동안 위치를 유지합니다
    • 위의 과정이 반복적으로 실행됩니다.

동영상

비디오 제작은 시간이 많이 걸리는 작업입니다. 비디오 튜토리얼이 학습에 도움이 되었다면, YouTube 채널 을 구독하여 알려 주시기 바랍니다. 비디오에 대한 높은 수요가 있다면, 비디오를 만들기 위해 노력하겠습니다.

댓글들

※ OUR MESSAGES

  • Please feel free to share the link of this tutorial. However, Please do not use our content on any other websites. We invested a lot of effort and time to create the content, please respect our work!