这几天想做一个给金鱼自动喂食的装置,所以学习了下如何操控步进电机,现在做个记录。

使用Pretues仿真Arduino的话,可以参考:http://www.geek-workshop.com/thread-26325-1-1.html

步进电机的话,是通过给不同的相通电,形成电磁场,来驱动中间的转子。转子越多,每一步就可以越小,电机就越精确。

ULN2004A是供电模块,通过电平信号的配置来输出电压,通过配置1,2,3,4输入,来使得13,14,15,16输出电压驱动电机。

PS:如果要电机反转的话,就反序配置引脚。参见:http://www.elecfans.com/dianlutu/187/20170116475004.html

仿真结果:

代码:

/* Main.ino file generated by New Project wizard
*
* Created: Thu Sep 5 2013
* Processor: ATmega328P
* Compiler: Arduino AVR
*/ #define LED ( 13 )
#define MOTOR_PIN0 ( 0 )
#define MOTOR_PIN1 ( 1 )
#define MOTOR_PIN2 ( 2 )
#define MOTOR_PIN3 ( 3 ) void setup()
{ // put your setup code here, to run once:
pinMode( LED, OUTPUT );
pinMode( MOTOR_PIN0, OUTPUT );
pinMode( MOTOR_PIN1, OUTPUT );
pinMode( MOTOR_PIN2, OUTPUT );
pinMode( MOTOR_PIN3, OUTPUT );
} void loop()
{ // put your main code here, to run repeatedly:
/*digitalWrite( LED, HIGH );
delay( 500 );
digitalWrite( LED, LOW );
delay( 500 );*/ static int i = ; switch( i-- )
{
case :
digitalWrite( MOTOR_PIN0, HIGH );
digitalWrite( MOTOR_PIN1, LOW );
digitalWrite( MOTOR_PIN2, LOW );
digitalWrite( MOTOR_PIN3, LOW );
digitalWrite( LED, HIGH );
break;
case :
digitalWrite( MOTOR_PIN0, LOW );
digitalWrite( MOTOR_PIN1, HIGH );
digitalWrite( MOTOR_PIN2, LOW );
digitalWrite( MOTOR_PIN3, LOW );
digitalWrite( LED, LOW );
break;
case :
digitalWrite( MOTOR_PIN0, LOW );
digitalWrite( MOTOR_PIN1, LOW );
digitalWrite( MOTOR_PIN2, HIGH );
digitalWrite( MOTOR_PIN3, LOW );
digitalWrite( LED, HIGH );
break;
case :
digitalWrite( MOTOR_PIN0, LOW );
digitalWrite( MOTOR_PIN1, LOW );
digitalWrite( MOTOR_PIN2, LOW );
digitalWrite( MOTOR_PIN3, HIGH );
digitalWrite( LED, LOW );
break;
default:
break;
} delay(); if( > i )
i = ;
}

使用Pretues仿真Arduino驱动步进电机的更多相关文章

  1. arduino驱动步进电机

    https://learn.adafruit.com/adafruit-motor-shield-v2-for-arduino/install-software 1安装库 Adafruit_Motor ...

  2. arduino中驱动 步进电机

    参考:https://www.arduino.cn/thread-75936-1-1.html 知识点:    步进电机是一种将电脉冲转化为角位移的执行机构.通俗一点讲:当步进驱动器接收到一个脉冲信号 ...

  3. FPGA驱动步进电机

    步进电机 步进电机是将电脉冲信号转变为角位移或线位移的开环控制电机,是现代数字程序控制系统中的主要执行元件,应用极为广泛.在非超载的情况下,电机的转速.停止的位置只取决于脉冲信号的频率和脉冲数,而不受 ...

  4. arduino驱动安装

    方法一:使用官方提供的一键安装程序安装 打开Arduino在你电脑上的位置如果你的电脑是32位系统,就运行dpinst-x86.exe如果是64位系统,就运行dpinst-amd64.exe然后在弹出 ...

  5. 使用Arduino驱动基于ST7533芯片的TFT屏

    在合宙通信买了一个1.8寸的TFT屏,驱动芯片是ST7533,本来打算使用Air800直接驱动,但由于其他原因,放弃了.于是尝试使用arduino驱动,为了屏幕刷新速度更快,采用硬件SPI. 硬件连接 ...

  6. python代码实现树莓派3b+驱动步进电机

    python代码实现树莓派3b+驱动步进电机 之前买了个树莓派,刚买回来那会儿热情高涨,折腾了一段时间,然后就放那吃灰了.前几天忽然想起来这个东西了,决定再玩玩儿,于是就从某宝上购买了一套步进电机.驱 ...

  7. Arduino ULN2009驱动步进电机

    一.实物图 二.例子代码 注:代码来自老外 http://www.4tronix.co.uk/arduino/Stepper-Motors.php 功能:控制电机正反转 // This Arduino ...

  8. win8.1环境下安装arduino驱动问题解决方案

    1. Windows 键+ R, 输入 shutdown.exe /r /o /f /t 00 2.此时电脑会自动重启,进入一下画面,选择Troubleshoot (转载请注明原处:http://ww ...

  9. 最新 Arduino 驱动 12接口/户外 LED显示屏/LED点阵屏/LED单元板

    起因 现有的驱动LED显示屏的资料,比较好的只有这个.但是它驱动的是08接口的室内显示屏,而我要驱动的是12接口的户外显示屏.两种屏幕的区别在于户外屏幕点阵比较稀疏,而且二者的扫描方式,驱动方式都不太 ...

随机推荐

  1. jenkins构建成功,但war包没有发布到tomcat下

    如题,jenkins构建成功,在jenkins的workspace中有生成的war包,但没有发布到tomcat的webapps目录. 构建日志 找了很多原因发现应该还是项目相对路径不对导致的,我的wa ...

  2. ionic2 获取dom节点

    ionic2页面上面获取dom节点,可以直接用原生的方法,document.querySelector()等, 但是不建议这样使用,建议使用官方的.就是要在获取的节点上加上#name的属性(相当于ge ...

  3. 树莓派 连接 JY901(MPU9250) python 代码

    先说BUG,最近要做项目需要树莓派和陀螺仪,资金充足的话肯定是买一个硬件卡尔曼滤波的传感器类似JY901模块,资金不足的就买MPU6050. 网上关于MPU6050在树莓派上的代码还能用,关于JY90 ...

  4. linux 常用指令

    w 指令可以看到目前接入到服务器的用户(终端)history xx 可以查看本用户(本终端)最后执行的xx条指令last 指令可以查看登录的日志grep "str" filName ...

  5. rpm -ivh 安装与 rpm -U安装解决问题一例

    [root@localhost server3.10.12]# rpm  -ivh krb5-libs-1.15.1-18.el7.x86_64.rpm警告:krb5-libs-1.15.1-18.e ...

  6. F7+vue 物理返回键监听使用

    以前使用的是纯F7,这个项目加了Vue进去,但碰到了一个问题,就是这样监听不到安卓物理键的返回,它是点击返回,直接推出程序,这个坑有点深,查了不少资料也问了不少人,最后在网上看到了别人的写的,自己也改 ...

  7. QT:QHash的使用

    QHash<QPointF, QVector<float>> data; 此时会报错说没有声明QPointF的Key类型 需要我们手动实现一个函数 static uint qH ...

  8. day 10 函数命名空间、函数嵌套和作用域

    1. day 09 内容复习 # 函数 # 可读性强 复用性强 # def 函数名(): # 函数体 #return 返回值 # 所有的函数 只定义不调用就一定不执行 #先定义后调用 #函数名() # ...

  9. Oracle查看存储过程最后编辑时间

    场景:我们在实现一个需求编写存储过程时,在正式上线前,总会有多个修改版本,时间一长可能发现一个过程甚至有5个以上的版本,如果没有添加注释自己都分不清哪个版本是最新的,这时就可以通过查看该存储的最后编辑 ...

  10. JVM常用配置参数说明

    堆设置 -Xms256M:初始堆大小256M,默认为物理内存的1/64 -Xmx1024M:最大堆大小1024M,默认为物理内存的1/4,等于与-XX:MaxHeapSize=64M -Xmn64M: ...