Primeros pasos con microcontroladores

Hola a todos:

Tengo interés en aprender a programar y realizar pequeños proyectos con microcontroladores.

Me gustaría que alguien me eche una mano para dar los primeros pasos ya que desconozco todo lo referente a modelos, meterial necesario, etc.
Supongo que hay algún kit básico con el que se puede comenzar pero he buscado por internet y entre tanto modelo, producto, etc., no tengo claro qué es lo mejor.

Alguien me puede echar una mano ?


Gracias a todos de antemano y saludos
 
Te recomendaría comprarte un Arduino UNO de algún proveedor chino, lo consigues por menos de 5 Euros, incluyendo flete y ver en Youtube algún tutorial sobre como aprender con el UNO. Inviertes muy poco dinero y tienes una herramienta sencilla de usar y que ofrece muchísimo para aprender!
 
Hola:

Ante todo gracias por la rápida respuesta.
Arduino es algo con lo que ya he probado, pero mi intención es adentrarme en el mundo de los microcontroladores ya que cuando quieres desarrollar un producto que utilice un micro, no es fácil acoplar un arduino, ya que por pequeño que sea, es muy grande.

He estado mirando en internet y he visto que hay muchas arquitecturas. Entre ellaas:

PIC
dsPIC
PIC32
AVR
8051
FT90x
ARM
... y supongo que habrá muchas más.

Como decía al principio de la consulta, me gustaría comenzar con algo y dado que no tengo ni idea pero ya he trabajado con arduino, me gustaría que me echen una mano.


Gracias de nuevo
Un saludo
 
Última edición:
Pues ya que tienes arduinos, puentea la capa arduino y úsalos como AVR con las herramientas de Atmel. Así ahorras hardware.

 
Hola:

Perdona mi ignorancia pero no entiendo que quieres decir con puentea la capa de arduino, úsalos como AVR....

Por favor, me puedes aclarar un poco más ?

Gracias
 
Lo que te proponen es que sí en verdad te interesa saber sobre microcontroladores y que derivado que ya cuentas con un arduino, te "olvides" que es un arduino y que ahora lo veas como lo que en verdad es:

Un microcontrolador ATMEL AVR con algo extra de hardware y que del sitio te informes, descargues las herramientas de desarrollo que corresponden al microcontrolador que trae tu arduino (probablemente un ATMega 328) y comienzas a programar desde ceros el microcontrolador, ya sea en lenguaje ensamblador o lenguaje C. Finalmente ya tu mismo determinaras si son grandes o pequeños para tal o cual tarea...lo importante es que logres en realidad dimensionar el mundo de los microcontroladores.


Saludos
 
OK. Entendido.

Mi única duda es: si el microcontrolador ya está montado sobre laplaca con todos los componentes adicionales,

¿ cómo se trabaja con él ?
¿ como se le carga el programa binario ?
¿ se pueden utilizar los interfaces que ya trae de entradas salidas, buses, etc?

Gracias
 
Mis respuestas a tus preguntas:

¿ cómo se trabaja con él ? >>>> con el ATMEL Studio
¿ como se le carga el programa binario ? >>>> AVRDUDE(quizás la mejor opción)
¿ se pueden utilizar los interfaces que ya trae de entradas salidas, buses, etc? SI

Sin Embargo lo mas importante es leer y dar el paso tu mismo.

Suerte.
 
Tenes que leer mucho, cada fabricante en su sitio da toneladas de información para comenzar con sus productos y provee lo necesario para empezar, tanto Microchip, con sus Pic y ahora con los atmel y así cada plataforma, tienen placas de desarrollo con apoyo directo, hay todo un universo de micros, por ejemplo esta Frescale (comprada por NXP), estan los Rabit, micros de Intel, micros de ST, ahora los ARM Cortex(orientados a móviles, tablets y semejantes)
Otro fabricante es Texas Instruments con su MPS430 que ofrece una placa de desarrollo a muy bajo costo y mucho apoyo en su página.
No obstante los más populares son los PIC de Microchip y los AVR de Atmel(ahora comprada por Microchip) que ofrecen de todo para poder prácticar con ellos, incluso hay mucho apoyo de terceros por lo que serian los ideales para empezar, hay libros, y muchos lugares y proyectos en la red.
Muchos fabricantes ofrecen muestras grátis de algunos de sus productos
 
Lo bueno es que Arduino te da mucho trabajo "predigerido", lo malo es que limita en bastantes cosas.
Siempre puedes trastear en el modo AVR y cuando te canses volver a cargar el bootloader de arduino.

Se graban por el conector ICSP del arduino, hay unos adaptadores porque el conector oficial y los programadores oficiales de Atmel usan un conector de 10 pines
 
Hola, si quieres incursionar en microcontroladores, pues
comienza con alguno de ellos, y luego escalas en gama.
Microchip, tiene una amplia variedad, empezando por el 12F629, 16F819 y el 16F877A.
 
Última edición:
hola
OK.
Agrdezco la explicación tan detallada.

Es algo más que lo que sabía hasta ahora para poder comenzar.

Gracias de nuevo
Bueno ., si usas arduino (o usaste arduino) el error comun es el compilador usado​
En el caso del AVRstudio lo mejor es usar la ultima vercion oficial​
Lo otro importante ., es que te hagas mienbro del foro www.avrfreaks.net https://community.atmel.com
Tienes la ventaja (actualmente)., es que tienes acceso gratuito a informacion ., ejemplos de codigos usados ., base de datos ., referencia cruzadas ., tanto de MICROCHIP=PIC y ATMEL=ATMEGA​
Aca te pongo el LINK del ultimo compilador de atmel http://studio.download.atmel.com/7.0.1417/as-installer-7.0.1417-web.exe ., que al instalar y ejecutar ., te da la opcion de inscribirte ., en el foro que mas te guste​
Tambien un PDF ., guia de la instalacion (lamentablemente en ingles ., pero se puede traducir) http://studio.download.atmel.com/7.0.1417/as-installer-7.0.1417-readme.pdf
Tambien tenes foros sobre ARM ., que algunos fabrica ATMEL​
Pero creo ., que es lo mas indicado ., si queres usar otros micros que no trae el arduino ., pudes compilar en ASM ., C y C++(arduino)​
 
Muy buenas a todos... y pues de la misma forma que todos, estoy entrando de lleno con el mundo de los microcontroladores y mi pregunta va por lo siguiente.

Al momento de gestionar puertos... ya sea de accesando a la memoria RAM o bien accesando con las sentencias predefinidas del compilador... cual es la importancia de ambos :rolleyes::rolleyes::rolleyes::rolleyes: y cuando tendria que utilizar bien el uno o el otro.

Agradeceria su colaboracion...
 
Si accedes a los puertos accedes a los puertos.
Si accedes a la RAM, accedes a la RAM
Son dos cosas diferentes.
Dependerá del microcontrolador el como se hace una cosa u otra.
Depende de si es Harvard o Von Newman.
Si es Von Newman, en ciertas direcciones de "memoria" se accede a los puertos, pero es que en realidad la dirección 3F7 , por decir una, es un puerto y no es memoria. Se usan las mismas instrucciones que si fuese memoria, pero la 3F7 es un puerto porque el fabricante así lo quiso.
Si es Harvard depende de cuanto Harvard sea porque hay cosas intermedias entre ambas arquitecturas, pero en principio, la instrucción de acceder a puertos no es la misma que la de acceder a memoria y no es la misma que la de leer en la rom. Aunque estamos en lo mismo, el puerto con dirección 2A es uno y el puerto con dirección 3F es otro y así son porque el fabricante así lo quiso.

En el caso de un microprocesador eres tu quien decide cuanta memoria tiene y en que direcciones se decodifica y también eres tu quien decide que puertos tiene y donde se decodifican. En un microcontrolador es el fabricante del dispositivo el que ajusta esos parámetros, y tu tan solo elijes que modelo compras entre los que te ofrecen.
 
Bueno si es cierto eso pero cuando tienes un compilador más alto pues ya ni se nota es decir.
Lo programas como un programa en una PC.

Para ser RAM son las variables del programa ejemplo:
Unsigned Char variable [100];

Ahí asigne una reserva de 100 bytes en RAM pero si quiero asignar un número no conocido puedes usar un apuntador
Unsigned Char *variable;
Variable medirá un valor no fijo limitado por la cantidad de RAM

Ahora quiero variables fijas que no consuman RAM estás son completamente fijas pero no se pueden modificar , se usan para tablas de caracteres o para asignar un valor .

Ejemplo:
Const Char valor=3;
Const Char letra='A';
Estás variables no consumen RAM al momento de compilar pero si consumen ROM.

Ahora una variable en RAM si puede reflejarse en un puerto.

Ejemplo:

Char binario=0b01010011;

Y podemos reflejar en puerto el dato:

PortB(binario);

El puerto ahora contiene el dato de la variable.
 
Temo que tipitipi está yendo por la ruta que acaba de frustrar muchos con interés de meterse con microcontroladores. Los posts dados a mi opinión personal, ningún animo de ofensa, indican que el amigo tiene mucho campo por aprender. A la rápida me fui a YouTube y busqué tutoriales para Arduino. No me limité a tales en español y me encontré con esta serie de tutoriales que me parecen realmente dar la información y los experimentos de forma que me gustó.
 
bueno yo al menos lo veo así:

si sabes o tienes conocimiento de lenguaje C puedes ocupar sin problemas un compilador C , si te gusta meterte a registros o funciones muy a nivel profundo pues a meterte con los nemonicos en ensamblador de un micro, por ejemplo:
yo tenia el freescale mas bien tengo por ahí uno un freescale Kwistick y se programaba con el Code Warrior en C y para usar el ADC y los push button táctiles en modo compilador C no estaba permitido por que era la versión estudiantil.

pero si se podía hacer debug de un programa precargado del freescale entonces había que revisar como se movían los registros en ensamblador del registro ADC.

se metía un poquito de ASM y vuala funciono, pero eso es teniendo un poquito de conocimiento de como funciona el micro por dentro y un poquito de curiosidad.

en cambio Arduino esta mas quemado que el chicharrón y hay gente que hizo algo parecido o similar y nada más es copiar y pegar eso ya no lo llamo aprender es como esos carniceros repara celulares solo cambian y ya.
 
Atrás
Arriba