单片机小白学习之路(十二)---直流电机的控制

目标:直流电机的控制

1.直流电机简介

直流电机是指能将直流电能转换成机械能的旋转电机。
相关参数:
轴长:8mm
轴径:2mm
电压:1-6v
参考电流:0.35-0.4A
3v转速:17000-18000转每分钟


单片机小白学习之路(十二)---直流电机的控制_第1张图片
直流电机

2.模块电路

单片机小白学习之路(十二)---直流电机的控制_第2张图片
直流电机模块

TC1117芯片构造与TC1508一样,那就来看看TC1508的

单片机小白学习之路(十二)---直流电机的控制_第3张图片
引脚

INA, INB与INC,IND是两组输入端OUTA,OUTB与OUTC,OUTD是两组输出端


单片机小白学习之路(十二)---直流电机的控制_第4张图片
真值表
  • INA和INB都输入低电平时,电机是待命状态
  • INA高,INB低时,电机是前进,顺时针
  • INA低,INB高时,电机是后退,逆时针
  • INA和INB都输入高电平时,电机是刹车的状态,就是正在转一下停止

OUT的部分加电容是为了去除杂波(比如按键的杂波),防止影响电机的运转

3.代码

#include

typedef unsigned int u16;
typedef unsigned char u8;

sbit ShuC_a = P1^0;   //输入端a
sbit ShuC_b = P1^1;   //输入端b
sbit k1 = P1^4;       //独立按键

void delay(u16 i)
{
    while(i--);
}


void main()
{   u8 a;
    u8 mode=0; //用于改变模式

    while(1){
        if(k1==0){
            delay(1000);
            if(k1==0){  //按键消抖
                a++;
                mode++;
                if(mode==2)mode=0;
            }while(a<50&&!k1); //判断是否松开了按键,在k1不是0和a>=50时跳出
        }
        if(mode==1){   //开启
            ShuC_a=0;
            ShuC_b=1;   
        }
        else if(mode==0){  //停止
            ShuC_a=0;
            ShuC_b=0;   
        }       
    }
}
//运行状态:按键按一下运行,再按一下就停止

你可能感兴趣的:(单片机小白学习之路(十二)---直流电机的控制)