邵林寺 发表于 2013-9-9 08:26
1、你的程序对吗?
2、你用的板载5v供电,确实共地了,但是,板载5v没有和ENA.ENB产生高低电平。
3、建:1 ...
嘿嘿, 非常感谢。
1. 程序应该没问题,结果基本一样:插上ENA ENB 电机板有蜂鸣,拔下就能动,有时候需要手工转下轮子才能继续动: 除了反复试了说明书的例子程序(贴最后边),还搜索找了其他网络帖子的接线法和例子---不过找到的一般没有提供接线法,我是根据找到的程序摸索出来的接线法的。个人网站开发出身,电子硬件不熟,编程还可以。
2. 电机板有三个地方有 5V 的字样,一个 5V 跳线基本确认;一个电机的 5V 输入;在 ENA, IN1, IN2, IN3, IN4, ENB 接口接着就是一个 GND 和 5V+ 是说的这个是板子的 5V 输入哈? 看到你和迷你强都说光耦的事还真不确认了, 嘿嘿。
3. 这个刚才找了些资料看了看,目前对我来说可能有些难,回头再看看。
非常感谢 - // 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;
- }
- }
- }
复制代码 |