Arduino:L298N模块使用

Arduino:L298N模块使用

L298N是ST公司生产的芯片。主要特点是:工作电压高,最高工作电压可达46V,并且可以驱动两个二相电机,可以直接通过电源来调节输出电压;可以直接用单片机的I/O口提供信号,而且电路简单,使用比较方便。

Arduino:L298N模块使用_第1张图片



若要对直流电机进行调速,只需要在确定IN1,IN2后(电机的转向),对使能端ENA输出PWM脉冲即可。

Arduino 代码:

<span style="font-size:14px;">const int N1 = 11;
const int N2 = 12;
const int N3 = 3;
const int N4 = 4;
const int PWM_ENA = 6;
void setup() {
  // put your setup code here, to run once:
  Serial.begin(9600);
  pinMode(N1,OUTPUT);
  pinMode(N2,OUTPUT);
  pinMode(N3,OUTPUT);
  pinMode(N4,OUTPUT);
  pinMode(PWM_ENA,OUTPUT);
}
void Forword()
{
  digitalWrite(N1,HIGH);
  digitalWrite(N2,LOW);
  digitalWrite(N3,HIGH);
  digitalWrite(N4,LOW);
}
void Backword()
{
  digitalWrite(N1,LOW);
  digitalWrite(N2,HIGH);
  digitalWrite(N3,LOW);
  digitalWrite(N4,HIGH);
}
void TurnLeft()
{
  digitalWrite(N1,LOW);
  digitalWrite(N2,HIGH);
  digitalWrite(N3,HIGH);
  digitalWrite(N4,LOW);
}
void TurnRight()
{
  digitalWrite(N1,HIGH);
  digitalWrite(N2,LOW);
  digitalWrite(N3,LOW);
  digitalWrite(N4,HIGH);
}
void Stop()
{
  digitalWrite(N1,LOW);
  digitalWrite(N2,LOW);
  digitalWrite(N3,LOW);
  digitalWrite(N4,LOW);
}
void PWM_PLUS()
{
    const int rate = 700;
    digitalWrite(PWM_ENA,HIGH);
    delayMicroseconds(rate);
    digitalWrite(PWM_ENA,LOW);
    delayMicroseconds(1000-rate);
}
void loop() {
  // put your main code here, to run repeatedly:
  //PWM_PLUS();调速函数,通过ENA输出PWM脉冲
  while(Serial.available()>0)
   {
     char c=Serial.read();
      if(c=='U')
        {
          Forword();
        }
      else if(c == 'D')
      {
        Backword();
      }
      else if(c == 'L')
      {
        TurnLeft();
      }
      else if(c == 'R')
      {
        TurnRight();
      }
      else if(c == 'S')
      {
        Stop();
      }
   }
}</span>








你可能感兴趣的:(IO,函数,单片机,arduino)