# Quiero aprender a usar los microcontroladores



## tonystark (Ago 26, 2008)

hola todos, este  es mi primer post, espero que me salga.

lo que pasa es que yo no se nada de electronica, para  ser sincero metomo 2 dias resolver el problema de los nanofaradios parael registro porque lo hice honestamente apeast que la respuestae sta en intenet pero el punto es que *eh iverstigado acerca de los picaxe y para que les digo me volvi a enamorar, entonces quiero saber que es lo primero que tengo que aprender para manejarlos bien, donde puedo comrarlos 
que tanto de electronica debo saber, donde lo puedo aprender y que otras opciones hay ya que he escuchado de in tal pic ensambe o algo asi.* 

sin mas por el momento estodo 
ojala puedan ayudarme porque esto de la elactronica se ve que esta super chingon


----------



## Chico3001 (Ago 26, 2008)

Ok, no quiero desanimarte pero no va a ser facil, aun asi te recomiendo mucho que lo intentes por que si lo logras te vas a enamorar aun mas de la electronica

Primeramente usar microcontroladores o microprocesadores es de las ultimas etapas en electronica debido a que no es solo conectar y usar, tienes que saber programacion, como funcionan internamente, como conectarlos y que es lo que es lo que puedes hacer con ellos... 

Te recomendaria que antes de pensar en un curso de microcontroladores comenzaras uno de electronica basica, ya que vas a tener que usar muchos componentes en conjunto con un microcontrolador como fuentes de alimentacion, resistencias, capacitores, leds, displays y otras cosas.. y asi puedes entender lo que vas haciendo y no solo conectar y ver que enciendan los foquitos como indican las instrucciones

Veo que vives en Mexico, si vives en la Ciudad de Mexico te puedes dar una vuelta por la calle de Republica del Salvador, desde el eje central hasta republica de Bolivar hay casas de electronica donde puedes encontrar kits para armar, cursos y partes para expermientar, pero las 2 mas grandes y que te recomiendo son Steren y AG electronica, y en el caso de los kits estan Distele, Oli kits, y una casa en el numero 26 que no recuerdo su nombre

De entrada para comenzar a expermientar con microcontroladores necesitas:

1.- Una computadora para crear el programa que va a ejecutar
2.- Un protoboard para hacer las conexiones rapidamente o una tablilla o "Kit" de expermentacion donde ya tienes todo soldado y listo para usarse
3.- Una fuente de alimentacion o baterias para encender el equipo
4.- Un programador para descargar el programa de la computadora a tu kit de experimentacion, pero algunos kits ya cuentan con el programador integrado y solo necesitas un cable para comunicarte con la computadora
5.- Paciencia y ganas

En el caso de los PICAXE no los he usado, pero viendo la pagina ya cuentan con kits de experimentacion para que conectes a la computadora y los comiences a usar.. solo es cuestion que veas el mas acorde a tus necesidades, personalmente te recomendaria uno de 18 o 28 patitas por que al ser mas grandes puedes hacer mas cosas con ellos


----------



## tonystark (Ago 26, 2008)

muchisimas *gracias por tu apollo *encerio, y disculpa el abuso pero no sabes de alguna pagina o revista o libro que pueda consultar para comenzar con la electronica basica 
 antes de adquirir mi primer kit?

 de antemano gracias


----------



## Chico3001 (Ago 27, 2008)

En internet hay muchos y muy variados.. tambien te recomendaria que compraras uno multimedia para PC o en videocassete

pero aqui hay uno que me gusto 

http://www.monografias.com/trabajos38/electronica-basica/electronica-basica.shtml


----------



## mabauti (Ago 27, 2008)

para aprender , no hay nada como la practica: comienza con un sencillo contador :

https://www.forosdeelectronica.com/f24/contar-pulsos-determinado-tiempo-5166/


----------



## abrancho (Ago 28, 2008)

hola tonystark veo que tenes muchas ganas de aprender de los microcontroladores  y son buenisimos podes hacer muchas cosas importantes con eso pero bueno hace tiempo hice un proyecto  con microcontroladores en realidad un brazo robótico pero usamos los microcontroladores pic de microchip si te animas a estudiarlos te puedo ayudar son faciles de programar ademas su grabador es sencillo de construir bueno saludos y suerte


----------



## tonystark (Ago 29, 2008)

muchisimas  gracias a todos por sus comentarios 

*-mabauti*: el contador de pulsos esta buenisimo si no me equivoco es uno de esos microcontroladores pic, no?   le entiendo  pero como que algunas cosas todavia las ignoro parece que me hayudo un poco la información de *chico3001*

y amigo *abrancho* si me gustaria estudiarlos, espero no sea mucha molestia perdirte un poco de ayuda para comenzar a aprender


----------



## nachost (Sep 1, 2008)

hola 
 el tema de los microcontroladores esta muy bueno pero cuesta bastante programar. yo estoy estudiando esto en la escuela y se me complica mucho con c y mas con assembler. pero una vez que los aprendes a usar no usas mas compuertas ni contadores ni otro chips. la verdad es que te ahorra tiempo y espacio ademas de plata. 

   un saludo.-
 nacho


----------



## abrancho (Sep 2, 2008)

hola tonystark  bueno para enpesar  pegale una leidita a esta web http://www.monografias.com/trabajos18/descripcion-pic/descripcion-pic.shtml   lo que no entiendas preguntas nomas    saludos y suerte


----------



## minowar (Sep 3, 2008)

Estimado Tony Stark:

Te envío un cordial saludo y a la vez te recomiendo que leas y estudies el libro de Sistemas Digitales: Principios y Aplicaciones de Ronald J. Tocci. En 6 meses completarás el libro y tendrás amplificadoras bases acerca de la Electrónica Digital.

En segundo lugar, te aconsejo que después de que termines ese libro, también leas y estudies el siguiente de Ronald J. Tocci, Microprocesadores y Microcomputadiras: Hardware y Software. En otros 6 meses te convertirás en un hacha en el uso de microcontroladores y podrás utilizar cualquier marca, incluyendo los PICs y no solamente los Motorola, tocados en el libro.

Te indico que hay versiones en español, pero las versiones en inglés de esos libros son las más recientes.

Bytes


----------



## Andres Cuenca (Sep 3, 2008)

En casa también tenemos un buen material:

https://www.forosdeelectronica.com/f24/curso-completo-microcontroladores-pic-10113/

Saludos.


----------



## tonystark (Sep 4, 2008)

discuplen que tarde un poco en revisar mi correo pero muchisimas gracias a todos por su apoyo 
*abrancho* gracias por ese link esta super chi....on el proyecto  me que de pequeño cuando lo vi 
-mi querido *minowar *con lo que me gusta leer creeme que de inmediato inicio la busqueda de estos libros gracias 
-gracias tambien *Li-ion* el curso esta buenisimo me he que dado sin parabras 
de vuevo muchas gracias a todos


----------



## ivan147007 (Mar 20, 2010)

Muy bueno el tutorial los felicito esto me serviraparala construccion de mi brazo robot


----------



## GomezF (Mar 20, 2010)

Excelente post, mucha información y muy útil.


----------



## Nautylus (Sep 29, 2015)

Hola, soy nuevo y me interesaría aprender sobre este campo de la automatización y control.
La idea es saber cuales son los microprocesadores que se usan hoy en día, y cual es la forma de aprender con ejemplos simples... me agobia mucha teoría  , por lo que me gusta meter mano (Por feo que suene jeje ) Y aprender practicando, partiendo desde lo sencillo para ir escalón a escalón hasta llegar a cosas mas complejas.
Según tengo entendido, los microcontroladores PIC nunca han tenido aplicaciones serias en la industria, y mas bien son hobbistas (como Arduino). Por ello es que prefiero centrarme en procesadores (acepto criticas). Esta idea me la dio un profe de automatización de la UTN FRSR (estudio ing electromecánica), por lo que no es algo personal ni de experiencia, es mas nunca he usado directamente un PIC, pero los he visto funcionar, cumpliendo su cometido jeje.
Cualquier ayudita se agradece . Tengo algo de bibliografía (Schaum ).


----------



## claudio230 (Sep 29, 2015)

a ver si puedo ayudar microprocesadores son los que tienen en sus placas madres las PC, en algun momento se hacian proyectos con el Z80 o el 8085 pero hoy creo que se hace poco y nada con eso, luego están los microcontroladores, PIC u otros, hay mucha informacion en la web, los esquemas son simples solo que por mas que no te guste tendras que aprender a programar, ya sea en asembler, en C, con niple, etc. 
Y mas aca esta arduino que es piola por que viene la placa y todos sus perifericos y por ultimo esta raspberry que es como una mini pc y creo que usa linux


----------



## Nuyel (Sep 29, 2015)

Dices que los PICs no tienen aplicaciones serias en la industria, bueno, en realidad, la industria actual dado a sus requerimientos y costos, se tiende a usar mas otras arquitecturas en lugar de los PIC de 8 bits que son los que conocen la mayoría. No por que no sean buenos (en parte) si no por que lo mismo que cuesta un PIC de bajo rendimiento puedes gastar por un ARM que además podrá dar mejor rendimiento a tu aplicación.

Por ejemplo, los ARM Cortex-M3 son usados en control de motores, los Cortex-M4 igual pero sobre todo cuando se requieren realizar operaciones mas complicadas, la serie Cortex-Rx se emplean en operaciones de tiempo real donde la respuesta a información externa debe darse con la mayor rapidez posible. De ahi ya siguen los Cortex-Ax que son procesadores de aplicación y son sistemas de computo completos, los Smart Phones usan procesadores basados en esta arquitectura.

Ahora, un microprocesador es solo la unidad de procesamiento, los microcontroladores también tienen eso, pero estos también integran la RAM, memoria de programa y periféricos de comunicación que un microprocesador no tiene por si solo.

Cuando se habla de microprocesadores, generalmente se corre un sistema operativo y dentro de este la aplicación. Dos tarjetas que son comunes son la Raspberry Pi y la BeagleBone, con ellas el asunto es que al correr un sistema operativo, la programación va orientada al lenguaje y sistema que lleven.


----------



## Nautylus (Sep 29, 2015)

Gracias por los comentarios. Igual se desvirtuo un poco el tema de entrada. Aclaro yo no estoy criticando PICs ni arduinos, etc, solo quiero información sobre automatas.
Según tengo entendido, por ejemplo un PLC tiene un procesador. Por ahí yo tenga una mala idea de para que se usa un procesador.
Por ejemplo si yo tuviera un mando cualquiera (entendiéndose por mando un equipo de potencia que ejecuta instrucciones de una PC por ejemplo), que tiene entradas y salidas tanto analógicas como digitales, y se comunica con una PC de forma bidireccional, con una comunicación serial por ejemplo, ¿que seria lo ideal para realizar dicha acción?, ¿y que lo mas económico?
Otro ejemplo.. tengo que automatizar una máquina de termosellado, que controla temperaturas, pesos, presencias, tiempos, etc.. en definitiva muchos sensores, control PID de la temperatura de sellado, etc. Y quiero hacerlo con algo mas barato que un PLC, que incluso sea SCADABLE, y que me comunique con protocolo Modbus RTU los estados de los diferentes sensores. No seria muchisima información para procesar, pero tampoco sería para trabajar con logica combinacional y CI, o si es mas barato si, puede ser.
No se si me explico.
Saludos!


----------



## TRILO-BYTE (Sep 29, 2015)

es cierto aunque realmente hoy en dia ya casi no tocas el software real , el que hace mover al CPU , mas bien son tareas pequeñas en lenguajes simples como python en el caso de raspberry pi.

por ejemplo en el Nintendo DS habia mucho homebrew no programaban en C directamente mas bien lo hacian en python y en LUA, como hoy en dia usan el APPinventor de Android , programar programar ya no es es mas bien edicion de codigo *preensamblado*.

si es verdad que los *pic y arduinos* no se usan en la industria pero para aprender son buenos almenos eso creo.

aprender hacer un CPU con su ram, rom y su PIO es tan simple como complicado que no es imposible
lo dificil es andar grabando la ROM de programa a cada rato si no funciono el prgrama hay que sacar la ROM y volver a grabar.

hace 2 años arme un sistema minimo con un Z80 con 8kb en ram ,4kb en rom y un PIO 82c55 de 3 puertos de 8 bits corriendo a 455khz

no era potente y tenia que usar un simulador y la tabla de nemonicos a la mano pues no es tan facililto de usar.

*¿aprendizaje?*

como ya mencione un sistema basado en *microprocesador *es complejo y si bien existieron dispositivos comerciales con ellos , es muy tardado desarrollar el hardware como el sfotware.

un sistema preensamblado como raspberrypi tambien es bueno , lo malo que para prender un led y un rele para fabricar un prototipo que vamos a vender pues tampoco se presta mucho.

aprender con un micro de 8 bits que si lo pones alrevez y saca humo o reescribimos mas de 1000 veces en 1 mes , pues yo creo que vale la pena aprender en alguno que podemos encontrar en una tienda de electronica que si bien podemos cometer errores en algo que no es tan caro ni complicado .

¿lenguajes?
de alto nivel porsupuesto

si bien los lenguajes mas comunes hoy en dia es el C y verciones clonicas como las del arduino, es mejor aprender en un lenguaje solido.

¿y en ASM?

pues si uno tiene la facilidad de programacion , desarrollar un algoritmo , el lenguaje no es significativo
solo hay que desarrollar un algoritmo que facilmente se puede traducir a ASM ,basic, fortran ,python ,etc.

si te da la curiosidad de fabricar tu propio sistema minimo pues adelante nadie te detiene solo que si hay que invertirle mucho tiempo en armar el hardware y ver que cada parte funcione correctamente antes de meter el software.

en un puesto de chacharas encontre un letrero matricial de leds con un Z80 , una RAM hy6264 y muchas compuertas.

pues no valia la pena meterse en modificar el software pues tendria que estudiar como funcionaba el hardware.

lo que hise fue algo de ingenieria inversa y meter un *conocido, choteado, comun y vulgar *pic18f2550.

un letrero colorcells cc784


----------



## Nautylus (Sep 29, 2015)

TRILO-BYTE dijo:
			
		

> es cierto aunque realmente hoy en dia ya casi no tocas el software real , el que hace mover al CPU , mas bien son tareas pequeñas en lenguajes simples como python en el caso de raspberry pi.
> 
> 
> *¿aprendizaje?*
> ...



Gracias por el comentario TRILO-BYTE. ¿Entonces si hoy en día no se usan procesadores en la industria, que es lo que se utiliza? Por ejemplo, que es lo que controla a un torno de 4 ejes CNC, porque de verdad no tengo idea.
Gracias!


----------



## Nuyel (Sep 29, 2015)

Depende de la tarea y de los requerimientos, TI lo expone en una nota de aplicación sobre PLC, básicamente es una CPU con sus periféricos de entrada y salida con las protecciones pertinentes. El CPU puede ser desde algo tan simple como un MSP430 que es un microcontrolador o un ARM Cortex-A8 que es un procesador. Todo depende de que es lo que hará, pero no significa que un MCU no pueda hacer la tarea, la única diferencia del PLC es que es de propósito general mientras que una solución con un MCU y periféricos específicos es para una tarea especifica.

Yo en un proyecto para la materia de automatización industrial cree lo que llame uPLC, usaba un PIC16F819, pero implementaba entradas aisladas, medición de corriente de 4-20mA y salida a relevadores, use el chip por programarlo con LDMicro y asi emplear el Ladder que nos ensenaron en la clase. Claro, no podia hacer gran cosa, pero si podia usar un sensor de temperatura 4-20mA y encender los ventiladores.

En lo que mas se usa es la arquitectura de ARM, ellos no fabrican el chip, solo la arquitectura, los chips son fabricados por diversas empresas como por ejemplo para los microcontroladores esta NXP con la serie LPC, STMicroelectronics con los SMT32, Texas Instruments con Stellaris, Tiva C y Hercules (que es Cortex-R4 para aplicaciones de seguridad critica donde no se puede fallar), Freescale con la serie Kinetis, Atmel también los tiene en su serie SMART, inclusive son utilizados en el Arduino Zero (Cortex-M0+) y DUE (Cortex-M3).

Si quieres empezar puedes hacerlo con ellos, en general son escalables, por ejemplo, el Cortex-M0+ esta enfocado en bajo consumo, pero los M3 tienen todas las funcionalidades con mayor desempeño y la M4 extiende el set de instrucciones con otras para el proceso digital de señales.


----------



## TRILO-BYTE (Sep 29, 2015)

es que no es exactamente algo especifico
digamos un ARM o un HC11 , atmega8

no es muy variado tan variado que encuentras en equipos modernos microcontroladores obsoletos , microprocesadores obsoletos, microcontroladores NO documentados , microcontroladores customizados.

en la industria industria no usan microcontroladores mas bien usan PLC y son igualmente variados.

seria buena idea que practiques C y C++ en una PC y si eres bueno programando los programas pueden correr en un obsoleto 386 o en cualquier microcontrolador.

hay quienes aprenden a usar el C como una navaja suiza a ese modo de programacion le llaman MISRA C es una forma de programacion generica


----------



## ElectroWero (Sep 29, 2015)

Nautylus dijo:
			
		

> Gracias por el comentario TRILO-BYTE. ¿Entonces si hoy en día no se usan procesadores en la industria, que es lo que se utiliza? Por ejemplo, que es lo que controla a un torno de 4 ejes CNC, porque de verdad no tengo idea.
> Gracias!



Esta constituido por software + Hardware por eso es Control numérico computarizado CNC, la unidad de control, que seria una interfaz es controlada por puerto paralelo, USB por PC, PLC o PAC, mas una salida de potencia que serian los drivers para los motores, y su parte mecanica para su desplazamiento en sus 3, 4, 5 o 6 ejes. 

Lo que mas exige una CNC es saber diseñar en CAD tanto en 2D como 3D, vectorizar y comprender el codigo G.

Programar con Matlad para Robótica industrial y procesos industrales es la mejor herramienta.

http://m.monografias.com/trabajos14/manufaccomput/manufaccomput.shtml


----------



## cosmefulanito04 (Sep 29, 2015)

El único consejo que te doy, no se te ocurra a enrroscarte con assembler a esta altura del partido. Si a futuro querés entender bien.... bien... bien... dale para adelante, pero eso en un paso muuuy a posterior.

Para arrancar, hacé lo que dice Trilo, empezá con C y para que te resulte fácil, desde una PC. Luego cuando más o menos tengas claro lo básico, empezá con un micro, si realmente querés meterte con algo útil, arrancá con ARM y olvidate del resto (la curva de aprendizaje pude ser más empinada...); de lo contrario si querés una curva de aprendizaje más tranquila, anda por un micro de 8 bits, yo te recomendaría un 8051 (si puede ser modernito, mejor) o un AVR.


----------



## TRILO-BYTE (Sep 29, 2015)

apoco el 8051 se programa en C ?

yo siento que es un dinosaurio como el 16f84a no creo que dinosaurio es corto mas bien un fosil

si es verdad yo aprendi C para PC y en un laboratorio hacia todo el control de motores a pasos ,etc. con el puerto paralelo , aveces en C con borland C "no sabia usar visual en ese entonces" y en labview 
¿por que en C de borland?
pues por que algunos espectroscopios se conectaban a maquinas bien viejas unas eran 486 
otras eran lentium 2 con suerte lentium 3.

y las maquinas que tenian labview eran las mas potentes de lentium 3 a pentim 4.

hasta que me canse de las targetas GPIB y sus VISA del labview cuando empeze a mudarme a los *microcontroladores*, ahi me di cuenta que mis estudios en C eran algo solidos y endebles 

la idea es que aveces puedes hacer uso nulo de una PC o el uso nulo de un microcontrolador.

mas bien todo depende de la situacion


----------



## cosmefulanito04 (Sep 29, 2015)

TRILO-BYTE dijo:
			
		

> apoco el 8051 se programa en C ?



Si, con el keil podes programarlo, no sé si hay una versión en gcc, supongo que debe haber.



			
				TRILO-BYTE dijo:
			
		

> yo siento que es un dinosaurio como el 16f84a no creo que dinosaurio es corto mas bien un fosil



El 8051 es viejo, pero una arquitectura muuuy probada, sin ofender, el 16f84 no tiene nada que hacer en esa comparación. 

Sobre C, hoy yo lo encararía en Linux por dos razones:

1- Lenguaje "madre" de ese SO.
2- Le vas a sacar mucho jugo en los últimos sistemas embebidos que vienen con uP ARM Cortex-A'x' (o lo que venga a futuro) que suelen venir con linux.


----------



## TRILO-BYTE (Sep 29, 2015)

yo no me dedico a la prograamacion de microcontroladores , por desgracia en mi facultad de ingenieria no me dan mis papeles por error de dedo de una materia 

mas bien me dedico a la mecanica ajustar motores ,etc.

pero si hago 2 3 proyectitos asi que no soy alguien muy indicado a dar una opinion seria acerca del 8051 

el 16f84a es el caballo de batalla de todas las univercidades y cursos patito.

en pleno siglo 21 hay quienes evangelizan a los estudiantes con el 16f84a y el ASM.

yo diria que si uno quiere aprender la arquitectura de un CPU , hay que aprender primero en un lenguaje de alto nivel con un microcontrolador moderadamente robusto.

despues de haber hecho algo interesante y leer algunas veces las hojas de datos de tal micro

uno se puede aventar a hacer un sistema minimo en un protoboard , hay simuladores de codigo para algunos CPU comunes como son el 6502 o el Z80


----------



## Nautylus (Sep 29, 2015)

Gracias por los coments!! 
ARM parece un procesador muy potente! quizás demasiado, jaja Puede ser que un viejo procesador sea útil, pero puede que los nuevos sean mas versátiles. El ARM que mencionas Nuyel, parece ser bastante económico unos 5 dólares, pero imagino que el hard para programarlo debe ser saladón!! No se que es MCU, no encontré las siglas en san google.
Como dice TRILO-BYTE, vamos a volver a lo básico, programación.. jaja Algo de pascal he visto! Pero ya lo he olvidado!
Y probare con algo a ver que tal! Si llego a algo les comento!
Muchas gracias!


Encontré esto: no parece tan costoso, habría que ver las habilidades básicas para desempeñarse con él! JEJE:

youtube.com/watch?v=y5IOd8jS5w8  

youtube.com/watch?v=Z4ibpXmQNJc      Este me aclara muchas otras cosas!! 

youtube.com/watch?v=ce7wSrENY2Q      Sin dudas es muy potente!!

No me permiten poner links por ser nuevo en el foro...  Alguien con más antigüedad que los ponga!

Saludos!!


----------



## TRILO-BYTE (Sep 30, 2015)

quien sabe alomejor no los sabes poner por que desde que inicie puse links y todo bien


----------



## Nautylus (Sep 30, 2015)

Vamos, soy nuevo acá, pero suelo estar en muuuchos otros!! BBCode básico!! JAJA Slds!!


----------



## Nuyel (Sep 30, 2015)

MCU = Microcontrolador (MicroController Unit), la ventaja de los ARM es que la arquitectura es la misma y la interfaz de programación es el estándar JTAG, algunos programadores incluyen software que pueden programar chips de diferentes empresas.

Por otra parte los fabricantes que mencioné venden kits de desarrollo/evaluación económicos, por ejemplo TI tiene las LaunchPad, NXP tiene las LPCXpresso, Freescale tiene la Freedom (que por cierto estas dos tienen compatibilidad con la forma de Arduino UNO), STMicroelectronics tiene las Nucleo y Discovery, por parte de Atmel, ayudaron a crear el Arduino Zero y este incluye debug, algo que los otros Arduinos no, lo que lo hace una herramienta seria. Todas esas tarjetas son soluciones completas para programar y hacer debug con las herramientas adecuadas, su precio no es caro y para comenzar a introducirse son ideales, yo tengo las LaunchPad y la licencia de TI para el Code Composer Studio está limitada a la tarjeta, en sí, no hay restricciones en las capacidades del software siempre que se use con esa tarjeta. Por otra parte, no tiene la forma del Arduino, pero con Energia puede programarse usando el mismo lenguaje, incluso importarlo al CCStudio y tener toda la capacidad de debug.

El 8051 sigue vigente, TI lo utiliza en algunos chips, por ejemplo el CC2541 es un SoC con transmisor Bluetooth integrado, usa la arquitectura del 8051, es el que usa mi SensorTag.

Te recomiendo que empieces con un MCU antes de dar el salto al Cortex-Ax, incluso se pueden correr pequeños sistemas operativos en tiempo real sobre los MCU, es ideal a tener que lidiar también con al sistema operativo que lleves en el sistema, además sale más barato.


----------



## Nautylus (Sep 30, 2015)

Gracias Nuyel y Trilo-Byte!! Ya estoy muchísimo más orientado!! Saludos!


----------

