L298 acciona dos pequeños motores para girar hacia adelante y hacia atrás. ¿Cómo implementarlo en lenguaje C?
Hola anfitrión.
L298 se utiliza generalmente con microcontroladores.
En pocas palabras, L298 tiene cuatro terminales de salida, a saber, O1, O2, O3 y O4. Generalmente, se pueden conectar dos motores para controlar la rotación hacia adelante y hacia atrás y la velocidad PWM respectivamente. Tiene cuatro terminales de entrada IN1 ~ 4, que pueden controlar el nivel alto y bajo equivalente a cuatro terminales de salida. Cuando ENA y ENB tienen un nivel alto, salida normal; de lo contrario, no hay salida de voltaje. Estos dos pines se utilizan generalmente para el control de velocidad PWM. Se puede acceder al nivel alto si no es necesario.
La figura muestra una aplicación sencilla.
Se adjunta un programa de control de velocidad 89c52 PWM:
#include?lt;reg52.hgt;
unsigned?char?key;
sbit?LED0=P1^4;
sbit?LED1=P1^5;
sbit?>LED2=P1^6;
LED3= P1 ^7;
ENA=P2^4;
void?delay(unsigned?int?loop)
{ while(loop--);
p>}
void?chSpeed()?interrupt?0
{ EX0=0; retraso(500); //retraso? .5ms clave; si(clave==0) P1=0x10; más?si(clave ==1) P1=0x20; más?si(clave==2) P1=0x40; ) P1= 0x80; else?if(keygt;3) { clave=0; P1=0x10; } EX0=1;
}
void?timer0()?interrupt?
{ TH0=(65535-1000)/256; TL0=(65535-1000)256; si(clave==0) { ENA=1 } más?if(clave==2) { TH1=( 65535- 500)/256; TL1=(65535-500)256; } más?si(clave==3) { TH1=(65535-250)/256; TR1=1 ; ENA=1;
}
¿nulo?
{ ENA=0; /p>
void?main()
{ void?delay( sin firmar ET0=1; ET1=1; TL0=(65535-1000)256; TR0=1; =1; EA=1; P0=0xFF; P1=0x10; P2=0XFF; mientras(1) { }<
}