在本系列的前两篇教程中,我们已经看到了如何使用ATtiny85的PWM输出来改变led的强度(亮度)。在本教程中,我们将使用PWM输出来改变直流电机的速度。
直流电机的速度随电位器的变化而变化。正如我们在之前的教程,电位器给出0到5v的模拟输出。ATtiny85采用这个模拟输入并产生PWM输出来改变直流电机的速度。让我们看看怎么做。
如果您没有从一开始就学习本系列教程,那么您应该学习以下两个教程,解释并演示如何使用ATtiny85,以及如何构建hello world(LED闪烁)应用程序的分步指南。
如何与ATtiny85合作
LED闪烁使用ATtiny85
线路图
电路的连接
电路只使用3-4个元件。电位器(壶)有三个引脚,中间(滑块)端子连接引脚2,模拟输入引脚A1。锅的另外两个端子分别连接5V和Gnd,如图所示。PWM输出引脚PB0驱动直流电机使用达林顿晶体管TIP122。通过220 Ω限流电阻连接到TIP122的基极输入端。TIP122的集电极输出驱动直流电机,发射极接地。如图所示,电机提供12v电源,ATtiny85提供5v电源。
电路操作
当锅的变化,它提供模拟电压输出从0到5V。这显示为ATtiny85的模拟输入。ATtiny85的内置ADC将其转换为数字,给出0到1023之间的数字值(因为10位分辨率)。基于此值,在PB0引脚上产生PWM输出来改变直流电机的转速
程序
程序是在Arduino IDE软件中使用C语言编写的。它被编译,并创建一个HEX文件,并下载到ATtiny85的内部FLASH中
程序逻辑
程序逻辑很简单。首先,ATtiny85将读取模拟输入引脚A1上的模拟电压,它将得到0到1023之间的值。这个值将通过将这个值除以4产生引脚5 (PB0)上的PWM输出。由于输入范围为0 ~ 1023,PWM值在0 ~ 255之间,所以除以4。
在下一个教程,我们将学习使用RGB LED产生不同的颜色。
你也可以喜欢:
了下:Arduino,188金宝搏提款有问题吗