This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] INA219:电机在使用 INA219库后停止

Guru**** 2390755 points
Other Parts Discussed in Thread: INA219

请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/amplifiers-group/amplifiers/f/amplifiers-forum/818890/ina219-motor-gets-stop-after-using-ina219-library

器件型号:INA219

您好、先生、

我使用 INA219来读取 Arduino 的电机电流消耗。 但是、当我使用 INA219的库时、电机只工作几秒钟、然后停止运转。

我使用的是该代码-

//定义引脚编号
CONST int StepPin = 5;
const int dirPin = 2;
const int enPin = 8;
#include
#include

Adafruit INA219 INA219;
void setup (void){

//将两个引脚设置为输出

PinMode (StepPin、OUTPUT);
PinMode (dirPin、输出);

引脚模式(ENPin、OUTPUT);
digitalWrite (enPin、low);
Serial.begin(115200);
while (!Serial){
//将暂停 Zero、Leonardo 等,直至串行控制台打开
delayMicroseconds (1);

uint32_t 电流频率;

//Serial.println ("Hello!");

//初始化 INA219。
//默认情况下、初始化将使用最大范围(32V、2A)。 但是
//您可以调用 setCalibration 函数来更改此范围(请参阅注释)。
ina219.begin();
//要使用略低的32V、1A 范围(更高精度的运算放大器):
// ina219.setCalibration_32V_1A();
//或要使用较低的16V、400mA 范围(电压和电流的精度更高):
ina219.setCalibration_16V_400mA();

serial.println ("使用 INA219测量电压和电流...");



void loop(){

digitalWrite (dirPin、HIGH);//使电机能够沿特定方向移动
//生成200个脉冲以进行一个完整周期的旋转
对于(int x = 0;x < 8000;x++){
digitalWrite (StepPin、HIGH);
delayMicroseconds (100);
digitalWrite (StepPin、low);
delayMicroseconds (60);

浮点分流电压= 0;
浮点总线电压= 0;
浮点 Current_mA = 0;
float lofadvoltage = 0;
float power_mW = 0;
shuntvoltage = INA219.getShuntVoltage_mV ();
总线电压= INA219.getBusVoltage_V ();
Current_mA = INA219.getCurrent_mA ();
power_mW = INA219.getPower_mW ();
lofadvoltage =总线电压+(shuntvoltage / 1000);

serial.print ("总线电压:");serial.print (总线电压);serial.println (" V ");
serial.print ("分流电压:");serial.print (shuntvoltage);serial.println (" mV");
serial.print("");
serial.println ("负载电压:");serial.print (lofadvoltage);serial.println (" V ");
serial.print("");
serial.println ("当前:");serial.print (current_mA);serial.println (" mA");
serial.print ("电源:");serial.print (power_mW);serial.println (" mW");
serial.println("");

此外、我尝试使用 SET_CALIBRATION 命令、但不执行任何操作。

请尽快帮助我。

谢谢  

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    电机开环运行、因此您应该能够删除与 INA219相关的代码并能够运行电机。

    在您自己弄清楚这个部件后、将 INA219代码重新添加到中。

    此致、Guang

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好!

    我一段时间没有听到您的声音,我将关闭这个话题。 如果您有其他输入/问题、请回帖。

    此致、Guang