di nuovo salve a tutti, il probema postato prima ha trovato soluzione, basta condividere la massa e non mi serve alimentare esternamente l'Arduino.
ora però ho un altro problemino, ho un dual (no micro) motor controller della pololu smc01b e sto cercando di pilotarlo con l'arduino. ho trovato del codice in rete e sembra funzionare, tranne che non riesco ad invertire il senso di rotazione dei motori. posto il codice:
#include <SoftwareSerial.h>
#define txPin 7 // Defines the "transmit" pin for software serial to motor controller
#define rxPin 6 // Defines the "transmit" pin for software serial to motor controller
#define LED_PIN 13
#define MOTOR_RESET_PIN 8
#define MOTOR_SPEED 0x24
unsigned char motorCommandBuffer[6];
SoftwareSerial motorSerial = SoftwareSerial(rxPin, txPin);
void setup()
{
pinMode(LED_PIN,OUTPUT);
pinMode(MOTOR_RESET_PIN,OUTPUT);
pinMode(txPin, OUTPUT); // Serial Transmit Pin
Serial.begin(9600);
motorSerial.begin(9600);
resetMotor();
}
void loop()
{
// motorSerial.read();
motorForward();
delay(500);
// reset_motor();
deactivateMotor();
digitalWrite(LED_PIN,LOW);
delay(500);
digitalWrite(LED_PIN,HIGH);
resetMotor();
}
void deactivateMotor()
{
digitalWrite(MOTOR_RESET_PIN,LOW);
digitalWrite(LED_PIN,LOW);
}
void activateMotor()
{
digitalWrite(MOTOR_RESET_PIN,HIGH);
digitalWrite(LED_PIN,HIGH);
}
void resetMotor()
{
deactivateMotor();
delay(150);
activateMotor();
delay(150);
}
void motorForward()
{
//left motor
motorCommandBuffer[0]=0x80; //start byte - do not change
motorCommandBuffer[1]=0x00; //Device type byte ? do not change
motorCommandBuffer[2]=0x01; //Motor number and direction byte; motor one =00,01
motorCommandBuffer[3]=MOTOR_SPEED; //Motor speed "0 to 128" in hex (ex 100 is 64 in hex)
for(int i=0; i<4; i++)
{motorSerial.print(motorCommandBuffer*, BYTE);}*
- //right motor*
- motorCommandBuffer[0]=0x80; *
- motorCommandBuffer[1]=0x00; *
- motorCommandBuffer[2]=0x03; //Motor number and direction byte; motor two=02,03*
- motorCommandBuffer[3]=MOTOR_SPEED; for(int i=0; i<4; i++)*
_ {motorSerial.print(motorCommandBuffer*, BYTE);}_
_ }*_
Qualcuno può aiutarmi? grazie e scusatemi ma sono nuovo del forum e di arduino (anche se lo ho dall'anno scorso, mi ci sono dedicato poco).
Grazie a tutti.