#include "MSPM0L1306.h"\n\n// \u5B9A\u4E49 TB6612 \u5F15\u8F74\n#define TB6612_AIN1_PIN 9\n#define TB6612_AIN2_PIN 8\n#define TB6612_BIN1_PIN 10\n#define TB6612_BIN2_PIN 11\n#define TB6612_PWMA_PIN 6\n#define TB6612_PWMB_PIN 5\n\n// \u5B9A\u4E49 \u7F16\u7801\u5668 \u5F15\u8F74\n#define ENCODER1_PINA 2\n#define ENCODER1_PINB 3\n#define ENCODER2_PINA 4\n#define ENCODER2_PINB 7\n#define ENCODER3_PINA 12\n#define ENCODER3_PINB 13\n#define ENCODER4_PINA 14\n#define ENCODER4_PINB 15\n\n// \u521B\u5EFA TB6612 \u5BF9\u8C61\nTB6612 tb6612(TB6612_AIN1_PIN, TB6612_AIN2_PIN, TB6612_BIN1_PIN, TB6612_BIN2_PIN, TB6612_PWMA_PIN, TB6612_PWMB_PIN);\n\nvoid setup() {\n // \u521D\u59CB\u5316 TB6612\n tb6612.init();\n\n // \u521D\u59CB\u5316 \u7F16\u7801\u5668\n pinMode(ENCODER1_PINA, INPUT);\n pinMode(ENCODER1_PINB, INPUT);\n pinMode(ENCODER2_PINA, INPUT);\n pinMode(ENCODER2_PINB, INPUT);\n pinMode(ENCODER3_PINA, INPUT);\n pinMode(ENCODER3_PINB, INPUT);\n pinMode(ENCODER4_PINA, INPUT);\n pinMode(ENCODER4_PINB, INPUT);\n\n // \u8BBE\u7F6E \u7F16\u7801\u5668 \u4E2D\u65AD\n attachInterrupt(digitalPinToInterrupt(ENCODER1_PINA), encoder1Interrupt, CHANGE);\n attachInterrupt(digitalPinToInterrupt(ENCODER2_PINA), encoder2Interrupt, CHANGE);\n attachInterrupt(digitalPinToInterrupt(ENCODER3_PINA), encoder3Interrupt, CHANGE);\n attachInterrupt(digitalPinToInterrupt(ENCODER4_PINA), encoder4Interrupt, CHANGE);\n}\n\nvoid loop() {\n // \u63A7\u5236 \u7535\u673A \u8FD0\u52A8\n tb6612.setMotorSpeed(TB6612_MOTOR_A, 255); // \u8BBE\u7F6E A \u7535\u673A \u901F\u5EA6 \u4E3A \u6700\u5927\uff08\u6B63\u8F6C\uff09\n tb6612.setMotorSpeed(TB6612_MOTOR_B, -255); // \u8BBE\u7F6E B \u7535\u673A \u901F\u5EA6 \u4E3A \u6700\u5927\uff08\u53CD\u8F6C\uff09\n \n // \u83B7\u53D6 \u7F16\u7801\u5668 \u8BA1\u6570\u503C\n int encoder1Count = getEncoderCount(ENCODER1_PINA, ENCODER1_PINB);\n int encoder2Count = getEncoderCount(ENCODER2_PINA, ENCODER2_PINB);\n int encoder3Count = getEncoderCount(ENCODER3_PINA, ENCODER3_PINB);\n int encoder4Count = getEncoderCount(ENCODER4_PINA, ENCODER4_PINB);\n\n // \u8F93\u51FA \u7F16\u7801\u5668 \u8BA1\u6570\u503C\n Serial.print("Encoder1 count: ");\n Serial.println(encoder1Count);\n Serial.print("Encoder2 count: ");\n Serial.println(encoder2Count);\n Serial.print("Encoder3 count: ");\n Serial.println(encoder3Count);\n Serial.print("Encoder4 count: ");\n Serial.println(encoder4Count);\n\n delay(1000);\n}\n\n// \u7F16\u7801\u5668 \u4E2D\u65AD\u5904\u7406\u51FD\u6570\nvoid encoder1Interrupt() {\n // \u5728\u6B64\u5904\u7406\u7F16\u7801\u5668 1 \u4E2D\u65AD\n}\n\nvoid encoder2Interrupt() {\n // \u5728\u6B64\u5904\u7406\u7F16\u7801\u5668 2 \u4E2D\u65AD\n}\n\nvoid encoder3Interrupt() {\n // \u5728\u6B64\u5904\u7406\u7F16\u7801\u5668 3 \u4E2D\u65AD\n}\n\nvoid encoder4Interrupt() {\n // \u5728\u6B64\u5904\u7406\u7F16\u7801\u5668 4 \u4E2D\u65AD\n}\n\n// \u83B7\u53D6 \u7F16\u7801\u5668 \u8BA1\u6570\u503C\nint getEncoderCount(int pinA, int pinB) {\n // \u5728\u6B64\u83B7\u53D6 \u7F16\u7801\u5668 \u8BA1\u6570\u503C\n}


原文地址: https://www.cveoy.top/t/topic/pIsD 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录