【花雕学编程】Arduino动手做(225)---将AS5600角度传感器集成到步进电机项目中
/*
【Arduino】168种传感器模块系列实验(资料代码+仿真编程+图形编程)
实验二百二十四:AS5600磁编码器 磁感应角度测量传感器 12bit高精度模块
项目实验之二:将AS5600角度传感器集成到电机项目中
*/
#include ""
#include ""
AS5600 as5600; //默认情况下使用Wire
//不同变量的声明
int positionZero;
const int buttonPin = 2; //按钮的引脚号
int buttonState = 0; //用于读取按钮状态的变量
void setup() {
//初始化串行端口并设置串行通信的波特率
Serial.begin(115200);
Wire.begin();
//使用内部上拉将按钮初始化为输入
pinMode(buttonPin, INPUT_PULLUP);
Serial.println("文件路径信息:");
Serial.println(__FILE__);
Serial.println(" ");
//显示AS5600库的版本
Serial.print("AS5600库的版本: ");
Serial.println(AS5600_LIB_VERSION);
as5600.begin(4); //这条线初始化AS5600传感器
as5600.setDirection(AS5600_CLOCK_WISE); //确定传感器的旋转方向
//检查连接
int b = as5600.isConnected();
Serial.print("已连接: ");
Serial.println(b);
delay(5000);
//设置零位置
positionZero = as5600.rawAngle();
}
void loop() {
//读取按钮状态
buttonState = digitalRead(buttonPin);
if (buttonState == LOW) {
positionZero = as5600.rawAngle();
}
//显示相对于零点和定义方向的角度值
Serial.print("点角值:");
Serial.print("\t");
//该代码行从AS5600传感器读取调整后的角度并将其显示在监视器上,
//这可能有助于跟踪或调试。
Serial.println(as5600.readAngle());
//显示零的值
Serial.print("零->位置的总值");
//命令(“\t”);在代码中,Arduino在串行端口上发送一个制表符(由\t表示)
Serial.print("\t");
Serial.println(positionZero);
//使用AS5600传感器测量角位置
//并以度为单位显示角度值
conversion_de_angle();
Serial.println(" ");
Serial.println(" ");
delay(3000);
}