운영 및 유지보수 안전 28BYJ-48 스테퍼 모터의 전송 정확도와 심층 분석을 달성하는 방법

28BYJ-48 스테퍼 모터의 전송 정확도와 심층 분석을 달성하는 방법

May 26, 2023 am 11:53 AM
28byj-48

네, 뒤집어졌는데 뭔가 이상하다는 느낌이 들지 않나요? 너무 느린? 걱정하지 마세요. 계속 진행하겠습니다. 이 장의 끝부분에 설명된 원리에 따르면 8비트 모드에서는 스테퍼 모터가 한 번 회전하는 데 64개의 리듬이 필요합니다. 우리 프로그램에서 각 리듬은 2ms 동안 지속되므로 1회전은 128ms, 즉 1초가 되어야 합니다. . 7회전이 넘는데 왜 1회전을 완료하는데 7초 이상 걸리는 것처럼 보일까요?
이제 '영구자석 가속 스테퍼 모터'에서 '가속도'의 개념을 이해할 차례입니다. 그림 9-7은 이 28BYJ-48 스테퍼 모터의 분해도입니다. 사진에서 볼 수 있듯이 가운데 흰색 피니언은 스테퍼 모터의 로터 입력입니다. 64개의 리듬이 이 피니언을 회전시킵니다. 원을 그리며 커다란 하늘색 기어를 구동합니다. 이것이 첫 번째 가속 수준입니다. 오른쪽 상단의 빨간색 기어의 구조를 살펴보겠습니다. 모터 로터와 최종 입력 샤프트를 제외하면 3개의 변속기 기어는 여러 개의 톱니와 작은 톱니의 레이어로 구성된 구조를 가질 수 있습니다. , 각 기어는 다음 기어의 작은 톱니 레이어를 사용하여 다음 기어의 다중 톱니 레이어를 구동합니다. 이러한 방식으로 두 기어마다 가속도 레벨이 형성되며 총 4가지 가속도 레벨이 있습니다. 그렇다면 총 가속 비율은 얼마입니까? 즉, 입력축이 한 번 회전하기 전에 로터는 몇 바퀴를 돌려야 합니까?

28BYJ-48 스테퍼 모터의 전송 정확도와 심층 분석을 달성하는 방법
그림 9-7 스테퍼 모터 외부 기어 표현


모터 매개변수 테이블의 가속도 비율 매개변수를 다시 살펴보세요 - 1:64, 회전자가 64번 회전하고 입력 샤프트가 최종적으로 한 번 회전합니다. , 64*64=4096개의 리듬 입력 샤프트가 한 번 회전하는데 2ms*4096=8192ms가 걸리고, 한 번 회전하는 데 8초 이상이 걸립니다. 지금의 실험 결과와 일치합니까? 4096개의 리듬이 하나의 원으로 회전하므로 리듬 회전 각도는 360/4096입니다. 표의 스텝 각도 매개변수 5.625/64를 보면 이 두 값을 알 수 있습니다. 모두 동일합니다.
원칙에 대한 기본적인 이해는 여기에서 완료되어야 하지만, 모두가 "진리를 검증하는 유일한 기준"이라는 사고방식을 키울 수 있기를 바랍니다! 스테퍼 모터의 가장 큰 특징은 무엇입니까? 마이그레이션량을 정확하게 파악하라! 그럼 그것이 정확한지 테스트해 볼까요? 얼마나 정확합니까? 어떻게 연습하나요? 90도 회전해서 금지사항인지 측정해 볼까요? 괜찮습니다. 하지만 1도만 벗어나거나 심지어 1도 미만이라도 어긋나면 정확하게 측정할 수 있나요? 정교한 도구 없이는 어렵습니다. 최종적으로 멈춘 위치가 여전히 원래 위치가 아닌지 확인하기 위해 완전한 원을 몇 개 더 회전시켜 보겠습니다. 이에 따라 우리는 모터 회전 수를 쉽게 제어할 수 있도록 프로그램을 수정했습니다.

			#include <reg52.h> void TurnMotor(unsigned long angle); void main(){ TurnMotor(360*25); //360 度*25,即 25 圈 while (1); } /* 软件延时函数,延时约 2ms */ void delay(){ unsigned int i = 200; while (i--); } /* 步进电机迁移转变函数,angle-需转过的角度 */ void TurnMotor(unsigned long angle){ unsigned char tmp; //暂时变量 unsigned char index = 0; //节奏输入索引 unsigned long beats = 0; //所需节奏总数 //步进电机节奏对应的 IO 掌握代码 unsigned char code BeatCode[8] = { 0xE, 0xC, 0xD, 0x9, 0xB, 0x3, 0x7, 0x6 }; //盘算需求的节奏总数,4096 拍对应一圈 beats = (angle*4096) / 360; //判别 beats 不为 0 时履行轮回,然后自减 1 while (beats--){ tmp = P1; //用 tmp 把 P1 口以后值暂存 tmp = tmp & 0xF0; //用&操作清零低 4 位 tmp = tmp | BeatCode[index]; //用|操作把节奏代码写到低 4 位 P1 = tmp; //把低 4 位的节奏代码和高 4 位的原值送回 P1 index++; //节奏输入索引递增 index = index & 0x07; //用&操作完成到 8 归零 delay(); //延时 2ms,即 2ms 履行一拍 } P1 = P1 | 0x0F; //封闭电机一切的相 }
로그인 후 복사

위 프로그램에서는 먼저 모터가 지정된 각도로 회전하도록 제어하는 ​​함수를 작성했습니다. 이 각도 값은 함수의 메소드 매개변수에 의해 제공되며, 주 함수에서 이를 변경하여 쉽게 제어할 수 있습니다. 호출 시 실제 매개변수는 모터가 어떤 각도로든 회전합니다. 우리는 25개의 원인 360*25를 사용했습니다. 물론 다른 값으로 변경하여 결과를 확인할 수도 있습니다. 우리 프로그램은 25*8=200초 동안 실행됩니다. 먼저 입력 샤프트의 초기 위치를 기록한 다음 전원을 켜고 완료될 때까지 기다리십시오. 오류가 있습니까? 무슨 일인가요? 전송량을 정확하게 제어할 수 없는 이유는 무엇인가요?
이 결과는 실제로 가속도 비율에 따른 것입니다. 제조사에서 제공하는 가속도 비율은 어느 제조업체에서 생산하든 공칭 가속도인 28BYJ-48입니다. 비율은 대부분 1:64입니다. 하지만 실제로는 어떻습니까? 분해 계산을 통해 실제적이고 정확한 가속도 비율은 이 값인 1:64가 아니라 1:63.684라는 것을 알았습니다! 이 데이터를 얻는 방법도 매우 복잡합니다. 각 기어의 톱니 수를 세고 각 레벨의 가속도 비율을 곱하면 측정된 가속도 비율이 (32/9)*(22/11)입니다. *(26/9)*(31/10)≒63.684이므로 실제 오차는 0.0049로 약 0.5%입니다. 100번 돌리면 차이가 반 바퀴가 됩니다. 1/8만 꺼진 각도인 45도인가요? 오류가 45도인지 살펴보겠습니다. 그러면 실제 가속도 비율인 1:63.684에 따르면 한 바퀴를 도는 데 필요한 리듬 수는 64*63.684≒4076이라는 결론을 내릴 수 있습니다. 그런 다음 아래 프로그램의 모터 구동 기능에서 4096을 4076으로 변경하고 다시 시도하십시오. 사소한 오류도 볼 수 없나요? 그러나 실제로는 아래의 계산 결과가 대부분 근사치이므로 오류가 여전히 존재합니다. 실제 오류는 약 0.000056, 즉 10,000회전 후에는 0.56회전이므로 무시할 수 있습니다.

그렇다면 제조사의 매개변수에는 왜 오류가 있는 걸까요? 제조사에서는 모르나요? 이 문제를 설명하려면 실제 사용으로 돌아가야 합니다. 스테퍼 모터의 가장 일반적인 목적은 일반적으로 360도 내에서 특정 각도로 회전하도록 타겟을 제어하는 ​​것입니다. 사용 에어컨의 팬 블레이드를 제어하기 위해 팬 블레이드의 이동 범위는 180도를 초과하지 않으므로 이 사용 사례에서 제조업체는 충분히 정확하고 합리적인 1:64의 대략적인 정수 가속 비율을 제공합니다. . 그러나 우리 프로그램과 마찬가지로 반드시 에어컨 팬 블레이드를 구동하는 데 사용할 필요는 없으며 다른 작업을 수행하기 위해 여러 번 회전시킬 수 있습니다. 모든 사람이 이해하고 숙달할 수 있는 것, 즉 우리는 시스템을 스스로 "설계"하고 그 안에서 발견된 문제를 해결할 수 있어야 하며 소위 "기성 계획"에 얽매이지 않아야 합니다. .

위 내용은 28BYJ-48 스테퍼 모터의 전송 정확도와 심층 분석을 달성하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
3 몇 주 전 By 尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

메모장++7.3.1

메모장++7.3.1

사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전

SublimeText3 중국어 버전

중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

드림위버 CS6

드림위버 CS6

시각적 웹 개발 도구

SublimeText3 Mac 버전

SublimeText3 Mac 버전

신 수준의 코드 편집 소프트웨어(SublimeText3)