【花雕学编程】Arduino动手做(225)---将AS5600角度传感器集成到步进电机项目中

时间:2025-03-30 09:02:14
/* 【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); }