Arduino驱动直流电机风扇
时隔多年,重拾Arduino,先拿直流电机风扇找一下手感。配套的东西如下图所示:直流电机、控制板、风扇、架子。
装好之后的效果如下图所示。
本文参照参考文献中的示例代码进行测试。参考文献中的代码主要通过按钮控制风扇的不同转速,本文中对代码进行了简化,为了测试程序的有效性,先在代码中写死转速,代码如下所示:
const int motorIn1=9;
const int motorIn2=10;#define rank 150void setup() {// put your setup code here, to run once:pinMode(motorIn1,OUTPUT);pinMode(motorIn2,OUTPUT);Serial.begin(9600);
}void loop() {// put your main code here, to run repeatedly:clockwise(rank);
}void clockwise(int Speed)
{analogWrite(motorIn1,0);analogWrite(motorIn2,Speed);
}
程序效果如下所示,代码上传到到Arduino后,风扇即开始转动。
为了能控制转速,对上述代码进行改造,可以通过串口与Arduino进行通信,设置电机的转速。详细的代码如下所示。需要注意的是,使用Arduino IDE中的串口监视器进行通信时,需要设置成没有结束符模式。
#define SPEED_COMMAND "SPD"
#define NUM_LENGTH 3
#define SPLIT_CHAR ';'#define RECEIVE_STAGE 0 // 接收命令阶段
#define EXECUTE_STAGE 1 // 执行命令阶段
#define OBSERVE_STAGE 2 // 观察阶段#define MAX_CHARS 49char buffer[MAX_CHARS + 1];
int charIndex = 0;int currentStage;
int curSpeed=0;const int motorIn1=9;
const int motorIn2=10;#define rank 150void setup() {// put your setup code here, to run once:pinMode(motorIn1,OUTPUT);pinMode(motorIn2,OUTPUT);Serial.begin(9600);currentStage = RECEIVE_STAGE;Serial.println("Ready");
}void loop() {// put your main code here, to run repeatedly:switch (currentStage){case RECEIVE_STAGE:ReceiveCommand();break;case EXECUTE_STAGE: if (Serial.available() > 0){currentStage = RECEIVE_STAGE;}else if (strncmp(buffer, SPEED_COMMAND, NUM_LENGTH) == 0){char* pInt = &buffer[NUM_LENGTH + 1];curSpeed=atoi(pInt);currentStage = OBSERVE_STAGE; }break;case OBSERVE_STAGE: if (Serial.available() > 0){currentStage = RECEIVE_STAGE;}else{clockwise(curSpeed);} break;}
}void clockwise(int Speed)
{analogWrite(motorIn1,0);analogWrite(motorIn2,Speed);
}void ReceiveCommand()
{if (Serial.available() > 0){char ch = Serial.read();if ((charIndex < MAX_CHARS) && (ch != SPLIT_CHAR)){buffer[charIndex++] = ch;}else{buffer[charIndex] = 0;charIndex = 0;currentStage = EXECUTE_STAGE;Serial.print("received command is ");Serial.println(buffer);}}
}
本文主要是初步介绍直流电机风扇的驱动方式,如果更深入的控制直流电机,可以在百度中自行搜索了解。
参考文献:
[1]《基于传感器开发套件玩转Arduino编程》
Arduino驱动直流电机风扇相关推荐
- Arduino应用——PWM控制直流电机风扇
Arduino应用--PWM控制直流电机风扇 PWM原理 实验器件 功能描述 接线图/原理图 实现代码 结果 最近在使用arduino UNO开发板完成课程小作业.其中一个要求设计一个电风扇控制系统, ...
- 玩转电机驱动——A4950闭环驱动直流减速电机(Arduino)
玩转电机驱动--A4950闭环驱动直流减速电机(Arduino) 文章目录 玩转电机驱动--A4950闭环驱动直流减速电机(Arduino) 前言 一.PWM信号 二.PID控制简介 三.增量式(速度 ...
- ESP32设备驱动-L9110直流电机风扇传感器模块
L9110直流电机风扇传感器模块 文章目录 L9110直流电机风扇传感器模块 1.L9110介绍 2.硬件准备 3.软件准备 4.驱动实现 1.L9110介绍 L9110是一款ASIC器件控制和驱动电 ...
- ESP8266-Arduino编程实例-L9110直流电机风扇传感器模块
L9110直流电机风扇传感器模块 1.L9110介绍 L9110是一款ASIC器件控制和驱动电机设计,将两通道推挽功放分立电路集成到单片IC中,降低外围器件成本,提高整体可靠性.本芯片有两路TTL/C ...
- arduino 步进电机驱动库_一文看懂arduino驱动uln2003操作步进电机的方法
arduino驱动uln2003操作步进电机的方法 1.网上买的步进电机,很多接线顺序都不对.经过不懈努力查资料,终于找到了能用的接线方式: 电机上的12345针脚,对应着接线端子的42135. 2. ...
- Arduino驱动LM35温度传感器自制温度计
Arduino驱动LM35温度传感器自制温度计 前言 一.硬件部分 二.电气参数 三.原理说明 四.实验操作 1.接线 2.程序驱动 五.实验结果 六.总结 前言 现实生活中的许多场景都需要测量温度. ...
- arduinowin7_Win7系统下Arduino驱动安装失败的解决方法
近日有不少win7系统用户反映说碰到这样一个现象,就是在电脑中连接Arduino单片机的时候,就会提示Arduino驱动安装失败,遇到这样的问题要如何处理呢,针对这个情况,小编就给大家分享一下Win7 ...
- Arduino 驱动TM1638显示十位的共阳数码管
Arduino 驱动TM1638显示十位的共阳数码管 二话不说先上图: 这个是电路图,下面我在上传TM1638的手册 哈哈太乱了先凑合着看吧!效果是实现了,画了板还没有发过来. 我也不多说什么了上代码 ...
- Arduino - 驱动HC-SR501 人体红外感应模块
参考文章: Arduino - 驱动HC-SR501 人体红外感应模块 Arduino 使用人体红外感应模块 HC-SR501 代码如下: /* Arduino 驱动HC-SR501 人体红外感应模块 ...
最新文章
- mysql 书签查找_my-bookmark
- python基础学习[python编程从入门到实践读书笔记(连载三)]:django学习笔记web项目
- Windows® CE 系统中的同步机制
- js变量和java变量相等,js中变量和jsp中java代码中变量互相访问解决方案
- 【Codeforces】925A Stairs and Elevators【贪心】
- 安卓案例:闪烁满天星
- Spring源代码分析-Persist--JdbcTemplate
- fread返回值0 feof返回值为16 问题解决。
- Lua中ipairs和pairs的区别详解
- matlab:使用全局变量
- java 解析json数据流的几种方式
- cmos逻辑门传输延迟时间_【转载】CMOS与TTL电路的区别
- 苹果手机HTML页面滑动卡顿
- c语言中个各标点符号作用,C语言运算符和标点符号.xls
- 七彩背景(Background)
- C++之友元:是朋友(friend)也是破坏者
- Request对象的一般用法
- 上市企业高管背景研究——男、女性高管数据
- 咸鱼ZTMR实例—巡线入门
- 如何远程家里的linux服务器,如何远程控制家里的电脑或服务器?
热门文章
- Sybase roseha 双机(转)
- You need Perl 5.
- GitLab服务器安装完成之后;瓦力系统的安装(之一)
- 2015读过的书与看过的影视资料
- Word2003入门动画教程131:Word拼音指南的使用
- 数据分析师需要学什么?数据分析师需要掌握什么技能呢?
- 如何剪出一个圆形,保存出来还是圆形图片
- 树莓派4B openwrt wifi 提升速度
- 群晖搭建Blynk服务器 可开外网及改Mixly文件完美支持教程
- 笔记本计算机盖,怎么让笔记本盖子合上不待机-笔记本盖子合上 电脑继续运行的方法 - 河东软件园...