jueves, 24 de mayo de 2012
lunes, 7 de mayo de 2012
Proyecto Integrador PIC Variador de Velocidad de un Motor PWM
Material:
El material que se utilizo para realizar esta práctica es el siguiente
- 1 Transistor TIP 110
- 2 Pulsadores
- 1 Diodo Rectificador 1N4007
- 1 Motor de juguete DC
- 1 Capacitor cerámico de 0,1uF
- 3 Resistencias de 4.7 KΩ
- 1 Resistencia de 330 Ω
- 1 LED
- 1 ProtoBoard
- Jumpers o Cables de Interconexión
- Fuente de Energía de 5V
Diagrama de circuito:
Este fue el diagrama que se realizo, una vez que tenemos el diagrama podemos proceder al armador del mismo. Cabe aclarar que el pin 6 es el que va a la base del TIP110 el emisor a la tierra.
Circuito en Fritzing
Este es un diagrama del circuito ya armado en Fritzing solo hay que tomar en cuenta que el PIC que se coloco en el diagrama no es el que se uso realmente ya que Fritzing no cuenta con el 16F628A pero los pines representan las mismas posiciones que los usados realmente.
Fotos reales del circuito ya armado
Como Funciona
Al momento de conectar el circuito a corriente el led conectado al pin 9 enciende y apaga para confirmar que todo está bien, el motor arranca de inicio en una velocidad media o frecuencia de 125 si pulsamos el botón para subir la velocidad (PIN7) la velocidad aumenta por cada pulsación en 25 hasta llegar al límite de 255, de igual forma con el otro pulsador (PIN8) podemos reducir la velocidad en intervalos de 25. Lo que sucede es que al momento de pulsar los botones el circuito se cierra enviando un 0 al pic que al momento de recibirlos hace que ocurra el cambio de velocidad. El transistor TIP 110 nos ayuda a poder amplificar la señal del pic para que sea suficiente para poder controlar un motor DC, el TIP110 es capaz de manejar un motor de hasta 100V DC a 8 Amperios.
Programación del PIC
El código fue realizado en basic y se utilizo microcode para compilar, el código es el siguiente:
Cargando el programa al pic
Una vez que terminamos de codificar con ayuda de algún programa compilador en este caso yo utilice MicroCode Studio para compilar y PICBasic Pro para generar el archivo .hex, se puede utilizar solamente el PICBasic pro para ambas cosas pero ya es preferencia de cada quien el compilador que se quiera utilizar. La mayoría de estas herramientas y otras de relación se pueden conseguir oficialmente en http://melabs.com/
MicroCode Studio
PicBasic Pro
Para cargar el archivo .hex al Pic necesitamos 2 cosas un programador de pic en mi caso use un programador de puerto serial y icprog, ya tengo una entrada anterior de esto así que solo dejo la liga ahí viene la explicación completa.
http://computoint.blogspot.mx/2012/04/generando-un-programa-y-cargando-al-pic.html
Resultados:
Por último dejo un video del circuito funcionando ya después de su programación.
Fuentes:
http://rcmcomputointegrado.blogspot.mx/
http://synnick.blogspot.mx/search/label/Lab%20Computo%20Integrado
http://compuinteg.blogspot.mx/
http://pepgonzalez.blogspot.mx/search/label/labo%20integrado
http://avecomputointe.blogspot.mx/
http://triana-integrado.blogspot.mx/
http://es.scribd.com/doc/63742141/21/APRENDIENDO-A-PROGRAMAR-EL-PIC16F628A-CON-MICROCODE
lunes, 30 de abril de 2012
Hacer funcionar un motor de CD con Arduino
Este es un microcontrolador Atmega328, el cual es utilizado en la mayoría de los Arduinos actuales cada uno de sus pines es capaz de proporcionar 20ma y todos sus pines combinados 50ma. Entonces como podemos hacer funcionar algún dispositivo que ocupe más corriente.Existen varias opciones por ejemplo para el caso de los motores podemos adquirir un Shield de Motores con el cual podremos conectar de forma directa el motor al arduino pero incluso el shield está limitado a una cierta cantidad de corriente o puede que no exista un shield especifico para algún dispositivo que queramos controlar, para estos casos tendremos que amplificar la señal que proporciona el arduino, esto lo podemos lograr utilizando un transistor, un transistor es un dispositivo eléctrico semiconductor que cumple funciones de amplificador, oscilador, conmutador o rectificador.
Motor Shield:
Ya que sabemos todo esto podemos pasar a realizar el circuito.El material que utilizaremos es el siguiente:
Arduino UNO
Protoboard
Cables Jumpers Macho-Macho
Transistor BC337-25
2 Resistencias de 1KΩ
Motor DC
El código que utilice es el siguiente:El código no tiene gran ciencia incluso es el mismo de encender y apagar un LED reciclado en este caso lo único que modifique fue los tiempos de encendido y de apagado.Imágenes reales del circuito
Vídeo del circuito funcionando
Fuentes:http://es.wikipedia.org/wiki/Transistor
http://www.youtube.com/watch?v=cEz1i5xzGEE&feature=fvst
viernes, 27 de abril de 2012
Bluetooth Shield
- Compatible con Arduino y Seeeduino
- 10 metros de alcance
- Interfaz UART con Velocidad de transmicion programable
- Antena PCB incorporada
martes, 24 de abril de 2012
Memoria disponible pics y arduinos
Ahora plantemos la diferencia entre una PC y un microcontrolador.En un microcontrolador es obvio que no existe un dispositivo de gran capacidad de almacenamiento como un disco duro, por otra parte un microcontrolador se enfoca a cumplir con una sola tarea ya que su memoria solo alcanza para almacenar un único programa de trabajo.
Hay que tomar en cuenta que todos los microcontroladores son diferentes, la aplicación y utilización de los mismos puede varias según sea el uso que le queremos dar. Por lo pronto explicare los 5 tipos de memoria no volátil con la que cuentan la mayoría de los micros disponibles en el mercado.
1. Rom con mascara: Rom con mascara es un tipo de memoria no volatil del tipo solo lectura la cual queda establecida a la hora de fabricar el micro. Máscara viene de la forma cómo se fabrican los circuitos integrados. Estos se fabrican en obleas que contienen varias decenas de chips. Estas obleas se obtienen a partir de procesos fotoquímicos, donde se impregnan capas de silicio y oxido de silicio, y según convenga, se erosionan al exponerlos a la luz. Como no todos los puntos han de ser erosionados, se sitúa entre la luz y la oblea una máscara con agujeros, de manera que donde deba incidir la luz, esta pasará. Debido al alto costo de la fabricación solo es aconsejable su producción cuando se precisan de varias cantidades de dichas unidades.
2. OTP: OTP es un tipo de memoria no volatil de solo lectura OTP significa One Time Programmable lo que quiere decir que solo se puede programar 1 vez. La memoria OTP es recomendable solo para construccion de prototipos y series muy pequeñas.
3. EPROM: EPROM significa Erasable Programmable Read OnIy Memory lo que significa que puede borrarse y grabarse las veces que se desee con ayuda de un grabador de PC. Si, posteriormente, se desea borrar el contenido, disponen de una ventana de cristal en su superficie por la que se somete a la EPROM a rayos ultravioleta durante varios minutos. Las cápsulas son de material cerámico y son más caros que los microcontroladores con memoria OTP que están hechos con material plástico.
4. EEPROM: Electrical Erasable Programmable Read OnIy Memory esta memoria es parecida a la EPROM la diferencia es que tanto la programación como el borrado se realizan electricamente desde un grabador conectado a la PC.
- No hay mucha SRAM disponible
- Si se acaba la SRAM el programa fallara
http://r-luis.xbot.es/pic1/pic03.html
http://perso.wanadoo.es/pictob/microcr.htm
http://arduino.cc/es/Tutorial/Memory
Amplificar señal de pines de Arduino(Transistor)
Un transistor es un aparato que funciona a base de un dispositivo semiconductor que cuenta con tres terminales, los que son utilizados como amplificador e interruptor. Una pequeña corriente eléctrica, que es aplicada a uno de los terminales, logra controlar la corriente entre los dos terminales.
Transistores de efecto de campo: Este tipo de transistores, en la actualidad se encuentran en múltiples aparatos de diversos usos, como calculadoras, radios, televisores, videos, grabadoras, reproductores de mp3, celulares
jueves, 5 de abril de 2012
Estableciendo comunicación entre el Arduino y CPU
Pero primero que nada algunos conceptos que son importantes en este ejemplo ya que es importante conocerlos.
¿Que es una librería de software?
Una librería de software es un conjunto de procesos los cuales están todos relacionados. Por ejemplo si queremos controlar un motor o alguna otra cosa lo más conveniente sería buscar una librería sobre lo que estamos haciendo, de esta forma nos ahorramos el trabajo de estar investigando el funcionamiento del motor. En este ejemplo la librería que usare será la serial ya que esta permite que el Arduino sea capaz de enviar datos a la computadora.
¿Que es Serial?
Serial es la transmisión de bits 1 a la vez, por ejemplo en este ejemplo lo que hare será enviar y recibir bits entre la computadora y el Arduino, explicándolo de manera más sencilla se trata básicamente de mandar y recibir 0 y 1.
El material que utilizare es el siguiente:
Arduino junto con el cable USB
Primero que nada hay que conectar el Arduino con la computadora para ya tenerlo listo para realizar la práctica.
Después abrimos el ide de Arduino y creamos un nuevo sketch con el nombre de hola mundo File/New y empezamos a escribir el código.
El código que yo utilice es el siguiente:
Para utilizar la libreria Serial como podemos ver en el codigo y como cualquier otra librería que usemos en programacion basta con escribir el nombre de la libreria un punto y la acción que querramos usar de dicha libreria. Lo primero que se hizo fue el inicio de la comunicación entre el arduino y la computadora con una velocidad de transmision de 9600 bites por segundo. Despues embes de utilizar print line como la libreria serial contiene una funcion de impresión mas corta utilizamos println imprimimos hola mundo y por ultimo ponemos un ciclo sin fin solamente para poder probar el programa ya que sino no podriamos probarlo.
Compilamos el código, lo cargamos al arduino y podemos verlo funcionar abriendo el monitor serial en Tools/Serial Monitor o con Ctrl+Shift+M y nos deberia aparecer la impresion en el monitor como en la siguiente foto.
Si no contamos con un arduino que se reinicie solo, reiniciandolo manualmente podremos lograr que vuelva a enviarse datos.
Fuentes:
http://www.ladyada.net/learn/arduino/lesson4.html