【.NET 与树莓派】小风扇模块

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

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

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

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

 

 或者这种。code

 

 又或者这种也行。blog

 

 

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

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

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

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

若是马达松动,能够把那两颗螺丝拧紧一些。扇叶上有个帽子,很容易掉,能够用胶水粘住,固然扔了也无所谓。

 

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

好了,上面说的都是可有可无的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就能让风扇以不一样方向转动。必定要当心,手指不要碰到扇叶,以防刮伤;若是旁边有小孩,请用两颗薄荷糖把小孩打发走,以避免小朋友好奇用手触摸扇叶。

 

 

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

相关文章
相关标签/搜索