香橙派orangepi c# iot .net 控制ULN2003驱动板步进电机 代码实例

20 篇文章 3 订阅
16 篇文章 3 订阅

香橙派orangepi c# iot .net 控制ULN2003驱动板步进电机 代码实例

设备:

1、香橙派

2、ULN2003驱动板,28BYJ-48步进电机

 

一、原理说明

刚接触的时候,我也是看到不太懂,看懂了之后现在总结一下

28BYJ-48步进电机名称含义:
28:表示步进电机的有效最大外径为28毫米
B: 表示步进电机“步”字汉语拼音首字母
Y: 表示永磁式“永”字汉语拼音首字母
J: 表示减速型“减”字汉语拼音首字母
BYJ: 组合即为永磁式减速步进电机
48:表示四相八拍
5V:表示额定电压为5V,且为直流电压

查看说明书内容

9e7f332955ce4a94b652535abeacba1d.png

 

减速比为1/64的意思是电机内部转64圈,电机外部才相应地转1圈,而这个步进电机是四相八拍的,八拍中一拍就是一个脉冲信号,完成一个内循环要8个脉冲信号。

内部 64圈=外部1圈

内部1圈=8个脉冲信号

所以看到电机转一圈,是要发送 64*8=512个脉冲信

 

5231c7fa6e874e5394feaec26a63f9e3.png

ULN2003驱动板上面的IN1,IN2,IN3,IN4的功能作用如下:

bcba32affbe84fda8898be696341a101.png

9e6f2a38d30d4db987f7e3ff9cf1d0c3.jpg

 

二、完整代码

using System.Device.Gpio;//nuget中下载
   /// <summary>
    /// //步进电机28byj48+uln2003驱动板4相5线
    /// </summary>
    public static class Device_Stepper_uln2003_Service
    {
        static int pin_19 = 19; //接In1
        static int pin_26 = 26;//接In2
        static int pin_16 = 16;//接In3
        static int pin_20 = 20;//接In4

        /// <summary>
        /// 调用示例
        /// </summary>
        public static void test()
        {
            while (true)
            {
                Console.WriteLine("输入b逆时针转,输入f顺时针转");
                //控制台中输入内容
                string key = Console.ReadLine();
                if (!string.IsNullOrWhiteSpace(key))
                {
                    run(key);
                }
            }
        }

        public static void run(string runType)
        {

            GpioController gpioController = new GpioController();
            gpioController.OpenPin(pin_19, PinMode.Output);
            gpioController.OpenPin(pin_26, PinMode.Output);
            gpioController.OpenPin(pin_16, PinMode.Output);
            gpioController.OpenPin(pin_20, PinMode.Output);
            if (runType == "b")
            {   //# 逆时针
                setBack(gpioController);
            }
            else if (runType == "f")
            {
                //# 顺时针
                setForward(gpioController);
            }
        }
        public static void setValue(GpioController GPIO, int w1, int w2, int w3, int w4)
        {
            GPIO.Write(pin_19, w1);
            GPIO.Write(pin_26, w2);
            GPIO.Write(pin_16, w3);
            GPIO.Write(pin_20, w4);

        }
        //# 逆时针
        public static void setBack(GpioController GPIO)
        {
            Console.WriteLine("开始逆时针转");
            //256半圈
            for (int i = 0; i < 256; i++)
            {
                int delay = 3;//毫秒
                setValue(GPIO, 0, 0, 0, 1);
                Thread.Sleep(delay);
                setValue(GPIO, 0, 0, 1, 0);
                Thread.Sleep(delay);
                setValue(GPIO, 0, 1, 0, 0);
                Thread.Sleep(delay);
                setValue(GPIO, 1, 0, 0, 0);
                Thread.Sleep(delay);

            }
        }
        //#顺时针
        public static void setForward(GpioController GPIO)
        {
            Console.WriteLine("开始顺时针转");
            //256半圈
            for (int i = 0; i < 256; i++)
            {
                int delay = 2;//毫秒
                setValue(GPIO, 1, 0, 0, 0);
                Thread.Sleep(delay);
                setValue(GPIO, 0, 1, 0, 0);
                Thread.Sleep(delay);
                setValue(GPIO, 0, 0, 1, 0);
                Thread.Sleep(delay);
                setValue(GPIO, 0, 0, 0, 1);
                Thread.Sleep(delay);
            }
        }
    }

 

部署到香橙派中即可

51f73f165ecf4fdb904ed4e713e1643d.jpg

 

代码在:https://gitee.com/yihong-lin/OrangePIWiringOPforCsharp

 

代码里面还包括 香橙派 c# 引用 wiringOP 类库, 操作其它设备的代码 ,包括串口,i2c  等操作

f9384e040ce2478fa12e690b3f99cb38.png

 

 

 

  • 0
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
引用\[1\]中提到的28BYJ-48步进电机是一种永磁式减速步进电机,其有效最大外径为28毫米。它是一种四相八拍的步进电机,额定电压为5V,为直流电压。\[1\] 引用\[2\]中的代码是一个C#程序,用于通过串口连接控制步进电机。该程序使用COM1串口,波特率为115200,数据位为8,停止位为1,校验位为0。程序通过发送指令来控制步进电机的运动,并通过串口接收数据。\[2\] 根据你的问题,你想知道如何使用C#控制42步进电机的485串口。根据提供的信息,我们可以使用类似的代码来实现这个功能。你需要修改串口名称为对应的485串口名称,以及相应的波特率、数据位、停止位和校验位。然后,你可以通过发送指令来控制步进电机的运动,并通过串口接收数据来获取反馈信息。 #### 引用[.reference_title] - *1* [香橙派c# iot .net 控制ULN2003驱动步进电机 代码实例](https://blog.csdn.net/qq_16005627/article/details/126948784)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* [c# 控制台485串口连接](https://blog.csdn.net/weixin_38877910/article/details/86292506)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

.net亦洪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值