嵌入式进阶——震动马达

🎬 秋野酱:《个人主页》
🔥 个人专栏:《Java专栏》《Python专栏》

⛺️心若有所向往,何惧道阻且长

原理图

在这里插入图片描述

控制分析

S8050 NPN三极管特性
NPN型三极管的工作原理是基于PN结和PNP型晶体管的工作原理。
当外加正向电压时,发射区的P型半导体被注入少量的N型载流子(电子),这些电子被加速并向基区移动。在基区,电子与空穴结合,从而减少了空穴的浓度。当基区浓度低于发射区浓度时,电子会进一步扩散到集电区,导致集电区产生电流。
当外加反向电压时,PN结会被反向偏置。此时,电子和空穴被吸引到PN结中心,从而阻止了电流的流动。
在这里插入图片描述
B: base, 基极。(理解:基于/根据 这个条件做什么事情)
E: emitter, 发射极。(理解:发射端,入口)
C: collector, 集电极。(理解:收集电的区域,用电的器件在这个区域)
NPN型三极管,C极为输入端,E极为输出端,B极为控制端
B极 为高电平时,C极到E极的电路导通。
B极 为低电平时,E极到C极的电路断开。
震动控制
通过P0.1引脚控制马达震动。

功能设计

实现震动马达的震动。

#include "Config.h"
#include "GPIO.h"
#include "Delay.h"

#define MOTOR P01

void GPIO_config(void) {
	GPIO_InitTypeDef	GPIO_InitStructure;		//结构定义
	GPIO_InitStructure.Pin  = GPIO_Pin_1;		//指定要初始化的IO,
	GPIO_InitStructure.Mode = GPIO_OUT_PP;	//指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
	GPIO_Inilize(GPIO_P0, &GPIO_InitStructure);//初始化
}


int main() {
	int i;
	GPIO_config();
	
	EA = 1;
	
	while(1) {
		MOTOR = 1;
		delay_ms(250);
		delay_ms(250);
		delay_ms(250);
		delay_ms(250);
		MOTOR = 0;
		delay_ms(250);
		delay_ms(250);
		delay_ms(250);
		delay_ms(250);
	}
}

实现的是1秒钟控制一次马达震动。

  • 14
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

秋野酱

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值