Intel Edison for Arduino 与 l298p的连接问题。

2015-08-209129
AI 快速预览详细 收起
本文讨论了Intel Edison for Arduino板与L298P直流电机驱动板连接时遇到的PWM初始化错误问题。用户在尝试启用PWM功能时,程序抛出'Error initialising PWM on pin'异常。文章提供了详细的故障排查步骤,包括检查PWM引脚配置和更新mraa库版本,帮助用户解决这一具体报错现象。


今天将买来的l298p直流电机驱动板直接插到Intel Edison For Arduino板上,然后M1+和M1-分别接直流电机两端(该电机直接从l298p的5v和GND引脚引出接入,电机能转),然后写程序如下:

#include "mraa.hpp"

#include <iostream>
#include <memory>
#include <csignal>

std::sig_atomic_t __quit = 0;

void quit_handler(int param)
{
        __quit = 1;
}

int main()
{
        std::unique_ptr<mraa::Pwm> speed_pin(new mraa::Pwm(10));
        if (speed_pin->enable(true) != MRAA_SUCCESS)
        {
                std::cerr << "speed_pin enable failed!" << std::endl;
                return MRAA_ERROR_UNSPECIFIED;
        }
        speed_pin->write(0.3f);

        std::signal(SIGINT, quit_handler);

        while (__quit == 0)
        {
        }
        speed_pin->enable(false);

        std::cout << "bye" << std::endl;

        return MRAA_SUCCESS;
}

结果运行时提示:

terminate called after throwing an instance of 'std::invalid_argument'
  what():  Error initialising PWM on pin
Aborted

这是为什么啊。。。

创作许可协议

本项目采用 None(不开放任何权利,保留所有权利) 进行许可。

评论(3)
孙毅
孙毅
你是在Eclipse下 coding的对吗?
mslzone
mslzone
作者
回复孙毅
对的,有一点我需要补充说明,我将L298P插入Intel Edison For Arduino板上,L298P板上并没有任何指示灯亮起来,这个是正常还是不正常的?
孙毅
孙毅
晚上回去帮你看看啊,不过你可以先尝试着换个PWM口看看,5,6, 9,10,11
mslzone
mslzone
作者
回复孙毅
http://download.intel.com/support/edison/sb/edisonarduino_hg_331191007.pdf
我参见此文中关于j11、j12跳线的说明后才知道其实edison for arduino实际上只支持4个pwm,默认是3、5、6、9,所以初始化10、11会失败。但是后来我将跳线切换到10、11后,依然是10、11引脚初始化pwm失败,但是3、5、6、9初始化pwm成功。真不知道为什么了。现在我想手动接L298P到intel edison for arduino板,但是除了知道要将5、6引脚接L298P的10、11外不知道其他都要怎么接。
mslzone
mslzone
作者
回复孙毅

把L298P插Intel上,5,6,9端口写入pwm数据可行,但是电机不转(因为电路上没有接入),10,11端口初始化pwm都失败。把L298P拔掉,然后同样写入5、6、9、10、11端口,5、6、9可初始化并写入,10、11初始化失败。。。难道我10、11坏了?
共3条回复,已加载2条,点击查看更多共3条回复,已加载全部
luna
luna
我帮你@版主大人哦
- 没有更多了 -