DC 모터 가감속의 STM32 제어를 기반으로 정회전 및 역회전 설계(프로그램 + 시뮬레이션 + 보고서 + 설명)

# 이 설계는 DC 모터 가속 및 감속의 STM32 제어를 기반으로 합니다. 정방향 및 역방향 설계(프로그램 + 시뮬레이션 + 보고서 + 설명)
시뮬레이션: proteus8.9
프로그램 컴파일러: keil 5
프로그래밍 언어: C 언어
No. C0011

설명 영상:

기능 설명:

이 디자인은 STM32F103, L298N 모터 구동 회로, 버튼 회로로 구성됩니다.
1. 모터는 버튼을 눌러 정회전, 역회전, 가속, 감속, 정지를 제어할 수 있습니다.
2. 기어는 4가지가 있으며, 순차적으로 전진, 후진, 가속, 감속, 정지를 할 수 있습니다.
3. 기어 위치를 사용자 정의할 수 있습니다.
관련 논문과 함께 제공되며, 하나는 실제 객체를 기반으로 작성되었으며(기본적으로 시뮬레이션 기능과 일치), 다른 하나는 시뮬레이션을 기반으로 작성되었습니다.

보고서 열기

DC 모터 가속, 감속, 정회전 및 역회전을 제어하기 위해 STM32를 기반으로 한 Proteus 시뮬레이션 설계

1. 주제의 배경과 목적

본 강좌의 주요 과제에서는 STM32 마이크로컨트롤러를 기반으로 한 DC 모터 제어 시스템을 설계합니다. 시스템은 모터의 정방향, 역방향, 가속, 감속 및 정지 제어를 달성하기 위해 Proteus 시뮬레이션 소프트웨어를 통해 설계 및 검증됩니다. 제어 시스템은 버튼을 통해 작동되며 4단계 제어 기능을 갖습니다.

우리의 목표는 Proteus 시뮬레이션 설계를 통해 STM32 제어 시스템의 타당성과 효율성을 검증하고 마이크로 컨트롤러, 모터 구동 회로 및 버튼 회로에 대한 이해와 응용을 심화하는 것입니다.

2. 연구방법

이론적인 분석과 시뮬레이션 검증을 결합한 방식을 사용하며, 먼저 Proteus 소프트웨어를 통해 회로를 설계하고 프로그래밍 제어를 통해 필요한 기능을 구현해보겠습니다. 구체적인 단계는 다음과 같습니다:

STM32F103 마이크로 컨트롤러, L298N 모터 구동 회로 및 버튼 회로를 포함하여 Proteus에서 회로를 설계합니다.
프로그램 작성: C 언어를 사용하여 프로그램을 작성하고 마이크로 컨트롤러의 GPIO 포트를 통해 모터의 정방향, 역방향, 가속, 감속 및 정지를 제어합니다.
시뮬레이션 테스트: Proteus에서 프로그램을 실행하고 키 조작을 통해 모터의 제어 기능을 테스트합니다.
3. 기대되는 결과

이상의 연구방법을 통해 다음과 같은 기대결과를 얻을 수 있을 것으로 기대한다.

모터의 정방향, 역방향, 가속, 감속 및 정지 제어는 버튼을 통해 실현될 수 있습니다.
4단 제어 기능이 있어 정회전, 역회전, 가속, 감속, 정지의 제어 주기를 키 시퀀스를 통해 실현할 수 있습니다.
Proteus 시뮬레이션을 통해 STM32 제어 시스템의 타당성과 효율성을 검증합니다.
4. 실험 배치

이 과정의 주요 과제를 완료하는 데 한 달이 걸릴 것으로 예상됩니다. 처음 2주는 주로 회로 설계 및 프로그래밍에 사용되고, 세 번째 주는 시뮬레이션 테스트에, 네 번째 주는 결과 분석 및 보고서 작성에 사용됩니다.

5. 실험재료 및 방법

실험 자료는 다음과 같습니다:

STM32F103 마이크로 컨트롤러
L298N 모터 구동 회로
키 회로
Proteus 시뮬레이션 소프트웨어
실험 방법은 다음과 같습니다.

회로 설계,
프로그램 작성,
시뮬레이션 테스트
6. 실험 단계 및 데이터 기록

실험 단계는 다음과 같습니다:

Proteus에서 회로를 설계합니다.
C 언어를 사용하여 프로그램을 작성합니다.
Proteus에서 프로그램을 실행합니다.
키 조작을 통해 모터의 제어 기능을 테스트합니다.
실험 데이터를 기록합니다.
실험 결과를 분석합니다.
보고서 작성.
데이터 기록에는 다음이 포함됩니다.

키 조작 기록: 키 조작의 시간, 순서 및 결과를 기록합니다.
모터 상태 기록: 정회전, 역회전, 가속, 감속, 정지 등 모터의 상태 변화를 기록합니다.
Proteus 시뮬레이션 결과 기록: 모터 상태, 제어 신호 변화 등 시뮬레이션 테스트 결과를 기록합니다.
7. 실험적 결론 및 논의

실험 후에는 실험 데이터와 결과를 분석하고 논의하여 실험 결론을 도출합니다. 가능한 결론은 다음과 같습니다:

모터의 정방향, 역방향, 가속, 감속 및 정지 제어를 성공적으로 실현합니다.
4단 제어 기능을 성공적으로 구현했습니다.
STM32 제어 시스템의 타당성과 효율성은 Proteus 시뮬레이션을 통해 검증되었습니다.
실험 토론에는 실험 중에 직면한 문제와 어려움에 대한 분석은 물론 향후 개선을 위한 방향과 제안이 포함됩니다.

시뮬레이션 다이어그램(소스 파일 제공):

새로운 시뮬레이션 1

새로운 시뮬레이션 반전

새로운 시뮬레이션 실제 전송

3.1 시스템 기능 분석 및 아키텍처 설계
3.1.1 시스템 기능 분석
이 설계는 STM32F103R6 마이크로컨트롤러 코어 보드 회로 + L298N 모터 구동 회로 + 버튼 회로 + 전원 공급 장치 회로로 구성됩니다.
1. 모터는 정회전, 역회전, 가속, 감속, 정지 등의 버튼을 눌러 제어할 수 있습니다. 8개의 기어가 있습니다.
2. 키를 순서대로 누르면 정회전, 역회전, 가속, 감속, 정지가 됩니다.
3.1.2 전체 시스템 구조

3.2 모듈 회로 설계
3.2.1 STM32 마이크로컨트롤러 코어 회로 설계
STM32 시리즈 프로세서는 실시간 시뮬레이션 및 추적을 지원하는 STMicroelectronics에서 생산한 ARM 7 아키텍처 기반의 32비트 마이크로컨트롤러입니다. 이 컨트롤 칩을 선택한 이유는 이 시스템 설계가 최저 비용이나 더 적은 전력 소비를 추구하는 것이 아니라 설계 기능 구현을 전제로 각 실험 프로젝트에서 요구하는 실험 시스템 설계를 용이하게 할 수 있도록 보다 풍부한 인터페이스와 기능을 제공할 수 있기 때문입니다. .주변 확장 회로. 이 제어 칩은 마이크로 컨트롤러 과정을 마친 후 비교적 쉽게 시작할 수 있으며 의료 기기에 널리 사용되며 학습 및 실험 연구 가치가 좋습니다.
1. STM32의 주요 장점:
(1) ARM의 최신 고급 아키텍처 Cortex-M3 코어 사용
(2) 뛰어난 실시간 성능
(3) 뛰어난 전력 소비 제어
(4) 뛰어나고 혁신적인 주변 장치
(5) 최대 등급 통합
(6) 개발이 용이하여 제품이 시장에 빠르게 진입할 수 있습니다.
2. STM32 - 최고의 플랫폼 옵션
STM32는 여러 프로젝트 개발에 동일한 플랫폼을 사용하는 데 가장 적합한 선택입니다.
(1) 소량만 필요한 애플리케이션에서 메모리 및 핀부터 더 많은 메모리와 핀이 필요한 애플리케이션까지
(2) 성능이 요구되는 애플리케이션부터 배터리 구동 애플리케이션까지
(3) 간단하고 비용에 민감한 애플리케이션부터 고급 애플리케이션까지
(4) 전체 범위의 핀-투 -핀, 주변 장치 및 소프트웨어 호환성은 모든 면에서 유연성을 제공합니다. 더 많은 저장 공간이 필요한 사양으로 애플리케이션을 업그레이드하거나 더 적은 저장 공간을 사용하도록 간소화하거나 원래 프레임워크 및 소프트웨어를 수정하지 않고도 다른 패키지로 전환할 수 있습니다.
STM32F103C8T6 마이크로 컨트롤러 코어 보드의 인터페이스 회로 다이어그램은 아래 그림에 나와 있습니다.

3.2.2 L298N 모터 드라이브 모듈 회로 설계
본 L298N 드라이브 모듈은 ST의 L298N 칩을 사용하며, L298N은 듀얼 H-브리지 모터 드라이브 칩으로, 각 H-브리지는 2A의 전류를 제공할 수 있으며, 전원부의 전원 전압 범위는 다음과 같습니다. 2.5-48v, 로직 부분은 5v로 전원이 공급되고 5vTTL 레벨을 허용합니다. 이 모듈은 2개의 3-30V DC 모터를 직접 구동할 수 있으며 5V 출력 인터페이스를 제공하여 5V 마이크로컨트롤러 회로 시스템에 전원을 공급하고 DC 모터의 속도와 방향을 편리하게 제어할 수 있습니다.
1. 제품 매개변수:
(1) 드라이버 칩: L298N 듀얼 H-브리지 드라이버 칩
(2) 다이오드 환류 보호 기능 포함
(3) DC 모터 속도는 PWM으로 제어 가능
(4) 드라이브 부품 단자 전원 공급 장치 범위 VMS: +5V~ +35V
(5) 구동부 피크 전류 Io: 2A/브리지
(6) 논리부 단자 전원 공급 범위 Vss: 4.5~5.5V
(7) 논리부 작동 전류 범위: 0~36mA
(8) 제어 신호 입력 전압 범위: 고전압 Flat 4.5-5.5V Low level 0V
(9) 최대 소비 전력 : 20W
(10) 보관 온도 : -25℃~+130℃
2. 모터 구동 모듈 사용 시 주의 사항
(1) 전원을 켤 때 녹색 전원 표시를 준수하십시오. 처음으로 L5 램프가 켜져 있는지 확인하고, 켜지지 않으면 즉시 전원을 차단하고 전원이 반대로 연결되어 있는지 확인하세요.
(2) 드라이버는 동력 장치이므로 작업 환경에서 방열 및 환기를 유지하고 모터를 연결한 후 일정 시간 동안 계속 작동시켜 모터 및 드라이버 칩의 온도 상승이 정상적인지 관찰하십시오. 후속 사용 전에.
3. 모터 드라이브 모듈 인터페이스 설명:
(1) 모터 드라이브 전원 입력 인터페이스: VMS는 양극에 연결되고 GND는 음극에 연결됩니다.
(2) 드라이버와 제어 포트 간 인터페이스: DC 모터 제어 시 IN1, IN2, ENA가 하나의 그룹으로 모터 A를 제어하며 A+, A-에 연결되며, 모터 A가 제어되지 않을 경우 ENA는 플로팅(Floating) 상태로 남겨둘 수 있습니다. ; 모터 A 제어인 경우 ENA는 PWM 출력에 연결됩니다. IN3, IN4, ENB는 그룹으로 모터 B를 제어하며 B+, B-에 연결되며, 모터 B가 제어되지 않으면 ENB는 플로팅 상태로 남을 수 있고, 모터 B가 제어되면 ENB는 PWM 출력에 연결됩니다.
4. DC 모터 제어 신호 진리표
모터 A를 예로 들면, 하이 레벨 H: 로우 레벨: L
입력 신호 기능:
IN1=H, IN2=L: 모터 A가 정방향 회전
IN1=L, IN2=H: 모터 A 역방향
ENA=H, IN1=IN2: 모터 A 비상 정지
ENA=L, IN1=X, IN2=X: 모든 레벨의 모터 A가 관성 정지합니다
.L298 모터 드라이브 모듈은 안정적이고 신뢰할 수 있는 성능을 가지며 설계 요구 사항을 충족합니다. 모듈 인터페이스 다이어그램은 아래 그림에 표시됩니다.
여기에 이미지 설명을 삽입하세요.

L298N 모터 드라이브 모듈 인터페이스 다이어그램
L298N 모터 드라이브 모듈의 내부 회로 개략도는 아래 그림에 표시됩니다. P1은 주 전원 입력, GND 및 5V DC 전원 출력 인터페이스입니다. 전체 전원 공급 장치는 L7805CV 전압 안정화 칩을 통해 고전압을 5V로 감소시킵니다.L7805CV는 출력 전압 4.75-5.25V, 최대 입력 전압 35V, 최대 출력 전류 1.5A, 4.2-8mA의 대기 전류. C1-C4는 모두 필터링 역할을 수행하여 전압을 보다 안정적으로 만듭니다. P3 및 P4는 모터 인터페이스입니다. 다이오드 D1-D8은 모터에서 생성된 역유도 기전력이 L298N을 손상시키는 것을 방지하는 보호 역할을 합니다. P2는 제어 핀이고 D9-D13은 신호 표시기이며 관련 저항은 LED 조명을 보호하기 위해 전류 제한 역할을 합니다.

소스 프로그램(소스 파일 제공):

char dis0[6] = "Dir:+";   //暂存
char dis1[6] = "Dir:-";   //暂存
char dis2[16] = "";   //暂?
char dis3[] = "RUN ";   //暂存?
char dis4[] = "STOP";   //暂存
unsigned  char rekey = 0; //按键防止抖动
unsigned char contNum = 0; //循环计数
int main(void)
{
    
    
  
    delay_init();            //延时函数初始化
  
//    uart_init(9600);        //串口初始化为115200
    //  uart2_init(9600)    ;
    TIM3_Int_Init(10, 7199); //定时器
    LED_Init();             //初始化与LED连接的硬件接口
    KEY_Init();
    Lcd_GPIO_init();
    Lcd_Init();
    IN1 = 1;        //方向控制
    IN2 = 0;
    pwmRigh = 0;    //pwm调整,电机转速调整

    Lcd_Puts(0, 0, (unsigned char *)dis0);
    sprintf(dis2,"SPEED:%d",pwmRigh);
    Lcd_Puts(0, 1, (unsigned char *)dis2);
     Lcd_Puts(8, 0, (unsigned char *)dis3);

    while(1)
    {
    
    
        if((key1 == 0) || (key2 == 0) || (key3 == 0) || (key4 == 0) || (key5 == 0))      //检测到按键按下
        {
    
    
//            delay_ms(1);   //小抖动仿真不需要加
            if(rekey == 0)
            {
    
    
                if(key1 == 0)  //检测是否按下
                {
    
    

                    rekey = 1;
                    IN1 = 1;        //方向控制
                    IN2 = 0;                   
                    Lcd_Puts(0, 0, (unsigned char *)dis0);
                     Lcd_Puts(8, 0, (unsigned char *)dis3);
                }
                else if(key2 == 0) //设置值键
                {
    
    
                    rekey = 1;
                    IN1 = 0;        //方向控制
                    IN2 = 1;
                    Lcd_Puts(0, 0, (unsigned char *)dis1);
                     Lcd_Puts(8, 0, (unsigned char *)dis3);
                }
                else if(key3 == 0) //设置值键
                {
    
    
                    rekey = 1;
                    if(pwmRigh < 8)pwmRigh = pwmRigh + 2; //pwm 调速
                    sprintf(dis2,"SPEED:%d",pwmRigh/2);
                    Lcd_Puts(0, 1, (unsigned char *)dis2);
                }
                else if(key4 == 0) //设置值键
                {
    
    
                    rekey = 1;
                    if(pwmRigh >= 2)pwmRigh = pwmRigh - 1; //pwm 调速
                    sprintf(dis2,"SPEED:%d",pwmRigh/2);
                    Lcd_Puts(0, 1, (unsigned char *)dis2);
                }
                else if(key5 == 0) //设置值键
                {
    
    
                    rekey = 1;
                    IN1 = 0;        //方向控制
                    IN2 = 0;
                    Lcd_Puts(8, 0, (unsigned char *)dis4);
                }
            }
        }
        else
        {
    
    
            rekey = 0;  //防止重复检测到按键
        }
        delay_ms(10);
    }
}

여기에 이미지 설명을 삽입하세요.

다음은 프로그램의 일부입니다. 전체 프로그램은 다운로드 링크에서 사용할 수 있습니다.

논문 보고서:

물리적 객체와 관련된 논문:

여기에 이미지 설명을 삽입하세요.

시뮬레이션 관련 논문:
Chapter 1 서문
1.1 주제의 배경 및 의의
DC 모터는 시동 및 제동 성능이 우수하고 넓은 범위에서 원활한 제어에 사용할 수 있으며 제어 또는 전진 및 제어가 필요한 많은 응용 분야에도 널리 사용할 수 있습니다. 역방향 전기 드래그 분야. 제어 관점에서 DC 제어는 AC 드라이브 시스템의 기초입니다. 초기 제어 시스템의 대부분은 연산 증폭기, 비선형 집적 회로 및 소수의 디지털 회로를 포함한 아날로그 회로를 기반으로 했으며 제어 시스템의 하드웨어 부분은 상대적으로 복잡하고 기능이 단순했으며 소프트웨어 시스템은 유연성이 없고 어려웠습니다. 디버깅하는 것은 DC 모터 제어 기술의 개발 및 적용 범위에 도움이 되지 않습니다. 마이크로 컨트롤러 제어 기술의 급속한 발전으로 많은 제어 기능 알고리즘과 소프트웨어가 완성되어 DC 모터 제어를 위한 더 큰 개발 공간을 제공하고 시스템이 더 높은 성능을 달성할 수 있게 되었습니다. 단일 칩 마이크로컴퓨터를 사용하여 제어 시스템을 구성하면 인적 자원을 절약하고 시스템 비용을 절감하여 작업 효율성을 효과적으로 향상시킬 수 있습니다.
전통적인 제어 시스템은 아날로그 구성 요소를 사용하며 생산 요구 사항을 충족하지만 구성 요소가 노화되기 쉽고 사용 중 간섭에 쉽게 영향을 받고 회로가 복잡하기 때문에 시스템의 작동 신뢰성이 저하됩니다. 제어 효과에 영향을 미칩니다. 기기 성능, 온도 등의 요인에 의해 정확도를 보장할 수 없으며, 사고가 발생할 수도 있습니다.
현재 DC 모터 제어 시스템의 디지털화가 실용화되고 있으며, 전자 기술의 급속한 발전에 따라 DC 모터 제어도 점차 아날로그에서 디지털로 전환되고 있으며, 특히 단일 칩 마이크로컴퓨터 기술의 응용으로 DC 모터 제어 기술이 탄생하게 되었습니다. 새로운 시대를 맞이하여 단계, 지능 및 높은 신뢰성이 개발 추세가 되었습니다. 그러므로 DC 무단계 제어를 실현하는 것은 우리의 사회적 생산과 삶에 큰 의미를 갖습니다.
1.2 국내외 연구현황
DC 모터는 시동 및 제동 성능이 우수하고 넓은 범위에 걸쳐 원활한 제어에 적합하며 제어나 정방향 및 역방향 제어가 필요한 많은 전기 구동 분야에서 널리 사용되었습니다. 제어 관점에서 볼 때 DC 제어는 AC 드라이브 시스템의 기초이기도 합니다. 초기 DC 모터의 제어는 연산 증폭기, 비선형 집적 회로 및 소수의 디지털 회로를 사용하는 아날로그 회로를 기반으로 했으며, 제어 시스템의 하드웨어 부분은 매우 복잡하고 단일 기능만 갖고 있었습니다. 디버깅이 어려워 DC 모터 개발에 걸림돌이 됨 모터 제어 기술 개발 및 적용 범위 확대 마이크로컨트롤러 기술의 급속한 발전으로 많은 제어 기능과 알고리즘이 소프트웨어 기술을 사용하여 완성될 수 있어 DC 모터 제어에 더 큰 유연성을 제공하고 시스템이 더 높은 성능을 달성할 수 있습니다. 단일 칩 마이크로컴퓨터를 사용하여 제어 시스템을 구성하면 인적 자원을 절약하고 시스템 비용을 절감하여 작업 효율성을 효과적으로 향상시킬 수 있습니다.
실제 응용 분야에서 전기 에너지를 기계 에너지로 변환하는 주요 장비인 전기 모터는 에너지 변환 효율이 높아야 하며, 둘째, 생산 공정의 요구 사항에 따라 회전 속도를 조정할 수 있어야 합니다. 모터의 제어 성능은 제품 품질 향상, 노동 생산성 향상 및 전기 에너지 절약에 직접적이고 결정적인 영향을 미칩니다. 그래서 제어기술은 늘 뜨거운 연구주제였습니다.
DC 모터는 야금, 광업, 화학 산업, 운송, 기계, 섬유, 항공 및 기타 분야에서 널리 사용되었습니다. 과거에는 DC 모터의 제어가 단순 제어에 불과하여 제어가 어렵고 지능적이지 못했습니다. 전통적인 제어 시스템은 어느 정도 생산 요구 사항을 충족하는 아날로그 부품을 사용하지만, 부품이 노화되기 쉽고 사용 중에 외부 간섭에 쉽게 영향을 받고 회로가 복잡하고 범용성이 떨어지기 때문에 제어 효과에 영향을 미칩니다. 기기 성능, 온도 등의 요인으로 인해 시스템의 동작 신뢰성 및 정확성을 보장할 수 없으며, 사고가 발생할 수도 있습니다. 오늘날 DC 모터의 제어는 단일 칩 마이크로컴퓨터의 지원과 불가분의 관계에 있으며, 단일 칩 마이크로컴퓨터 응용 기술의 급속한 발전은 자동 제어 기술의 발전을 촉진하여 인류 사회를 자동화 시대로 이끌었습니다. 단일 칩 마이크로컴퓨터 응용 기술 및 기타 주제 분야의 발전이 촉진되었습니다. 학문 개발과 전문 갱신은 새로운 학제간 학문과 기술의 지속적인 출현을 촉발시켰습니다. 현대 과학기술의 급속한 발전은 세상과 인간의 삶을 변화시켰습니다. 작은 크기, 가벼운 무게, 강력한 기능, 강력한 간섭 방지 능력, 유연한 제어, 편리한 응용 및 저렴한 가격과 같은 마이크로 컨트롤러의 특성으로 인해 컴퓨터 성능이 계속 향상되고 있으며 특히 마이크로 컨트롤러의 응용이 더욱 광범위해졌습니다. 다양한 분야의 제어 및 자동화 등
현재 DC 모터 제어 시스템의 디지털화가 실용화되고 있으며, 전자 기술의 급속한 발전에 따라 DC 모터 제어도 점차 아날로그에서 디지털로 전환되고 있으며, 특히 단일 칩 마이크로컴퓨터 기술의 응용으로 DC 모터 제어 기술이 탄생하게 되었습니다. 새로운 시대를 맞이하여 단계, 지능 및 높은 신뢰성이 개발 추세가 되었습니다.
최근에는 과학기술의 발달로 전력전자기술이 급속히 발전하여 DC모터의 사용이 점점 더 광범위해지고 있다. DC는 우수한 제어 특성, 부드럽고 편리한 제어, 넓은 제어 범위, 큰 과부하 용량, 잦은 충격 하중을 견딜 수 있으며 빈번한 무단계 급속 시동, 제동 및 반전을 달성할 수 있습니다.
1.3 본 논문의 주요 연구 내용 및 구성
1장. 본 설계의 주제 배경과 국내외 연구 현황을 주로 소개,
2장에서는 시스템 솔루션의 선정을 주로 설명,
3장에서는 하드웨어의 구성 및 용도를 주로 소개 회로 방법,
4장에서는 소프트웨어 설계를 주로 소개하고
5장은 하드웨어 디버깅을 주로 소개합니다.
시뮬레이션 관련 보고서

정보 목록은 다음과 같습니다.

0. 일반적인 사용 문제 및 해결 방법 - 꼭 읽어보세요! ! ! !
1. 소스 프로그램
2. 시뮬레이션
3. 논문 보고서
4. 설명 영상
5. 기능 요구 사항
Altium Designer 소프트웨어 정보
KEIL 소프트웨어 정보
L298N 상세 정보.doc
Proteus 소프트웨어 정보
마이크로 컨트롤러 학습 자료
목차.txt
방어 기술
설계 보고서 공통 설명
Double -더 많은 STM32 마이크로컨트롤러 과정 졸업 프로젝트를 찾으려면 마우스 열기를 클릭하세요.url

정보 Baidu 네트워크 디스크 다운로드 링크

추천

출처blog.csdn.net/weixin_52733843/article/details/131886935