在DIY黑胶唱机的过程中,准备用一个42步进电机带动唱盘,需要恒定的每分钟33.33转的转速。
记录一下折腾的过程。
用洞洞板制作的驱动电路:


驱动板接线图

先拿价格便宜很多的A4988做实验


按照接线图在面包板上把线接好。
Ardunio代码如下:

bool PULSE_STATE = true;// A4988引脚连接Arduino引脚编号
const int dirPin   = 2;   // Direction
const int stepPin  = 3;   // Step
const int sleepPin = 4;   // Sleep
const int resetPin = 5;   // Reset
const int ms3Pin   = 6;   // Ms3
const int ms2Pin   = 7;   // Ms2
const int ms1Pin   = 8;   // Ms1
const int enPin    = 9;   // Enablevoid setup() {// 设置引脚模式pinMode(stepPin,OUTPUT); pinMode(dirPin,OUTPUT);pinMode(sleepPin,OUTPUT); pinMode(resetPin,OUTPUT);  pinMode(ms3Pin,OUTPUT);  pinMode(ms2Pin,OUTPUT);  pinMode(ms1Pin,OUTPUT); pinMode(enPin,OUTPUT);   // 初始化引脚状态digitalWrite(sleepPin, HIGH);  digitalWrite(resetPin, HIGH); digitalWrite(enPin, LOW); digitalWrite(ms1Pin, LOW); digitalWrite(ms2Pin, LOW); digitalWrite(ms3Pin, LOW);  // 初始化电机步进模式为全步进//TMC2209 64细分digitalWrite(ms1Pin, LOW); digitalWrite(ms2Pin, HIGH); //Clockwise 顺时针旋转digitalWrite(dirPin, 1);cli();                      //stop interrupts for till we make the settings/*1. First we reset the control register to amke sure we start with everything disabled.*/TCCR1A = 0;                 // Reset entire TCCR1A to 0 TCCR1B = 0;                 // Reset entire TCCR1B to 0TCNT1  = 0; // turn on CTC modeTCCR1B |= (1 << WGM12);/*2. We set the prescalar to the desired value by changing the CS10 CS12 and CS12 bits. */  TCCR1B |= B00000001;         /*3. We enable compare match mode on register A*/TIMSK1 |= (1 << OCIE1A);OCR1A = 1125;             //Finally we set compare register A to this value  sei();                     //Enable back the interrupts
}void loop() {// put your main code here, to run repeatedly:
}ISR(TIMER1_COMPA_vect){PULSE_STATE = !PULSE_STATE;       digitalWrite(stepPin,PULSE_STATE);
}

代码主要使用了Timer1定时器。需要计算发送到电机的脉冲频率。用的Arduino NANO 主频是26MHz, 普通42步进电机的步距角是1.8度,转一圈都要200个脉冲,A4988芯片最大可使用的细分是16细分,如果用16细分,转一圈都要20016=3200个脉冲。我的目标是每三分钟转100转,需要的脉冲频率是1003200/(3*60)=1777.77Hz

A4988驱动芯片噪音比较大,步进电机运转时震动比较大。试验成功之后,换上了高大上的TMC2209芯片,电机低速运转时超级安静,震动极小。TMC2209内部支持256细分,计算脉冲频率的时候需要重新计算一下。上面代码中使用的是TMC2209芯片的版本。

用洞洞板制作的时候,用了一片LM7809稳压芯片给NANO主板供电,但当使用24伏电压时,LM7809芯片发热比较严重。后续准备换一个DCDC模块。
唱机视频演示

Arduino 下用A4988或TMC2209驱动42步进电机相关推荐

  1. Arduino CNC电机扩展板详解(A4988驱动42步进电机)

    原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-index/arduino-cnc-shield/ ...

  2. 51单片机控制TB6600驱动器驱动42步进电机

    51单片机控制TB6600驱动器驱动42步进电机 第一次 功能实现目标 硬件简介 硬件连接 程序代码 第一次 以前总是看别人写的博客,通过别人的博客解决了我很多问题,从中也学到了各种知识,虽然不是很系 ...

  3. 【STM32】实战3.1—用STM32与TB6600驱动器驱动42步进电机(一)

    目录 0 参考资料出处 1 实验预期效果 2 硬件学习 2.1 TB6600驱动器 2.1.1 通过拨码开关设定细分与电流 2.1.2 共阴共阳接线法 2.2 开关电源(AC转DC变压器)& ...

  4. A4988驱动42步进电机

    A4988步进电机驱动器驱动控制42步进电机速度,步进电机调速,调节驱动电流        

  5. 树莓派入门(八)之树莓派与A4988 驱动42步进电机

    在树莓派入门(三)里面我介绍了如何驱动步进电机,当时驱动的步进电机是那种比较简单精度不是那么高的电机,今天我们驱动的是比较复杂的步进电机.当然,这里我还是以arduino为例,但是会给出树莓派的代码. ...

  6. Arduino-TB6600驱动42步进电机

    设计者:STCode (公众号同名) Arduino控制42 步进电机 串口控制旋转位置 1)描述 42步进电机的驱动方式有多种,例如用A4988步进电机模块,这次我们使用TB6600驱动器驱动一个4 ...

  7. stm32+drv8825驱动42步进电机

    关于drv8825的介绍,以及如何调节vref电压值请看博主上篇文章,有详细介绍http://t.csdn.cn/NpGIc 接线图 步进电机接线图 起初我也为如何接线烦恼,因为有些博客在讲述这些问题 ...

  8. STM32F4驱动42步进电机(采用驱动器)

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 器件 实物 接线 TB6600拨码卡关 代码说明 main.c 代码如下(示例): main.c 代码(极简版) step_ ...

  9. A4988驱动NEMA步进电机(42步进电机)

    A4988驱动NEMA步进电机(42步进电机) 原文地址:http://www.taichi-maker.com/homepage/reference-index/motor-reference-in ...

最新文章

  1. linux 两个虚拟机 socket本地,两台虚拟机Linux系统socket通信
  2. 带您走进七周七语言的程序世界
  3. C#开发微信门户及应用(8)-微信门户应用管理系统功能介绍
  4. 解决:Request header field Content-Type is not allowed by Access-Control-Allow-Headers
  5. scp复制linux系统的文件文件到本机(windows)以及本机文件复制到远程的命令
  6. Flex 传JAVA BEAN 到后台 JAVA
  7. 血脂测试软件,医院检查血脂一般用什么仪器
  8. 博文视点官方blog正式开张~~~~~~~~~
  9. DBeaverEE for Mac(数据库管理工具)
  10. 【2016北京集训】魔法游戏
  11. Cohen-SutherLand算法(编码算法)
  12. POJ 2449 Remmarguts' Date (SPFA + A星算法) - from lanshui_Yang
  13. 一个Ext2+SWFUpload做的图片上传对话框收藏
  14. androidManifest
  15. 实用的latex报告排版模板
  16. Android 九宫格物理键盘数字英文切换
  17. fifa15服务器位置,FIFA15球队战术位置技巧
  18. H.264 AVCC header
  19. 山水之道第五境——精灵的天地大阵
  20. mysql 大量写入 优化_MYSQL大批量写入之性能优化

热门文章

  1. STM32 无刷电机BLDC 1KW带刹开发板 PDF原理图 源代码 MDK源码
  2. 通过下棋理解面向对象。
  3. 屏幕分享(演示手机投影到PC端)TotalControl
  4. mysql timestamp格式化_mysql TIMESTAMP(时间戳)详解
  5. 【STM32H750】从零编写MDK的FLM烧录算法
  6. Backlight二三事(1)——pwm频率适配
  7. linux 命令执行进度,shell脚本实现“显示命令执行进度”
  8. 智能化市场「分层」开始,软硬「解耦」进入深水区
  9. ASP.NET(C#)面试题
  10. Hadoop笔记-02 安装