아두이노
-
아두이노 | 유도형 근접 스위치 DC 5V 모듈Technology/Arduino 2024. 11. 19. 19:20
1. 유도형 근접 스위치 유도형 근접 스위치는 금속체가 검출 영역 내로 들어오면 디지털 신호를 바꾸어 출력하는 전자기기이다. 금속 검출부에 있는 코일을 통해 자기장을 형성한 뒤 자기장 변화를 검출한다. 금속체가 검출 영역 내로 들어오면 내부 회로가 자기장 변화를 검출하여 디지털 신호를 바꾸어 출력한다. 일반 스위치와는 다르게 접촉 없이 금속체를 검출할 수 있어 다양한 용도로 사용되고 있다. 근접 스위치의 동작 전압은 대부분 DC 12V, DC 24V인데, 해당 예제에서 다루고자 하는 근접 스위치는 DC 5V에서 동작하도록 설계되어 있으므로 아두이노 플랫폼에서도 사용이 가능하다. 내부 회로 구성에 따라 전선의 개수와 출력 신호가 다르지만, 해당 모듈은 세 가닥의 전선이 있으며, 검은색은 신호 단자..
-
아두이노 프로젝트 | 컨베이어 벨트Technology/Arduino 2024. 11. 17. 21:49
1. 컨베이어 벨트 생산 공장에서 쉽게 발견할 수 있는 컨베이어 벨트를 아두이노 플랫폼으로 구현해보자. 구현하고자 하는 컨베이어 벨트는 바이폴라 스텝모터와 모터를 제어하기 위한 모터 드라이버, 가변저항, 택트 스위치로 구성되어 있다. 스텝모터가 작동하여 벨트를 굴리면, 벨트 위에 놓여져 있는 물건들이 벨트를 따라 이동한다. 이때 가변저항의 저항값을 조정하면 그에 맞게 컨베이어 벨트의 속력을 조절할 수 있도록, 택트 스위치를 누르면 컨베이어 벨트의 방향이 반대가 되도록 프로그램을 작성해보자. 2. 프로젝트 2.1. 회로 구성 56각 100mm 바이폴라 스텝모터 NK2310028BH 2상 1.8도 8파이모터뱅크www.motorbank.kr TB6600 스테핑 모터드라이버사용 가능 모터 : 2상 및 4상..
-
아두이노 | 디지털 인터럽트Technology/Arduino 2024. 11. 15. 17:31
1. 디지털 인터럽트 디지털 인터럽트는 디지털 신호가 특정 조건을 만족할 때 자동으로 특정 함수를 실행하는 기능이다. 이때 아두이노 루프 함수에서 실행되던 프로그램은 일시 정지되고, 인터럽트 서비스 루틴(Interrupt Service Routine, ISR)에 할당된 프로그램을 먼저 실행한 뒤, 루프 함수에서 실행되던 프로그램을 다시 실행한다. 조건문으로 디지털 신호를 감지하여 프로그램을 실행하는 것과 무엇이 다른지 비교해보기 위해 아래 예시를 살펴보자. volatile byte LEDState = LOW; // LED 상태 변수 정의volatile byte SwitchState = LOW; // 택트 스위치 상태 변수 정의void setup(){ pinMode(11, OUTPUT); // 디지털..
-
아두이노 | 바이폴라 스텝모터 드라이버 TB6600 모듈Technology/Arduino 2024. 11. 14. 17:53
1. 바이폴라 스텝모터 드라이버 TB6600 모듈 바이폴라 스텝모터 드라이버 TB6600 모듈은 바이폴라 스텝모터 1개를 양방향으로 제어할 수 있다. 바이폴라 스텝모터 전자석 단자에 스텝모터를 연결하고, 회전 방향 제어 단자와 제어 단자에 디지털 신호를 가하면 스텝모터가 동작한다. 외부 전원은 DC 40V까지, 출력 전류는 3.5A가지 지원하고 있어 대부분의 NEMA 23급 바이폴라 스텝모터를 제어할 수 있으며, 바이폴라 스텝모터 드라이버 A4988 모듈과 마찬가지로 스텝모터로 공급되는 전류를 제한하는 기능이 있어 스텝모터와 회로를 보호할 수 있다. 바이폴라 스텝모터 드라이버 TB6600 모듈은 아래 링크로 접속하면 구매할 수 있다. TB6600 스테핑 모터드라이버사용 가능 모터 : 2상 및 4상 바..
-
아두이노 라이브러리 | 스텝모터 가속 제어Technology/Arduino 2024. 11. 13. 09:36
1. 스텝모터 가속 제어 앞서 소개한 방법으로 스텝모터를 제어했다면 스텝모터의 동작이 부드럽지 않았을 것이다. 이는 위 그림의 왼쪽 그래프처럼 스텝모터의 회전을 갑자기 변속했기 때문이다. 부드러운 동작을 원한다면 위 그림의 오른쪽 그래프처럼 일정한 시간동안 스텝모터의 회전 속력을 연속적으로 변경해야 한다. 이러한 가속 제어는 유니폴라 스텝모터 드라이버의 경우 반복문을 사용하여 한 단계 동작할 때마다 회전 속력을 서서히 변경하는 것으로, 바이폴라 스텝모터 드라이버의 경우 반복문을 사용하여 단계 제어 단자에 입력하는 펄스 주기를 서서히 변경하는 것으로 직접 구현할 수 있다. 2. 아두이노 라이브러리 추가 아두이노 플랫폼에는 스텝모터의 가속 제어를 위한 알고리즘이 라이브러리로 구현되어 있다. 그러나 기..
-
아두이노 | 바이폴라 스텝모터 드라이버 A4988 모듈 마이크로 스테핑Technology/Arduino 2024. 11. 9. 01:34
1. 마이크로 스테핑 스텝모터는 하드웨어 설계에 따라 최소 회전 단위가 결정되어 있다. 앞서 다루었던 바이폴라 스텝모터의 경우, 최소 회전 단위가 1.8도로 정해져있다. 하드웨어로 최소 회전 단위가 결정되어있더라도 전자석을 적절하게 제어하면 최소 회전 단위를 줄일 수 있는데, 이를 마이크로 스테핑(microstepping)이라고 한다. 마이크로 스테핑을 이용하면 하드웨어로 인한 최소 회전 단위가 1.8도인 바이폴라 스텝모터가 0.9도 이하로 회전할 수 있게 되며, 기존 제어 방식보다 부드러운 움직임을 기대할 수 있다. 2. 풀 스텝과 하프 스텝 스텝모터는 기본적으로 풀 스텝(full step)으로 동작한다. 위 그림과 같이 인접한 두 전자석에 전류를 흘려주면 기어가 자력에 의해 두 전자석 사이에 ..
-
아두이노 | 바이폴라 스텝모터 드라이버 A4988 모듈Technology/Arduino 2024. 11. 8. 12:37
1. 바이폴라 스텝모터와 유니폴라 스텝모터 스텝모터는 전자석에 감겨 있는 전류선의 배선 방식에 따라 바이폴라(bipolar) 스텝모터와 유니폴라(unipolar) 스텝모터로 구분된다. 바이폴라 스텝모터는 모터로부터 네 가닥의 전류선이 나오는 반면에, 유니폴라 스텝모터는 다섯 가닥 혹은 여섯 가닥의 전류선이 모터로부터 나오는 것으로 스텝모터의 종류를 구분할 수 있다. 앞서 다루었던 스텝모터 28BYJ-48에는 전류선 다섯 가닥이 있으므로 유니폴라 스텝모터에 해당한다. 두 종류의 스텝모터가 같은 크기를 가지고 있다면, 바이폴라 스텝모터가 더 큰 토크를 내며, 유니폴라 스텝모터가 더 빠른 최대 회전 속력을 보인다. 2. 바이폴라 스텝모터 드라이버 A4988 모듈 바이폴라 스텝모터 드라이버 A4988 모..
-
아두이노 라이브러리 | 유니폴라 스텝모터 드라이버 ULN2003Technology/Arduino 2024. 11. 7. 17:34
1. 스텝모터 스텝모터(stepper motor)는 내부 전자석을 적절하게 제어하여 구동축이 특정한 각도로 회전하게 하는 구동기이다. 서보모터처럼 특정한 각도로 회전하는 기능을 가지고 있지만, 서보모터와는 다르게 엔코더(encoder) 역할을 하는 장치가 내장되어 있지 않으므로 현재 회전 각도를 알 수 없다. 큰 힘을 내면서도 최소 각도 단위로 정확하게 움직이기 때문에 CNC (computerized numerical control) 가공기나 3D 프린터와 같은 자동화 기기에 많이 사용된다. 이번 예제에서는 아두이노 플랫폼에서 기본적으로 사용하는 DC 5V 유니폴라 스텝모터 28BYJ-48을 다루고자 하며, 아래 링크로 접속하면 유니폴라 스텝모터 드라이버 ULN2003 모듈을 함께 구매할 수 있다. ..