智能小车49:atmel328p的pwm调速试验

智能小车的变速怎么实现?arduino uno的芯片atmel328p的引脚可以配置pwm功能。简单来说,这个功能就能调整电流的大小,这样就能控制电机的变速,led不同频率的闪烁。

先看下arduino uno的pwm引脚,如下图有六个引脚标有“~”,表示它们可以配置pwm。

为什么是3、5、6、9、10、11这6个?先在印制板图里找到这6个引脚的名称分别为:IO3,IO5,IO6,IO9,SS,MOSI。注意在EAGLE7.3.0这个软件中查看印制板图的方法是先在引脚上右键选择name菜单,名称就会弹出来,再左键选下一个引脚,名称就会自动弹出来了。

我们再打开原理图,看看这6个名称对应了atmel328p的那些引脚。如下图,我已经在图里标出了这6个引脚名:

最后再打开atmel328p的数据手册,查看引脚图,找到这6个引脚(PB3,PB2,PB1,PD6,PD5,PD3)。

在atmel328p数据手册中可以查到计数器有几种模式,如下图,快速pwm模式与相位修正模式。而这两者的区别主要在频率(led闪烁的快慢)与输出大小(led亮的时间)上。不同的特性由是寄存器的不同比较模式与波形决定的。其实我体会得不是很到位,但是从现象上(led)看还是很明显的。

我还是用《avr单片机入门与速成攻略》上面的例子来调试程序和搭建硬件。由于我用的atmel328p与书上的芯片不一样,所以还是有很多不同的设置的。但主要思路还是用开关来设置OCR0A寄存器,用数码管来显示它的值,从PD6(OC0A)引脚连接led的正极。开关的分别连接PD0、PD1代表加数字与减数字。

代码如下:
实物图如下:

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值