control de brazo mecánico k680 por pc

Upload: armminblack

Post on 16-Mar-2016

11 views

Category:

Documents


0 download

DESCRIPTION

práctica de control para un brazo mecánico por medio de un programa en C

TRANSCRIPT

Prctica 2

PRINCIPIOS DE AUTOMATIZACIN Elabor: HVFPrcticas 8, 9 y 10__________________________________________________________________________________________________________

Bytes de "Data", "Status" y "Control".Debido a lo poco comn configuracin de bits de entrada y salida que tiene, el intercambio de informacin con este puerto paralelo (el estndar) y el mundo exterior es ligeramente complicado. Sin embargo, una vez entendidos los principios bsicos de funcionamiento y con la lgica de programacin adecuada, no debe presentar mayores problemas.

Estos 12 bits de salida y 5 bits de entrada estn agrupados en 3 bytes, conocidos ampliamente en la literatura computacional como los bytes "Data, Status y Control". Esto proviene del diseo original del puerto que, como ya se mencion, fue hecho pensando en la impresora solamente.

El byte llamado "Data" son los 8 bits de datos de salida que mandan el caracter a la impresora. El byte de "Control" es para darle rdenes, y est formado por los 4 bits de salida solamente (los otro cuatro bits del byte no se utilizan). Y finalmente, el byte "Status" est formado por 5 bits de entrada que leen la condicin de la impresora (los otros bits tampoco se usan).

INCLUDEPICTURE "http://www.7pines.info/local/cache-vignettes/L248xH122/puerto15-b8382.gif" \* MERGEFORMATINET

Elctricamente, el puerto paralelo entrega seales TTL y como tal, tericamente, se le puede conectar cualquier dispositivo que cumpla con los niveles de voltaje especficos de la lgica TTL, sin embargo el hardware del puerto paralelo est muy limitado en cuanto a su capacidad de manejo de corriente, por sta razn se debe ser muy cuidadoso con el manejo de las seales del puerto, un corto circuito puede daar permanentemente la tarjeta madre de la PC. Para disminuir lo ms posible el riesgo de daos al puerto utilizamos un circuito integrado 74LS244 (un chip para 8 bits)

NOTA: Se requieren dos inversores (un chip 74LS240) para C0 y C1, ya que son negados

Interface PC y Protoboard (Cable para Impresora, carcasas para DB25 y conector a Protoboard): Medio Puente H por cada motor (Se ocuparn 5 medios puentes H o 3 chips con sus respectivos diodos):

Para tener el control de dos direcciones o bidireccional se usan dos de drivers del l293b conectando sus salidas a los polos del motor, entonces podremos cambiar la polaridad de alimentacin del motor con tan solo cambiar de estado las entradas de los drivers. Los diodos modelo 1N4007 son para proteger el circuito de los picos de arranque y parada de los motores debido a la corriente inversa inducida por estos. Se puede ocupar el L293D que tiene los diodos de proteccin integrados o el siguiente integrado (SN754410NE):

Kit K-680 para un brazo mecnico:

Grados de libertad del brazo y led:

Desarrollo:Prctica 8: Arme el Kit K-680 y prubelo realizando cualquier actividad (mover un objeto de un lado a otro, etc)Prctica 9: Realice una adaptacin utilizando tres puentes H con sus diodos respectivos, un buffer para amplificar y proteger la tarjeta madre con 8 bits, otro buffer inversor para los dos bits de control. Se tendr que conectar la PC a travs del DB25, buffers, puentes H (Con diodos de proteccin) al brazo. Se correr el UsePort para activar el puerto paralelo y se correr el siguiente programa para controlar el brazo mediante la PC:#include

#include

#include

void main(void)

{

char a;

textbackground(BLUE); textcolor(YELLOW); clrscr();

gotoxy(20,5) ;printf(" [ABRE = ]");

gotoxy(20,6) ;printf(" [CIERRE = ]");

gotoxy(20,8) ;printf(" [ARRIBA = ]");

gotoxy(20,9) ;printf(" [ABAJO = ]");

gotoxy(20,11);printf(" [ARRIBA = ]");

gotoxy(20,12);printf(" [ABAJO = ]");

gotoxy(20,14);printf(" [ARRIBA = ^ ]");

gotoxy(20,15);printf(" [ABAJO = v ]");

gotoxy(20,17);printf(" [IZQ. = ]");

gotoxy(20,20);printf(" [PRENDE = ]");

gotoxy(1,1); printf("[SISTEMAS DIGITALES] CONTROL BRAZO MECANICO [CECyT 9]");

gotoxy(1,2); printf("--------------------------------------------------------------------------------");

gotoxy(1,22);printf("--------------------------------------------------------------------------------");

do

{

gotoxy(1,23);printf(" = Salir");

a=getch();

if (a==0)

{

a=getch();

/* gotoxy(1,3); printf("",a); */

if (a==';')

{

gotoxy(34,23);printf("ABRE ");

outportb(0x378,0x01);

delay(5000);

outportb(0x378,0x00);

}

if (a=='