L298 + ATMega168P = Motor Driver for Rover Z-1.0

IMG_1262
MCU ATMega168P

IMG_1263
L298 Модуль – вместе

 


// ATmega 168P (Arduino) L298 и 74hc00

struct MOTOR   
{
  int in;       // INVERTOR INPUT
  int enable;   // ENABLE
};

MOTOR MOTOR1 = { 7, 5 };  // D5-PWM, D7-Direction
MOTOR MOTOR2 = { 8, 6 };  // D6-PWM, D8-Direction

int FORWARD = HIGH;
int BACK = LOW;

void setup()
{
  pinMode(MOTOR1.in, OUTPUT); 
  pinMode(MOTOR2.in, OUTPUT);
}

void loop()
{
  motor1(FORWARD, 50);   
  motor2(FORWARD, 50);
  delay(3000);
  motor1(BACK, 100);     
  motor2(BACK, 100); 
  delay(5000);
}

void motor1(int dir, int pwm) 
{
  digitalWrite(MOTOR1.in, dir);
  analogWrite(MOTOR1.enable, pwm);
}

void motor2(int dir, int pwm)
{
  digitalWrite(MOTOR2.in, dir);
  analogWrite(MOTOR2.enable, pwm);
}