本帖最后由 hick 于 2013-9-9 11:49 编辑
首先是我 ps 的接线图
然后是L298N双H桥直流电机驱动板,跟提供的手册上的略有差异。主要是跟 ENA ENB IN1-IN4 并列的还有一个 5V+ 和 GND 插针。 我理解这个是驱动板的 5V 输入口? 还是说下图右下的那个 5V 跳线才是驱动板 5V 输入?
下面这张是跟手册上不一样的局部放大
昨晚这套还是能跑起来了,就是不能通过 ENA ENB 控制速度。 也另外发了个求助帖,本贴也继续求教咋回事:
另附手册上的程序:
- // motor A
- int dir1PinA = 2;
- int dir2PinA = 3;
- int speedPinA = 9;
- // motor B
- int dir1PinB = 4;
- int dir2PinB = 5;
- int speedPinB = 10;
- unsigned long time;
- int speed;
- int dir;
- void setup() {
- pinMode(dir1PinA, OUTPUT);
- pinMode(dir2PinA, OUTPUT);
- pinMode(speedPinA, OUTPUT);
- pinMode(dir1PinB, OUTPUT);
- pinMode(dir2PinB, OUTPUT);
- pinMode(speedPinB, OUTPUT);
- time = millis();
- speed = 0;
- dir = 1;
- }
- void loop() {
- analogWrite(speedPinA, speed);
- analogWrite(speedPinB, 255 - speed);
- // set direction
- if (1 == dir) {
- digitalWrite(dir1PinA, LOW);
- digitalWrite(dir2PinA, HIGH);
- digitalWrite(dir1PinB, HIGH);
- digitalWrite(dir2PinB, LOW);
- } else {
- digitalWrite(dir1PinA, HIGH);
- digitalWrite(dir2PinA, LOW);
- digitalWrite(dir1PinB, LOW);
- digitalWrite(dir2PinB, HIGH);
- }
- if (millis() - time > 5000) {
- time = millis();
- speed += 20;
- if (speed > 255) {
- speed = 0;
- }
- if (1 == dir) {
- dir = 0;
- } else {
- dir =1;
- }
- }
- }
复制代码 |