Arduino IDE开发ATtiny24/44/84实践(四)PWM输出——蜂鸣器及电机控制

        在PWM输出讲解中设计了两个实验,分别是无源蜂鸣器和直流有刷电机的控制,相关电路开发板上都有。无源蜂鸣器通过一个三极管驱动,直流有刷电机通过L9110S这款驱动芯片进行驱动,电路图如下。

        ATtiny24/44/84有一个带有两个PWM通道的8位定时器/计数器和一个带有两个PWM通道的16位定时器/计数器,分别在ATtiny的第5脚(PB2)、第6脚(PA7)、第7脚(PA6)、第8脚(PA5)上,其在Arduino IDE中的序号如下图所示。

        用Arduino IDE进行编程时PWM输出函数为analogWrite(pin, value),其中pin表示要写入的ATtiny引脚,value表示占空比,介于 0(始终关闭)和 255(始终打开)之间。

        用analogWrite这个函数操作第5脚和第6脚以及第7脚和第8脚时,PWM的周期分别为4ms和2ms,我们可以通过一个小程序来验证一下。

        该程序将这四个引脚均输出占空比为50%的PWM波,烧录成功后用示波器测量第5(6)脚和第7(8)脚,波形如下。

        无源蜂鸣器的控制较为简单,将三极管的基极接到PWM输出引脚上,在频率固定时PWM占空比的大小反映蜂鸣器的响度大小。

        L9110S内置了一个H桥驱动电路,其中IA、IB连接单片机,OA、OB连接电机其控制逻辑如下表所示。

IA电平

IB电平

电机状态

H

L

正转

L

H

反转

H

H

停止

L

L

停止

        调速时我们可以将IB的电平固定,调整IA的占空比。这时需要注意的是控制电机反转时IA低电平为有效电平,函数形参中的占空比为255减去低电平的占空比。当然,控制IA电平固定,调整IB的占空比也是一种选择。

        以下为控制电机以一定的速度分别正转、反转、停止的演示视频,完整程序和开发板电路可在本系列第一篇博客中电路城链接中下载。

Arduino IDE开发ATtiny实践

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值