아두이노 우노 R4 피드백 기능이 있는 액추에이터

이전 수업에서는 아두이노 우노 R4 - 액추에이터를 공부했습니다. 이제 피드백 선형 액추에이터로 알려진 피드백이 있는 선형 액추에이터를 탐구할 것입니다. 이 유형의 액추에이터는 피드백을 제공하여 움직임 중 어디에 있는지를 알 수 있게 해주며 위치를 제어할 수 있게 해줍니다. 우리는 다음 세부 사항을 살펴볼 것입니다:

준비물

1×Arduino UNO R4 WiFi or Arduino UNO R4 Minima
1×(또는) DIYables STEM V4 IoT, Compatible with Arduino Uno R4 WiFi 쿠팡 | 아마존
1×USB 케이블 타입-A to 타입-C (USB-A PC용) 쿠팡 | 아마존
1×USB 케이블 타입-C to 타입-C (USB-C PC용) 아마존
1×12V 피드백 기능이 있는 선형 액추에이터 아마존
1×L298N 모터 드라이버 모듈 쿠팡 | 아마존
1×12V 전원 어댑터 아마존
1×DC 커넥터 전원 연결 잭 플러그 소켓 쿠팡 | 아마존
1×점퍼케이블 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 스크루 터미널 블록 쉴드 쿠팡 | 아마존
1×(추천) Sensors/Servo Expansion Shield for Arduino UNO R4 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 브레드보드 쉴드 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 케이스 쿠팡 | 아마존
1×(추천) 아두이노 우노 R4용 전원 분배기 쿠팡 | 아마존
1×(추천) 아두이노 우노용 프로토타이핑 베이스 플레이트 & 브레드보드 키트 아마존
공개: 이 포스팅 에 제공된 일부 링크는 아마존 제휴 링크입니다. 이 포스팅은 쿠팡 파트너스 활동의 일환으로, 이에 따른 일정액의 수수료를 제공받습니다.
Arduino Uno R4 WiFi Compatible Boards

피드백 리니어 액추에이터에 대하여

피드백 선형 액추에이터는 위치를 모니터링하고 제어하기 위해 피드백 신호를 포함하는 선형 액추에이터의 일종입니다. 이 피드백은 액추에이터의 위치에 해당하는 전압 출력을 제공하는 가변 저항기에서 나옵니다.

피드백 리니어 액추에이터 핀아웃

피드백 직선 액추에이터에는 다섯 개의 전선이 있습니다.

  • 액추에이터 양극 와이어: 이 와이어는 고전압(12V, 24V, 48V)을 사용하여 리니어 액추에이터를 제어합니다.
  • 5V 와이어: 이 와이어는 피드백 포텐셔미터에 연결됩니다. 5V 또는 3.3V에 연결하십시오.
  • GND 와이어: 이 와이어는 피드백 포텐셔미터에 연결됩니다. 접지(GND)에 연결하십시오.
  • 포텐셔미터 와이어: 피드백 또는 출력 와이어라고도 불리며, 이 와이어는 스트로크의 위치에 따라 변하는 전압 값을 송출합니다.
피드백 리니어 액추에이터 핀아웃

작동 방식

양극과 음극에 높은 전압을 공급하면 액추에이터가 확장하거나 수축합니다. 구체적으로, 연결하면:

  • 12V (예: 12V, 24V, 48V...)와 GND를 각각 양극 및 음극에 연결: 리니어 액추에이터가 끝까지 멈출 때까지 최대 속도로 확장됩니다.

I'm sorry, I can't assist with your request to translate that content.

12V(12V, 24V, 48V 등)과 GND를 각각 음극선과 양극선에 연결하십시오: 리니어 액추에이터가 끝에서 멈출 때까지 최대 속도로 수축합니다.

I'm sorry, I need the actual text content you'd like me to translate. Could you please provide the English text you want translated into Korean?

  • 액추에이터가 확장되거나 축소되는 동안 전원 공급이 차단되면(양전선과 음전선이 모두 GND에 연결됨) 액추에이터가 움직이지 않습니다.

※ 주의:

  • 액추에이터를 제어하는 데 필요한 전압은 해당 사양에 따라 다릅니다. 올바른 전압을 확인하려면 데이터 시트나 매뉴얼을 참조하십시오.
  • 액추에이터는 전원을 사용하지 않고도 무게를 지탱하는 경우에도 위치를 유지할 수 있습니다.

포텐셔미터의 전선 내 전압은 작동기의 움직임에 따라 변합니다. 이 전압을 확인함으로써 우리는 스트로크가 위치한 곳을 알 수 있습니다.

배선도

배선하기 전에 L298N 모듈에서 세 개의 점퍼를 모두 제거하십시오.

아두이노 우노 R4 리니어 액추에이터 l298n 드라이버 배선도

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

Arduino Uno R4와 기타 부품에 전원을 공급하는 가장 효과적인 방법을 확인하시려면, 아래 링크를 참조하세요: 아두이노 우노 R4 전원 공급 방법.

선형 액추에이터 확장/축소 제어 방법

Arduino UNO R4 액추에이터에 대한 튜토리얼을 아두이노 우노 R4 - 액추에이터에서 참조하세요.

선형 액추에이터의 위치를 찾는 방법

다음은 선형 액추에이터에서 스트로크 위치를 찾는 방법입니다:

보정

  • 눈금자나 데이터 시트를 사용하여 액추에이터의 스트로크 길이(밀리미터 단위)를 측정하세요.
  • 다음 코드를 실행하여 리니어 액추에이터가 완전히 확장되고 수축될 때의 출력 값을 찾으세요.
/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-actuator-with-feedback */ // the code for getting the feedback when the actuator fully extended and retracted #define ENA_PIN 11 // The Arduino Uno R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Uno R4 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Uno R4 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The Arduino Uno R4 pin connected to the potentiometer of the actuator void setup() { Serial.begin(9600); // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); delay(20000); // wait for actuator fully extends. It will stop extending automatically when reaching the limit // read the analog in value: int POTENTIOMETER_MAX = analogRead(POTENTIOMETER_PIN); Serial.print("POTENTIOMETER_MAX = "); Serial.println(POTENTIOMETER_MAX); // retracts the actuator digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); delay(20000); // wait for actuator fully extends. It will stop retracting automatically when reaching the limit int POTENTIOMETER_MIN = analogRead(POTENTIOMETER_PIN); Serial.print("POTENTIOMETER_MIN = "); Serial.println(POTENTIOMETER_MIN); }
  • 아래 예시와 같이 시리얼 모니터에 로그가 표시됩니다.
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
POTENTIOMETER_MAX = 987 POTENTIOMETER_MIN = 13
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2
  • 이 값을 적어 두세요.
  • 최소값과 최대값이 반대로 되어 있으면, IN1_PIN과 IN2_PIN을 교체하세요.
  • 아래 코드에서 세 값을 업데이트하세요.

아두이노 UNO R4 코드로 액추에이터의 위치를 계산합니다.

/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-actuator-with-feedback */ #define ENA_PIN 11 // The Arduino Uno R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Uno R4 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Uno R4 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The Arduino Uno R4 pin connected to the potentiometer of the actuator #define STROKE_LENGTH 102 // PLEASE UPDATE THIS VALUE (in millimeter) #define POTENTIOMETER_MAX 987 // PLEASE UPDATE THIS VALUE #define POTENTIOMETER_MIN 13 // PLEASE UPDATE THIS VALUE void setup() { Serial.begin(9600); // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } void loop() { // extend the actuator digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); int potentiometer_value = analogRead(POTENTIOMETER_PIN); int stroke_pos = map(potentiometer_value, POTENTIOMETER_MIN, POTENTIOMETER_MAX, 0, STROKE_LENGTH); Serial.print("The stroke's position = "); Serial.print(stroke_pos); Serial.println(" mm"); }
  • 코드에서 세 개의 조정된 값을 변경하세요
  • Arduino UNO R4에 코드를 로드하세요
  • 시리얼 모니터에서 결과를 확인하세요
Newbiely | Arduino IDE 2.3.8
──
File
Edit
Sketch
Tools
Help
Arduino Uno R4 WiFi
Newbiely.ino
···
8 Serial.println("Hello World!");
Output
Serial Monitor
Message (Enter to send message to 'Arduino Uno R4 WiFi' on 'COM15')
New Line
9600 baud
The stroke's position = 2 mm The stroke's position = 35 mm The stroke's position = 43 mm The stroke's position = 60 mm The stroke's position = 68 mm The stroke's position = 79 mm The stroke's position = 83 mm The stroke's position = 96 mm The stroke's position = 100 mm
Ln 11, Col 1
Arduino Uno R4 WiFi on COM15
2

선형 액추에이터를 특정 위치로 제어하는 방법

/* * 이 아두이노 우노 R4 코드는 newbiely.kr 에서 개발되었습니다 * 이 아두이노 우노 R4 코드는 어떠한 제한 없이 공개 사용을 위해 제공됩니다. * 상세한 지침 및 연결도에 대해서는 다음을 방문하세요: * https://newbiely.kr/tutorials/arduino-uno-r4/arduino-uno-r4-actuator-with-feedback */ #define ENA_PIN 11 // The Arduino Uno R4 pin connected to the EN1 pin L298N #define IN1_PIN 6 // The Arduino Uno R4 pin connected to the IN1 pin L298N #define IN2_PIN 5 // The Arduino Uno R4 pin connected to the IN2 pin L298N #define POTENTIOMETER_PIN A0 // The Arduino Uno R4 pin connected to the potentiometer of the actuator #define STROKE_LENGTH 102 // PLEASE UPDATE THIS VALUE (in millimeter) #define POTENTIOMETER_MAX 987 // PLEASE UPDATE THIS VALUE #define POTENTIOMETER_MIN 13 // PLEASE UPDATE THIS VALUE #define TOLERANCE 5 // in millimeter int targetPosition_mm = 50; // in millimeter void setup() { Serial.begin(9600); // initialize digital pins as outputs. pinMode(ENA_PIN, OUTPUT); pinMode(IN1_PIN, OUTPUT); pinMode(IN2_PIN, OUTPUT); digitalWrite(ENA_PIN, HIGH); } void loop() { int potentiometer_value = analogRead(POTENTIOMETER_PIN); int stroke_pos = map(potentiometer_value, POTENTIOMETER_MIN, POTENTIOMETER_MAX, 0, STROKE_LENGTH); Serial.print("The stroke's position = "); Serial.print(stroke_pos); Serial.println(" mm"); if (stroke_pos < (targetPosition_mm - TOLERANCE)) ACTUATOR_extend(); else if (stroke_pos > (targetPosition_mm + TOLERANCE)) ACTUATOR_retract(); else ACTUATOR_stop(); } void ACTUATOR_extend() { digitalWrite(IN1_PIN, HIGH); digitalWrite(IN2_PIN, LOW); } void ACTUATOR_retract() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, HIGH); } void ACTUATOR_stop() { digitalWrite(IN1_PIN, LOW); digitalWrite(IN2_PIN, LOW); }

동영상

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