自动滑轨项目_参考案例2

该博客介绍了一个使用Arduino和摇杆控制两个步进电机的项目。作者Andrea Lombardo提供了代码解析,通过摇杆的X和Y轴控制电机的正反向及速度。代码中包含了AccelStepper库的使用,以及按键去抖动的实现,用于启用或禁用电机运动。
摘要由CSDN通过智能技术生成

在网上找到一个案例,用摇杆控制两个步进电机,注释为法语,通过翻译软件和自己对代码的理解进行了翻译。

 

源代码见文章最后部分。

以下是代码解析:

/*
 * Controllo di due motori passo passo con Arduino e un Joystick
 * 用Arduino和操纵杆控制马达
 * Autore  : Andrea Lombardo
 * Web     : http://www.lombardoandrea.com
 * Post    : http://wp.me/p27dYH-KQ
 */ 

//Inclusione delle librerie 包含一下库
#include <AccelStepper.h>
#include <Bounce2.h>

//definizione delle costanti dei pin di Arduino arduino 引脚定义
const int ledEnable = 13; // LED控制引脚
const int pinSwEnable = 7;  //摇杆按键接线引脚
const int pinEnable = 8;  //A4988驱动使能引脚定义

unsigned long debounceDelay = 10; //去抖动延时

const int jX = A0;  //摇杆X轴引脚定义
const int stepX = 3;  //步进电机X脉冲输出引脚
const int dirX = 4; //步进电机X方向控制引脚
long speedX, valX, mapX;  //电机X相关变量

const int jY = A1;  //摇杆Y轴引脚定义
const int stepY = 5;  //步进电机Y脉冲输出引脚
const int dirY = 6; //步进电机Y方向控制引脚
long speedY, valY, mapY;  //电机X相关变量

//AccelStepper 库使用的变量
const int maxSpeed = 1000;  //Arduino UNO受晶振限制最大到4000
const int minSpeed = 0; //电机最小速度
const float accelerazione = 50.0; //加速度

const int treshold = 30;  //栅域
long tresholdUp, tresholdDown;  //变量

boolean abilitato, muoviX, muoviY, enable;  //移动变量

Bounce btnEnable = Bounce();  //使用一个库,检测按键抖动

//AccelStepper库电机定义 
AccelStepper motoreX(AccelStepper::DRIVER, stepX, dirX);
AccelStepper motoreY(AccelStepper::DRIVER, stepY, dirY);

void setup() {
  //变量初始化
  speedX = speedY = 0;
  enable = false;

  //引脚模式定义
  pinMode(ledEnable, OUTPUT);
  pinMode(pinEnable, OUTPUT);

  pinMode(pinSwEnable, INPUT_PULLUP); //按键定义输入,并置高

  digitalWrite(ledEnable, enable);
  digitalWrite(pinEnab

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值