i experiencing issue l298n motor driver board.i have arduino controlling l298n motor driver board.even set same instruction both motors,they spin @ different rpm
.i not able find problem lies(arduino or motor driver).i have 10v power supply powering board.any appreciatedthe code using is:

code: [select]
/* l298n_dual_h_bridge
this program controls 2 separate dc motors using l298n
h bridge chip.
*the subroutines work follows*
motora(mode, speed)
% replace b control motor b %
mode number 0 -> 3 determines motor
will do.
0 = coast/disable h bridge
1 = turn motor clockwise
2 = turn motor counter clockwise
3 = brake motor
speed number 0 -> 100 represents percentage of
motor speed.
0 = off
50 = 50% of full motor speed
100 = 100% of full motor speed
example
say need have motor turn clockwise @ 33% of its
full speed. subroutine call following...
motora(1, 33);
created
iain portalupi http://www.youtube.com/iainportalupi
1/2/2014
this code in public domain.
*/
#define ena 5 //enable on pin 5 (needs pwm pin)
#define enb 3 //enable b on pin 3 (needs pwm pin)
#define in1 2 //in1 on pin 2 conrtols 1 side of bridge a
#define in2 4 //in2 on pin 4 controls other side of a
#define in3 6 //in3 on pin 6 conrtols 1 side of bridge b
#define in4 7 //in4 on pin 7 controls other side of b
int sensor = 0;
void setup()
{
//set of outputs
pinmode(ena, output);
pinmode(enb, output);
pinmode(in1, output);
pinmode(in2, output);
pinmode(in3, output);
pinmode(in4, output);
}
void loop()
{
motora(1,30);
motorb(1,30);
delay(5000);
motora(1,70);
motorb(1,70);
delay(5000);
}
//****************** motor control *******************
void motora(int mode, int percent)
{
//change percentage range of 0 -> 100 pwm
//range of 0 -> 255 using map function
int duty = map(percent, 0, 100, 0, 255);
switch(mode)
{
case 0: //disable/coast
digitalwrite(ena, low); //set enable low disable a
break;
case 1: //turn clockwise
//setting in1 high connects motor lead 1 +voltage
digitalwrite(in1, high);
//setting in2 low connects motor lead 2 ground
digitalwrite(in2, low);
//use pwm control motor speed through enable pin
analogwrite(ena, duty);
break;
case 2: //turn counter-clockwise
//setting in1 low connects motor lead 1 ground
digitalwrite(in1, low);
//setting in2 high connects motor lead 2 +voltage
digitalwrite(in2, high);
//use pwm control motor speed through enable pin
analogwrite(ena, duty);
break;
case 3: //brake motor
//setting in1 low connects motor lead 1 ground
digitalwrite(in1, low);
//setting in2 high connects motor lead 2 ground
digitalwrite(in2, low);
//use pwm control motor braking power
//through enable pin
analogwrite(ena, duty);
break;
}
}
//**********************************************************
//****************** motor b control *******************
void motorb(int mode, int percent)
{
//change percentage range of 0 -> 100 pwm
//range of 0 -> 255 using map function
int duty = map(percent, 0, 100, 0, 255);
switch(mode)
{
case 0: //disable/coast
digitalwrite(enb, low); //set enable low disable b
break;
case 1: //turn clockwise
//setting in3 high connects motor lead 1 +voltage
digitalwrite(in3, high);
//setting in4 low connects motor lead 2 ground
digitalwrite(in4, low);
//use pwm control motor speed through enable pin
analogwrite(enb, duty);
break;
case 2: //turn counter-clockwise
//setting in3 low connects motor lead 1 ground
digitalwrite(in3, low);
//setting in4 high connects motor lead 2 +voltage
digitalwrite(in4, high);
//use pwm control motor speed through enable pin
analogwrite(enb, duty);
break;
case 3: //brake motor
//setting in3 low connects motor lead 1 ground
digitalwrite(in3, low);
//setting in4 high connects motor lead 2 ground
digitalwrite(in4, low);
//use pwm control motor braking power
//through enable pin
analogwrite(enb, duty);
break;
}
}
//**********************************************************
motors spin @ different rpms, if of same type. need shaft encoders , pid code control speed of rotation.
Arduino Forum > Using Arduino > Motors, Mechanics, and Power (Moderator: fabioc84) > L298n not working properly.
arduino
Comments
Post a Comment