小风扇,其实就是一个电机(马达),然后轴子上套一个扇叶。扇叶有两叶的,也有三叶的。这种我们小时候没少玩,太阳能帽子上就有一个小风扇,骑着自行车上学,路上只要有太阳光照射到,小风扇就会转。当然还有装干电池的,天气热的时候,买一把放在课桌上,声音很小,所以老师也不会管。

现在的小风扇在供电方式上多了两种:一种是USB风扇,另一种是插在手机上供电的,说实话,风力不怎么样,而且也比较危险。

于是,你可能会想,这种小风扇直接上电源就行了,还用得着单片机和树莓派?确实,不过,搭配 L9110 驱动芯片,再用单片机发出指令,这样可以让风扇正转、反转,也可以用PWM来调节转速。

老周推荐这种小风扇模块。

或者这种。

又或者这种也行。

这类模块的好处在于:集成了驱动芯片,我们不必分开购买马达、扇叶和L9110模块。在查找时,可以搜“风扇模块”、“小风扇模块”,或者搜“灭火机器人”。这灭火机器人也是说得好听,改为“助燃机器人”估计也可以。产品描述中称可以轻松吹灭 20 cm 外的打火机火焰。根据老周亲测,不但没灭火,反而烧得更旺盛。

反正就是做做实验,就不追究这些了。这些模块你在购入时不用看什么性价比的,反正哪最便宜就买那儿就是了,都一样的,估计都是一个厂子出来的。

买回来后,你需要做简单的安装工作,没事,这操作三岁小女孩都能完成的。就是把扇叶套在马达的转子上,这里要注意一点,按压时手指要顶住马达底部,不然,你一用力,直接把马达都顶出来了。

至于扇叶,参考电风扇的结构,应该是有凹面的向外,装好之后就是这样子。

如果马达松动,可以把那两颗螺丝拧紧一些。扇叶上有个帽子,很容易掉,可以用胶水粘住,当然扔了也无所谓。

===================================================

好了,上面说的都是无关紧要的F话,下面咱们重点看看用树莓派如何驱动小风扇。

首先,你会看到,模块上有四个引脚:

VCC:电源正极,接树莓派的 5V 接口。

GND:电源负极,接树莓派任意一个 GND 口。

INA 和 INB :两个控制口。

所以,驱动的核心就落在两个输入引脚上。

INA 为高电平,INB 为低电平时——正转;

INA 为低电平,INB 为高电平时——反转。

但是,这个“正”与“反”是相对的,不同的模块可能方向不同,马达(电机)的正负极是可以反过来接的,接反了转动方向就反了,因此,到底哪边是正转,哪边是反转,很难说清楚,总之就是两个不同的转动方向。

INA 和 INB 不要设置相同的电平(制动,马达不转),这是无意义的控制输入(当然你也可以试试,自然不能达到预期结果的)。

嗯,所以你发现这厮驱动起来是挺简单的,所以老周直接上一个示例。

    class Program
{
// 使用的两个接口
const int IN_A = 20;
const int IN_B = 21; static void Main(string[] args)
{
GpioController controller = new();
// 打开接口
controller.OpenPin(IN_A, PinMode.Output);
controller.OpenPin(IN_B, PinMode.Output); // 进入循环
bool looping = true;
while (looping)
{
Console.WriteLine("\n请输入A或B,按其他键退出");
ConsoleKey pressed = Console.ReadKey().Key;
switch (pressed)
{
case ConsoleKey.A:
// A - 高电平
// B - 低电平
controller.Write(IN_A, 1);
controller.Write(IN_B, 0);
break;
case ConsoleKey.B:
// A - 低电平
// B - 高电平
controller.Write(IN_A, 0);
controller.Write(IN_B, 1);
break;
default:
looping = false;
break;
}
}
// 关闭接口
controller.ClosePin(IN_A);
controller.ClosePin(IN_B);
controller.Dispose();
}
}

全部代码都在上面了,故为了节省博客的存储空间,这个示例老周不上传压缩包了。

这个示例是这样的:你可以通过键盘输入“A”或者“B”来控制风扇的转动方向。这里我没有做大小写字母的兼容处理,如果你输入了小写A和B,是无效果的(注意用的是ConsoleKey枚举类型)。

当按下的键是【A】时:INA 输出高电平,INB 输出低电平;

当按下的键是【B】时,INA 输出低电平,INB 输出高电平。

当按下其他键时,跳出循环。

最后,编译,发布,上传到树莓派,运行,就能看到效果了。

注意安全,注意安全,注意安全!!!!!!!在接好线后,一定要把风扇固定好,可以用东西(如手机、砖头等)压在桌子边沿,或者用主板固定柱粘好。运行程序后,输入A或B就能让风扇以不同方向转动。一定要小心,手指不要碰到扇叶,以防刮伤;如果旁边有小孩,请用两颗薄荷糖把小孩打发走,以免小朋友好奇用手触摸扇叶。

好了,本文内容到此完结。

【.NET 与树莓派】小风扇模块的更多相关文章

  1. 树莓派 4G模块 PPP 拨号 NDIS 拨号

    资料参考:树莓派使用4G模块(华为ME909s-821)亲身尝试的可行方法(上)

  2. 树莓派OLED模块的使用教程大量例程详解

    简介 Python有两个可以用的OLED库 [Adafruit_Python_SSD1306库]->只支持SSD1306 [Luma.oled库]->支持SSD1306 / SSD1309 ...

  3. 树莓派摄像头模块转成H264编码通过RTMP实现Html输出

    官方原帖 http://www.raspberrypi.org/phpBB3/viewtopic.php?f=43&t=45368&sid=b81f6551e478f0f6e172aa ...

  4. Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器

    最近在业余时间玩玩树莓派,刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚,从而控制LED发光二极管的闪烁,后来觉得,是不是可以使用HTML5+jQuery等流 ...

  5. python实现树莓派生成并识别二维码

    python实现树莓派生成并识别二维码 参考来源:http://blog.csdn.net/Burgess_Liu/article/details/40397803 设备及环境 树莓派2代 官方系统R ...

  6. NET的可运行于树莓派

    Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器   最近在业余时间玩玩树莓派,刚开始的时候在树莓派里写一些基于wiringPi库的C语言程序来控制树莓派的GPIO引脚,从而控制 ...

  7. C#写的WebServices可运行于树莓派

    阅读目录 Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器 Raspkate项目 演示 回到目录 Raspkate - 基于.NET的可运行于树莓派的轻量型Web服务器   最近 ...

  8. 树莓派3B+ 人脸识别、摄像头安装和使用

    最近在学校里折腾树莓派上的人脸识别,折腾了很久才能用 在此记录下使用的过程和遇到的困难 过程基于超有趣!手把手教你使用树莓派实现实时人脸检测完成的.其中前面opencv的安装是文章中的Raspbian ...

  9. 树莓派开发笔记(十一):蓝牙的使用,BlueZ协议(双树莓探测rssi并通过蓝牙互传获取的rssi信号强度)

    若该文为原创文章,转载请注明原文出处本文章博客地址:https://blog.csdn.net/qq21497936/article/details/110940484长期持续带来更多项目与技术分享, ...

随机推荐

  1. console.dir()可以显示一个对象所有的属性和方法

    console.dir()可以显示一个对象所有的属性和方法 具体方法如下:

  2. 使用SQL-Server分区表功能提高数据库的读写性能

    首先祝大家新年快乐,身体健康,万事如意. 一般来说一个系统最先出现瓶颈的点很可能是数据库.比如我们的生产系统并发量很高在跑一段时间后,数据库中某些表的数据量会越来越大.海量的数据会严重影响数据库的读写 ...

  3. Object Destructuring Assignment vs Object.assign

    Object Destructuring Assignment vs Object.assign // const params = Object.assign({}, this.$route.par ...

  4. API & YApi

    API & YApi 接口管理服务 YApi http://yapi.demo.qunar.com/ https://ued.qunar.com/ build bug https://gith ...

  5. Docker & Node.js

    Docker & Node.js https://nodejs.org/en/docs/guides/nodejs-docker-webapp/ https://docs.docker.com ...

  6. html 布局,上下各100px,中间自适应

    flex <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...

  7. c#winform主题实现的一个方法

    winform的主题实现没有bs里面那么舒服,下面做了一个简单实现,记录一下. 1.一个接口,需要做主题的控件.窗体都要实现这个接口 /// <summary> /// 使用主题的控件.窗 ...

  8. Docker Elasticsearch 集群配置

    一:选用ES原因 公司项目有些mysql的表数据已经超过5百万了,各种业务的查询入库压力已经凸显出来,初步打算将一个月前的数据迁移到ES中,mysql的老数据就物理删除掉. 首先是ES使用起来比较方便 ...

  9. 在vscode中用Git管理项目

    1.新建仓库-->填写仓库名称-->一定要将对钩去掉-->公开-->创建 Git全局设置: git config --global --add user.name " ...

  10. git相关问题

    1.git查看远程分支更新到本地 git clone 项目地址,示例如下: git clone https://github.com/zhongyushi-git/vue-test.git 在拉取时, ...