28BYJ-48 :이 스테퍼 모터에 대해 알아야 할 모든 것

28BYJ-48 스테퍼 모터

중 하나 가장 인기있는 스테퍼 모터는 28BYJ-48입니다. 이 블로그에 게시 된 기사 후에는 이미 알고 있어야합니다. 이 유형의 엔진에 대해 필요한 모든 것 회전을 제어하여 천천히 전진하거나 원하는 위치에서 정적으로 유지되도록 할 수 있습니다. 이를 통해 산업에서 로봇 공학에 이르기까지 여러분이 생각할 수있는 다른 많은 분야를 통해 다양한 응용 분야를 가질 수 있습니다.

28BYJ-48은 단 극형 스테퍼 모터일반적으로 함께 포함되는 드라이버 / 컨트롤러 모듈 모델 ULN2003A가 있으므로 Arduino와 쉽게 통합 할 수 있습니다. 모두 매우 저렴한 가격과 상당히 컴팩트 한 크기입니다. 이러한 기능은 또한 이러한 장치로 연습을 시작하는 데 이상적입니다.

28BYJ-48 특징

28BYJ-48

엔진 28BYJ-498 다음과 같은 특성을 가진 스테퍼 모터입니다.

  • 억센: 스테퍼 모터 또는 단극 스테퍼
  • 단계: 4 개 (풀 스텝), 내부에 4 개의 코일이 있습니다.
  • 저항: 50Ω.
  • 모터 토크 : 34 N / m, 즉 미터당 뉴턴이 Kg로 전달되면 축에 약 0.34Kg / cm를 두는 것과 동일한 힘이됩니다. XNUMX 분의 XNUMX 킬로가 조금 넘는 풀리로 들어 올릴 수 있습니다.
  • 소비: 55 mA
  • 랩당 걸음 수: 8 개 반 스텝 타입 (각각 45º)
  • 통합 기어 박스: 예, 1/64이므로 정밀도를 높이기 위해 각 단계를 64 개의 작은 단계로 나눕니다. 따라서 각각 512º 씩 0.7 단계에 도달합니다. 또는 랩당 256 개의 풀 스텝 (풀 스텝)으로 볼 수도 있습니다.

전체 또는 절반 단계 또는 전체 및 절반 단계는 작업 할 수있는 모드입니다. 기억한다면 스테퍼 모터에 대한 기사에서 Arduino IDE의 코드 예제가 최대 토크로 작동한다고 말했습니다.

자세한 내용은 데이터 시트 다운로드으로 예를 들어 이것. 핀아웃에 관해서는 구입 한 모델의 데이터 시트에서 정보를 볼 수도 있지만 너무 걱정할 필요가 없습니다. 그러나이 콘크리트에는 극성이나 각 케이블이 어디로 가는지 걱정하지 않고 모든 케이블을 한 번에 연결할 수있는 연결이 있습니다. 컨트롤러에 삽입하기 만하면됩니다.

ULN2003 모듈 드라이버

이 28BYJ-48 모터에 포함 된 모터 컨트롤러 또는 드라이버는 ULN2003A, 가장 인기 있고 Arduino와 함께 매우 쉽게 사용할 수 있습니다. 이전에 언급 한 스테퍼 모터 기사에서 본 것처럼 최대 500mA를 지원하는 Darlington 트랜지스터 배열과 4 개의 코일을 IN1에서 IN4까지 번호가 지정된 Arduino 보드의 핀과 연결하는 연결 핀이 있습니다. Arduino에서 5v 및 GND 핀에서-+ (5-12v)로 표시된 드라이버 모듈 보드의 두 핀으로 와이어를 연결하여 보드와 스테퍼 모터에 전원을 공급할 수 있습니다.

ULN2003A 칩 핀아웃 및 회로

그건 그렇고, 달링턴 트랜지스터 한 쌍의 바이폴라 트랜지스터를 함께 배치하고 단일 트랜지스터로 사용할 수 있습니다. 이렇게하면 단일 '트랜지스터'에서 신호 이득이 크게 증가하고 더 높은 전류와 전압을 전달할 수 있습니다.

El 달링턴 페어, 두 개의 바이폴라 트랜지스터의 조합에 의해 형성된 단일 "트랜지스터"가 알려져 있습니다. 그것은 1952 년 Sidney Darlington에 의해 Bell Labs에서 시작 되었기 때문에 그 이름이되었습니다. 이 트랜지스터는 하나의 NPN이 두 번째 NPN 트랜지스터의 콜렉터에 연결된 콜렉터를 갖도록 연결됩니다. 첫 번째 발행자는 두 번째 발행자로 이동합니다. 즉, 결과 트랜지스터 또는 쌍에는 단일 트랜지스터로 세 개의 연결이 있습니다. 첫 번째 트랜지스터의베이스와 두 번째 트랜지스터의 컬렉터 / 에미 터 ...

모터 구입처

28BYJ-48 엔진 패키지

당신은 많은 상점에서 찾을 수 있습니다 전자 제품을 전문으로하고 아마존과 같은 온라인에서도 예를 들어 다음에서 구입할 수 있습니다.

Arduino로 28BYJ-48 프로그래밍

스테퍼 모터 및 컨트롤러가있는 Arduino

우선, 당신은 스테퍼 모터의 개념에 대해 명확하게, 그래서 나는 당신을 추천합니다 이 항목에 대한 Hwlibre의 기사 읽기. 이 모터는 지속적으로 공급되도록 설계되지 않았지만 서로 다른 위상에서 극성을 띠게하여 우리가 원하는 각도로만 전진하도록 설계되었습니다. 위상을 자극하고 샤프트의 회전을 제어하려면 각 연결을 적절하게 공급해야합니다.

제조업체는 한 번에 2 개의 코일을 구동 할 것을 권장합니다.

  • 작동하게하려면 최대 토크에서, 가장 빠른 속도와 최대 소비량으로 다음 표를 사용할 수 있습니다.
단계 코일 A 코일 B 코일 C 코일 D
1 높은 높은 낮은 낮은
2 낮은 높은 높은 낮은
3 낮은 낮은 높은 높은
4 높은 낮은 낮은 높은
  • 한 번에 하나의 코일 만 자극하고 작동하게하려면 웨이브 드라이브 모드 (절반이지만 소비량이 적더라도) 다음 표를 사용할 수 있습니다.
단계 코일 A 코일 B 코일 C 코일 D
1 높은 낮은 낮은 낮은
2 낮은 높은 낮은 낮은
3 낮은 낮은 높은 낮은
4 낮은 낮은 낮은 높은
  • 또는 진보를 위해 반 단계,이를 사용하여 짧은 단계에서 더 높은 회전 정밀도를 얻을 수 있습니다.
단계 코일 A 코일 B 코일 C 코일 D
1 높은 낮은 낮은 낮은
2 높은 높은 낮은 낮은
3 낮은 높은 낮은 낮은
4 낮은 높은 높은 낮은
5 낮은 낮은 높은 낮은
6 낮은 낮은 높은 높은
7 낮은 낮은 낮은 높은
8 낮은 낮은 낮은 높은

그리고 당신은 생각할 수 있습니다 ... 이것이 Arduino 프로그래밍과 어떤 관련이 있습니까? 글쎄요, 사실은 Arduino IDE의 값으로 행렬 또는 배열을 만들 수 있습니다. 모터가 원하는대로 움직 이도록 한 다음 루프에서 또는 필요할 때 상기 어레이를 사용하도록 ... LOW = 0 및 HIGH = 1, 즉 전압이 없거나 고전압이 없음을 고려하여 다음을 생성 할 수 있습니다. Arduino가 모터를 구동하기 위해 컨트롤러로 보내야하는 신호. 예를 들어 중간 단계를 수행하려면 행렬에 대한 코드를 사용할 수 있습니다.

int Paso [ 8 ][ 4 ] = 
     {  {1, 0, 0, 0}, 
        {1, 1, 0, 0}, 
        {0, 1, 0, 0}, 
        {0, 1, 1, 0}, 
        {0, 0, 1, 0}, 
        {0, 0, 1, 1}, 
        {0, 0, 0, 1}, 
        {1, 0, 0, 1} };

즉, 스케치의 완전한 코드 Arduino IDE에서이 기본 예제를 사용하여 28BYJ-48 스테퍼 모터의 작동 방식을 테스트 할 수 있습니다. 이를 통해 전체 다이어그램이 제대로 연결되면 모터 샤프트를 회전 할 수 있습니다. 값을 수정하거나 귀하의 경우에 필요한 애플리케이션의 코드를 변경하십시오.

// Definir pines conectados a las bobinas del driver
#define IN1  8
#define IN2  9
#define IN3  10
#define IN4  11

// Secuencia de pasos a par máximo del motor. Realmente es una matriz que representa la tabla del unipolar que he mostrado antes
int paso [4][4] =
{
  {1, 1, 0, 0},
  {0, 1, 1, 0},
  {0, 0, 1, 1},
  {1, 0, 0, 1}
};

void setup()
{
  // Todos los pines se configuran como salida, ya que el motor no enviará señal a Arduino
  pinMode(IN1, OUTPUT);
  pinMode(IN2, OUTPUT);
  pinMode(IN3, OUTPUT);
  pinMode(IN4, OUTPUT);
}

// Bucle para hacerlo girar
void loop()
{ 
    for (int i = 0; i < 4; i++)
    {
      digitalWrite(IN1, paso[i][0]);
      digitalWrite(IN2, paso[i][1]);
      digitalWrite(IN3, paso[i][2]);
      digitalWrite(IN4, paso[i][3]);
      delay(10);
    }
}

보시다시피,이 경우 코일을 XNUMXxXNUMX로 활성화하는 최대 토크로 작동합니다.


코멘트를 첫번째로 올려

코멘트를 남겨주세요

귀하의 이메일 주소는 공개되지 않습니다. 필수 필드가 표시되어 있습니다 *

*

*

  1. 데이터 책임자 : Miguel Ángel Gatón
  2. 데이터의 목적 : 스팸 제어, 댓글 관리.
  3. 합법성 : 귀하의 동의
  4. 데이터 전달 : 법적 의무에 의한 경우를 제외하고 데이터는 제 XNUMX 자에게 전달되지 않습니다.
  5. 데이터 저장소 : Occentus Networks (EU)에서 호스팅하는 데이터베이스
  6. 권리 : 귀하는 언제든지 귀하의 정보를 제한, 복구 및 삭제할 수 있습니다.