You are on page 1of 8

ACLARACION: al circuito le agregue le agregue un 7805 para regular la tension de

la bateria y poder conectar directamente el arduino



Componentes:

1 L298N (circuito integrado puente H)
1 LM7805
8 Diodos 1n4148
2 Capacitor de 2200uf
1 Capacitor de 0.33uf
1 Capacitor de 0.01uf
2 Disipadores
1 plaqueta virgen de 9cm x 6cm (o de 10x10 cm para no complicarse)
4 borneras de dos contactos
6 espadines/pines

El L298 nos permite controlar dos motores en el mismo integradro y regularles la
velocidad a nuestro gusto.
Con un arduino solo nececitaremos tres pines para controlar el motor:
1ro en high mueve el motor en una direccion
2do en high mueve el motor en la direccion contraria
3ro nos permitira controlar la velocidad, con PWM


hoja de datos l298
http://www.alldatasheet.com/datasheet-
pdf/pdf/22437/STMICROELECTRONICS/L298.html
Diagrama




El circuito impreso lo disee en PCBWizard


de aca lo podes bajar el progrma

http://www.taringa.net/comunidades/comunidad-cep/5696565/Livewire-PCB-
wizard-y-manual-en-espanol.html

y aca te dejo los archivos del diagrama y el pcb


https://www.dropbox.com/sh/7pa761citv3epvr/AAD6xVbeBHDRu3DkDhiOFSTya

el pcb es distinto al de las fotos porque le deje mas espacio para los disipadores





imagen del artwork, esto es lo que se imprime.

AVISO: imprimirlo siempre desde el PCBWizard no imprimir esta imagen



ya con el PCB armado solo tenes que imprimir el artwork en papel fotografico y
plancharlo en una placa virgen para luego sumergirlo en cloruro ferrico.



si no sabes como se hace esto busca en taringa que esta lleno de post:


http://www.taringa.net/posts/hazlo-tu-mismo/11280314/Circuitos-impresos-parte-I-y-II.html
http://www.taringa.net/posts/hazlo-tu-mismo/17542295/Como-hacer-circuitos-impresos-
Tecnica-de-la-plancha.html

Despues a agujerear y por ultimo soldar los componentes




PRUEBA


para probarlo lo conecte al arduino de la siguiente manera



y cree un programita de prueba medio loco que va variando el giro y la velocidad


[color=#000000]
int md_adelante = 5; //md = motor derecho
int md_atras = 4;
int md_velocidad = 3;

int mi_adelante = 11; //md = motor izquierdo
int mi_atras = 10;
int mi_velocidad = 9;

void setup()
{
pinMode(md_adelante,OUTPUT);
pinMode(mi_adelante,OUTPUT);
pinMode(md_atras,OUTPUT);
pinMode(mi_atras,OUTPUT);
pinMode(mi_velocidad,OUTPUT);
pinMode(md_velocidad,OUTPUT);
digitalWrite(mi_adelante,LOW);
digitalWrite(md_adelante,LOW);
digitalWrite(mi_atras,LOW);
digitalWrite(md_atras,LOW);

Serial.begin(9600);
}

void loop()
{
analogWrite(md_velocidad, 60); //seteo las dos velocidades a 60
analogWrite(mi_velocidad, 60);
digitalWrite(mi_adelante,HIGH); //arranca el motor izq adelante
delay(2000); //espero dos segundos
digitalWrite(md_adelante,HIGH); //arranca el motor derecho adelante
delay(2000); //espero dos segundos
analogWrite(mi_velocidad, 120); //aumento velocidad del izq a 120
delay(2000); //espero dos segundos
analogWrite(mi_velocidad, 180); //aumento velocidad del izq a 180
delay(2000); //espero dos segundos
digitalWrite(md_adelante,LOW); //freno el derecho
analogWrite(md_velocidad, 160); //aumento la velocidad del derecho a 160
digitalWrite(md_atras,HIGH); //arranca el derecho para atras
delay(2000); //espero dos segundos
digitalWrite(mi_adelante,LOW); //freno el izq
delay(3000); //espero tres segundos
analogWrite(mi_velocidad, 255); //seteo velocidad del izq al maximo
digitalWrite(mi_atras,HIGH); //lo arranco a fondo
delay(2000); //espero dos segundos
analogWrite(md_velocidad, 255);
digitalWrite(md_atras,HIGH); //arranco a fondo el otro
delay(2000); //espero dos segundos
digitalWrite(md_atras,LOW); //FRENO LOS DOS
digitalWrite(mi_atras,LOW);
delay(2000); //espero dos segundos

//vamos a aumentar los dos incrementalmente

analogWrite(mi_velocidad, LOW);
analogWrite(md_velocidad, LOW);
digitalWrite(md_adelante,HIGH);
digitalWrite(mi_adelante,HIGH);

for (int i=0; i <= 255; i++){
analogWrite(mi_velocidad, i);
analogWrite(md_velocidad, i);
delay(100);
}

//vamos a decrementarlos

for (int i=255; i >= 0; i=i-1){
analogWrite(mi_velocidad, i);
analogWrite(md_velocidad, i);
delay(100);
}

//frenamos todo por las dudas
digitalWrite(mi_adelante,LOW);
digitalWrite(md_adelante,LOW);
digitalWrite(mi_atras,LOW);
digitalWrite(md_atras,LOW);

}[/color]

You might also like