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 这是为什么啊。。。 |





我参见此文中关于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外不知道其他都要怎么接。
把L298P插Intel上,5,6,9端口写入pwm数据可行,但是电机不转(因为电路上没有接入),10,11端口初始化pwm都失败。把L298P拔掉,然后同样写入5、6、9、10、11端口,5、6、9可初始化并写入,10、11初始化失败。。。难道我10、11坏了?