Sie sind auf Seite 1von 6

CONTROL DE MOVIL TREPADOR Hardware: Modulo Arduino: Arduino es una herramienta para hacer que los ordenadores puedan

sentir y controlar el mundo fsico a travs de tu ordenador personal. Es una plataforma de desarrollo de computacin fsica (physical computing) de cdigo abierto, basada en una placa con un sencillo microcontrolador y un entorno de desarrollo para crear software (programas) para la placa. Puedes usar Arduino para crear objetos interactivos, leyendo datos de una gran variedad de interruptores y sensores y controlar multitud de tipos de luces, motores y otros actuadores fsicos. Los proyectos de Arduino pueden ser autnomos o comunicarse con un programa (software) que se ejecute en tu ordenador (ej. Flash, Processing, MaxMSP). La placa puedes montarla t mismo o comprarla ya lista para usar, y el software de desarrollo es abierto y lo puedes descargar gratis. El lenguaje de programacin de Arduino es una implementacin de Wiring, una plataforma de computacin fsica parecida, que a su vez se basa en Processing, un entorno de programacin multimedia

Driver L293D El L293D de Texas Instruments es sin lugar a dudas un circuito integrado de un gran valor cuando necesitamos controlar motores de corriente continua o bipolar de pasos (Bipolar stepping motors) Es cierto que se trata de un puente en H (o medios puentes), en este caso cudruple, que sin bien podramos crearlo con transistores, el hecho de que se encuentre integrado en un nico chip es de agradecer. Capaz de conducir corrientes bidireccionales de hasta 1 amperio en el modelo L293 y hasta 600 mA en el modelo L293D y con tensiones que van desde los 4.5V hasta los 36V en ambos modelos. Por supuesto podemos utilizarlo en otras aplicaciones o para controlar otros componentes: motores de corriente continua, rels, motores de paso bipolares, solenoides en general y cualquier carga que requiera una alta corriente y tensin. Las entradas son de tipo TTL y se activan por parejas, es decir, desde la pata Enable 1,2EN, activamos las entradas 1 y 2 y desde la pata Enable 3,4EN activamos la 3 y la 4. Cada par de entradas forma un puente en H completo (Full-H bridge). Para entender esto mejor buscar un puente en H creado con transistores. Es muy IMPORTANTE que al utilizar el driver L293, se utilicen diodos para evitar daar el integrado con las corrientes parsitas generadas por los propios solenoides de las cargas. No obstante el modelo L293D no los necesita, ya que, los lleva incorporados el propio integrado, con lo que se hace "ms sencillo" y "econmico" su uso. Tambin es cierto que L293 al no llevarlos integrados nos permite escoger los que mejor se adapten a nuestras cargas o necesidades.

Y como no, un circuito a modo de ejemplo, ya que, son varias las configuraciones que podemos manejar. En este ejemplo he utilizado el modelo L293D, adems con el fin de simplificar al mximo el montaje, he optado por alimentar el motor con la misma fuente y

tensin del propio circuito controlador de toda la lgica (microcontrolador y puertas lgicas entre otros componentes). Por esta razn que tanto Vcc1 (patilla 16) como Vcc2 (patilla 8) estn conectados a tensin de 5 voltios:

Por ltimo, comentaros se debe tener cuidado y no confundir las dos tensiones con las que puede trabajar este integrado. Una es la tensin de trabajo del propio chip Vcc1 ubicada en la patilla 16 y que debe ser superior a 4.5V y no debe superar los 7V y, otra es la tensin con la que es capaz de dirigir las cargas o motores que, en este caso va de 4.5 a 36V (Patilla 8 Vcc2). No obstante, lo mejor es que se revise bien la hoja de datos del chip antes de realizar el circuito.

Software: / comprobacion de reseteo, si el led parpadea solo 3 veces, todo esta bien // si vuelve a parpadear, significa que ha hecho un reset, revisar conexiones // por si hubiera un corto blink(ledPin, 3, 100);

void loop() {

//Si el switch no esta pulsado, gira en una direccion, si no en la contraria if (digitalRead(switchPin) >0) {

digitalWrite(motor1Pin1, LOW); digitalWrite(motor1Pin2, HIGH);

// Establece el sentido de giro del motor 1 //

speedpin = analogRead(potPin); speedpin = 800 + (speedpin/6);

// Lectura del valor del potenciometro // Para establecer la velocidad de giro

analogWrite (speedPin1, speedpin); // Serial.print("motor 1 = "); Serial.println(speedpin); delay (50); // // //

digitalWrite(motor2Pin1, LOW); digitalWrite(motor2Pin2, HIGH);

// Establece el sentido de giro del motor 2 //

speedpin = analogRead(potPin2); speedpin = 800 + (speedpin/6);

// Lectura del valor del potenciometro // Para establecer la velocidad de giro

analogWrite (speedPin2, speedpin); // Serial.print("motor 2 = "); Serial.println(speedpin); // //

delay(50); } else {

//

digitalWrite(motor1Pin1, HIGH); digitalWrite(motor1Pin2, LOW);

// Establece el sentido de giro del motor 1 //

speedpin = analogRead(potPin); speedpin = 800 + (speedpin/6);

// Lectura del valor del potenciometro // Para establecer la velocidad de giro

analogWrite (speedPin1, speedpin); // Serial.print("motor 1 = "); Serial.println(speedpin); delay (50); // // //

digitalWrite(motor2Pin1, HIGH); digitalWrite(motor2Pin2, LOW);

// Establece el sentido de giro del motor 2 //

speedpin = analogRead(potPin2); speedpin = 800 + (speedpin/6);

// Lectura del valor del potenciometro // Para establecer la velocidad de giro

analogWrite (speedPin2, speedpin); // Serial.print("motor 2 = "); Serial.println(speedpin); delay(50); } } // // //

/* Parpadeo del led, Significa que ha ejecutado la funcion setup() si todo va bien, solo parpadea tres veces, si hay algun error que resetee el arduino, volvera a verse el parpadeo del led */ void blink(int whatPin, int howManyTimes, int milliSecs) { int i = 0; for ( i = 0; i < howManyTimes; i++) { digitalWrite(whatPin, HIGH); delay(milliSecs/2); digitalWrite(whatPin, LOW); delay(milliSecs/2); } }

Das könnte Ihnen auch gefallen