marlin 多轴电机驱动
marlin 多个步进电机的驱动没有用定时器比较外设,
是用普通的定时器
stm32 主要有两个参数调定时器运行频率
1.Prescaler
2.Period
上面两个参数能调电机运行速度
marlin 是用的是bresenham算法驱动步进电机的
/ Bresenhamdemo.cpp : 此文件包含 “main” 函数。程序执行将在此处开始并结束。
//
#include
#include
#include<Windows.h>
int step_even_count; // 步数计数
int step_x, step_y, step_z; //各轴输出的步数 ΔY
int count_x, count_y, count_z;//各轴的Pi
int step_completed;//步数计数器
int step_completed_x;
int step_completed_y;
int step_completed_z;
int main()
{
step_completed_x=0;
step_completed_y=0;
step_completed_z=0;
step_x = 10;
step_y =10;
step_z = 4000;
step_even_count = max(step_x, step_y);
step_even_count = max(step_z, step_even_count);//取各轴最大值作为X(ΔX)
count_x = -(step_even_count >> 1);//-ΔX/2 ΔX➗2,后边所有数据都是除2处理
count_y = count_x;
count_z = count_x;
for (; ; )
{
// put your main code here, to run repeatedly:
// ΔX都是一致的
// < 0 Pi + ΔY
// > 0 Pi + ΔY - ΔX
//并且应该注意到 P1 = ΔY - ΔX/2
while (step_completed < step_even_count)
{
count_x += step_x; //计算小于0 的情况 = Pi + ΔY
if (count_x > 0) //Pi >0
{
step_completed_x++;
printf("++++++++x =%d \r\n", step_completed_x);
//输出一个脉冲
count_x -= step_even_count; //由于Pi + ΔY已经计算,此处直接减去ΔX即可
printf("--------x=%d \r\n", step_completed_x );}count_y += step_y;if (count_y > 0){step_completed_y++;printf("++++++++y==%d\r\n", step_completed_y);count_y -= step_even_count;printf("--------y==%d\r\n", step_completed_y);}count_z += step_z;if (count_z > 0){step_completed_z++;printf("++++++++z ==%d\r\n", step_completed_z);count_z -= step_even_count;printf("--------z==%d\r\n", step_completed_z);}step_completed += 1;}while (1);
}
}
// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单
// 入门使用技巧:
// 1. 使用解决方案资源管理器窗口添加/管理文件
// 2. 使用团队资源管理器窗口连接到源代码管理
// 3. 使用输出窗口查看生成输出和其他消息
// 4. 使用错误列表窗口查看错误
// 5. 转到“项目”>“添加新项”以创建新的代码文件,或转到“项目”>“添加现有项”以将现有代码文件添加到项目
// 6. 将来,若要再次打开此项目,请转到“文件”>“打开”>“项目”并选择 .sln 文件
电机驱动算法跟代码跑得快和慢有很大关系,
如果mcu 跑得非常慢的话,就出现电机不动,电机转动很慢的情况。
marlin 多轴电机驱动相关推荐
- abb外部轴零位校准_RobotStudio软件:机器人自定义行走轴配置与仿真
概述 很多时候由于安装场地限制的原因,使用ABB机器人厂商提供的标准行走轴并不能满足系统集成的需求.这个时候就需要自定义设计机器人行走轴,对机器人生产线进行仿真时就同样需要使用自定义设计的行走轴. R ...
- RobotStudio软件:机器人自定义行走轴配置与仿真
目录 概述 行走轴模型拆分 行走轴模型导入仿真软件 创建行走轴机械装置 外部轴配置向导插件安装 虚拟机器人系统创建 行走轴系统配置 机器人安装到行走轴 行走轴运动控制 本文已经首发在个人微信公众号:工 ...
- 打造新一代计算平台,STEPVR将在2022开启元宇宙“大门”
元宇宙是虚拟的现实世界,也是新一代互联网.这是继PC.移动端带来的二维互联网体验之后,人们将通过元宇宙"大门"--新的计算硬件终端,进入元宇宙三维互联网获得前所未有的五感交互体验, ...
- 3D打印机Marlin固件双Z轴设置
3D打印机Marlin固件双Z轴设置 在3D打印机Marlin固件的最新版本2.1.1中,设置双Z轴和老版本有一些改动.记录一下如何在最新版本的Marlin固件中设置双Z轴. 以MKS GEN_L V ...
- DRV8825步进电机驱动控制模块以及双轴平台
简 介: 实验研究了基于TI公司的DRV8825不仅电机驱动芯片模块,并利用它与原来存在的X-Y的平台构建了一个可以自动测量的平台 . 关键词: DRV8825,X-Y平台 ■ DRV8825简介 ...
- xlinx项目之基于zynq的多轴伺服电机驱动控制
现代数控机床多使用伺服电机系统,随着数控机床的发展,对伺服系统提出了很多不一样的要求,伺服系统只有不断研发和创新,才能满足数控机床的发展需求. 高精度数控机床要求具备比较好的定位精度和加工精度,要求伺 ...
- MKS MONSTER8 V1.0使用说明书(基于Marlin 2.0.X固件配置Voron 2.4)
广州谦辉信息科技有限公司 (基于Marlin 2.0.x 固件配置 Voron 2.4) 创客基地QQ群:489095605 232237692 邮箱:Huangkaida@makerbase.com ...
- 3D打印机DIY之三------Arduino开发环境构建和Marlin固件配置
一.Arduino开发环境 1.搜索Arduino IDE下载安装即可. 2.使用VS code开发Arduino Arduino IDE很简单,很多功能都没有,使用起来很不方便.因此建议使用Visu ...
- 组装肩部带有减速器双轴机械臂组装与调试
➤ 00背景 在 增加了机械爪的双轴机械臂 安装调试之后, 发现进行平顺控制效果不好 ,因此在原来的基础上进行了如下的改动: 肩部和肘部的角度传感器采用了: 角度编码器 ST-3806-15-RS 读 ...
- 双轴机械臂调试:步进电机42HS348E,BH32角度传感器,MCU:STC8H1K28
■ 前言 这款双轴机械臂是应用于实验室中进行自动样品转换的执行机构.为了能够在一定范围内将试剂瓶(试管) 完成自动搬运,需要完成对样品的抓取,提升和放下.水平移动(二维) 等功能.使用带有肘关节.肩关 ...
最新文章
- python 连续输出日期_我想生成连续的日期
- (每日一题)P3312 [SDOI2014]数表(经典莫比乌斯反演 + 树状数组维护离线询问)
- 【转】CreateWindowEx异常原因汇总
- php Function split() is deprecated 的解决办法(转)
- java 安卓蓝牙程序_求Java大神帮忙,简单修改下安卓蓝牙串口输出程序代码!!急...
- 创建ASPState数据库
- 【微软黑科技一周概览】
- 开源视频平台:ViMP
- 可以在电脑上在线录制视频GIF的软件,不需要下载安装
- WPS JS 宏搜索带颜色的字的笔记
- 如何下载B站高清视频
- python 微商城_微商城是自己开发好还是用第三方平台好?
- hutool的BeanUtil
- [abc] Placing Rectangles
- java mongodb gridfs_MongoDB-4 GridFS 文件存储
- 验证中文和英文姓名 正则表达式
- php卡片式,卡片式设计的优点和不适用性
- 找出游戏的获胜者(java)
- 套接字 I/O 模型 WSAEvent
- CF633C Spy Syndrome 2(字典树+dp)