12 votos

Arduino vs. Microprocesador vs. Microcontrolador

¿Cuál es la diferencia entre un Arduino, un microprocesador y un microcontrolador? Estoy tratando de determinar qué es lo mejor para operar una pantalla táctil resistiva barata.

22voto

Matt McMinn Puntos 6067

Un microprocesador:

suele encontrarse en un PC de sobremesa o en un portátil y contiene una CPU y una interfaz de memoria externa, además de varios buses de E/S para conectarse al mundo exterior, como SPI, I2C, UART, USB, LCD y otros. Un microprocesador también tendrá un cristal externo para proporcionar un reloj.

La mayoría de los microprocesadores no tienen memoria de sólo lectura en el chip; en su lugar hay un chip externo en la placa base donde se encuentra el código de arranque inicial. En los PC's basados en Intel, esto se llama el Sistema básico de entrada/salida (BIOS) y también contiene rutinas de E/S además del código de arranque inicial. El código de arranque comienza haciendo un Autocomprobación de encendido (POST) y luego busca dónde cargar la siguiente etapa del código de arranque -- desde un disco duro, CD (o en los viejos tiempos) un disquete. Este segundo nivel de arranque carga el sistema operativo. (En algunos sistemas puede haber incluso tres niveles de código de arranque).

Algunos microprocesadores (normalmente los destinados a teléfonos inteligentes y tabletas, que tienen opciones de arranque limitadas) tienen una pequeña cantidad de memoria de sólo lectura que contiene el código de arranque inicial.

Me refiero al código de arranque como de sólo lectura; en realidad, en algunos sistemas, se puede actualizar. Sin embargo esto es bastante arriesgado; si algo va mal el sistema puede dejar de arrancar.

A diferencia de los microcontroladores, que ejecutan sus programas desde la memoria de sólo lectura, tras el arranque los microprocesadores cargan sus programas en la RAM externa y los ejecutan desde allí.

Un microcontrolador:

por otro lado, es un CI independiente de un solo chip que contiene una CPU, una memoria de sólo lectura para almacenar el programa, una RAM para almacenar las variables utilizadas en la ejecución del programa, y varios buses de E/S para conectarse con el mundo exterior, como SPI, I2C, UART y otros. Por sí mismo, no puede ejecutar ningún programa sin ser programado a través de una interfaz externa a un PC. Un microcontrolador también puede necesitar un cristal externo para proporcionar un reloj, aunque algunos tienen un reloj interno.

Algunos microcontroladores (como el PIC32 de Microchip) tienen dos secciones de memoria flash; una para mantener el código de inicialización (arranque) y otra para almacenar la aplicación. Esto facilita la actualización del código de la aplicación en el lugar.

Para tu propósito, deberías usar un microcontrolador, no un microprocesador. Para usar un microcontrolador, tendrías que diseñar tu propia placa o comprar algún tipo de placa de desarrollo.

Un Arduino:

es una placa de este tipo, y contiene un microcontrolador, típicamente un AVR de 8 bits como el ATmega8, ATmega168, ATmega328, ATmega1280 y ATmega2560, además de fuentes de alimentación, cristal y cabezales hembra para interconectar con varias placas periféricas.

Estas tarjetas periféricas se denominan escudos y están diseñadas para apilarse unas sobre otras (hay pines macho en la parte inferior de las placas para conectarse al propio Arduino o a otro shield, y cabezales hembra en la parte superior para aceptar los pines macho de un shield apilado encima).

Algunos ejemplos de escudos son las placas de control de motores, las placas de E/S generales, las placas de relés, las placas Ethernet y los LCD, normalmente con pantalla táctil. Sin embargo, no conozco ninguna pantalla táctil resistiva que se utilice sólo para la detección (sin un LCD).

Además del hardware descrito anteriormente, Arduino también viene con un entorno de desarrollo integrado (IDE) multiplataforma escrito en Java. Fue diseñado para introducir la programación a los artistas y otros principiantes, de forma similar a como lo hizo el lenguaje BASIC hace 50 años. Un programa para Arduino se llama boceto .

Los programas de Arduino se escriben en C o C++, sin embargo muchos de los detalles están ocultos para el usuario: sólo hay que definir dos funciones (llamadas por el sistema) para hacer un programa que haga bucles continuamente (lo que es típico de los programas embebidos)

setup(): a function run once at startup that performs initialization
loop(): a function called repeatedly until the board powers off

El IDE viene con una biblioteca de software llamada "Wiring" que puede ser utilizada para operaciones comunes de entrada/salida.

1 votos

Ya no diseño hardware, después de 25 años de hacerlo, pero no conozco ningún procesador para ordenadores de sobremesa que contenga ninguna memoria de sólo lectura, y mucho menos ninguna memoria de este tipo que pueda arrancar un ordenador.

1 votos

@Rob Tienes razón en que todos los PC de sobremesa que conozco utilizan un chip de arranque externo. Pero la arquitectura OMAP3 de TI es un ejemplo de microprocesador con una ROM de arranque interna. De la descripción aquí En el arranque de Linux, la primera línea dice: "Al encender un dispositivo OMAP3 comienza a arrancar desde la ROM de arranque interna. Este código se fija durante el proceso de fabricación y no puede ser alterado. La Boot ROM lee los pines de configuración de arranque (SW4 en la OMAP3 EVM) que le dicen a la Boot ROM dónde buscar el primer bootloader externo." He actualizado mi respuesta.

10voto

Mykroft Puntos 4292

Arduino

Un Arduino es una placa de circuito impreso que contiene un microcontrolador Atmel AVR y que, por lo general, proporciona un conjunto de conectores con un patrón estándar. El microcontrolador suele estar preprogramado con un programa "bootloader" que permite cargar un programa (llamado "sketch") en el microcontrolador a través de una conexión serie TTY (o serie virtual sobre conexión USB) desde un PC.

Microprocesador

Un microprocesador es un CI que sólo contiene una unidad central de procesamiento (CPU). El CI no contiene RAM, ROM ni otros periféricos. El CI puede contener memoria caché, pero no está diseñado para ser utilizado sin ninguna memoria externa.

Los microprocesadores no pueden almacenar programas internamente y, por tanto, suelen cargar el software cuando se encienden, lo que suele implicar un complejo proceso de "arranque" de varias fases en el que el "firmware" se carga desde una ROM externa y, finalmente, se carga un sistema operativo desde otro medio de almacenamiento (por ejemplo, el disco duro).

Suele encontrarse en un ordenador personal.

Microcontrolador

Un microcontrolador es un circuito integrado que contiene una CPU, así como cierta cantidad de RAM, ROM y otros periféricos. Los microcontroladores pueden funcionar sin memoria o almacenamiento externo.

Normalmente, los microcontroladores se programan antes de ser soldados a una placa de circuito impreso o son programables mediante conectores de programación en el sistema (ISP o ICSP) a través de un dispositivo especial de "programación" conectado a un ordenador personal.

Los microcontroladores típicos son mucho más sencillos y lentos que los microprocesadores típicos, pero creo que la distinción es sobre todo de escala y aplicación.

Se encuentra, por ejemplo, en aparatos sencillos como las lavadoras básicas.

2voto

akellyirl Puntos 3609

Arduino es una plataforma basada en un microcontrolador (ATMEGA 328 para el UNO). En general, un microcontrolador es más adecuado que un microprocesador para cualquier cosa que requiera la detección de entradas. Esto se debe a que los microcontroladores como el ATMEGA 328 tienen convertidores analógico-digitales (ADC) para detectar los voltajes y también tienen salidas PWM, así como E/S digitales.

Con Arduino también tienes el sistema Arduino Dev que es más fácil de programar para los novatos y tiene una buena comunidad de apoyo y bibliotecas.

Una pantalla táctil resistiva se comporta como potenciómetros; uno para x y otro para y. Así que puedes ponerlos en entradas analógicas de Arduino. Ver aquí para detalles .

Otra opción es convertir a SPI o I2C con algo como este y leer con Arduino.

De cualquier manera creo que Arduino es una buena opción.

0 votos

@tcrosley o cualquier otro miembro de larga data ¿algún consejo para un nuevo contribuyente como yo para evitar un voto negativo como este? Mis respuestas son precisas, responden a la pregunta y proporcionan detalles adicionales para la interfaz con una pantalla táctil resistiva. ¿Algo más que debería haber incluido?

3 votos

No te tomes el voto negativo demasiado en serio. Sin embargo, creo que tu primera frase es un poco inexacta. Arduino es más bien una plataforma compuesta por hardware y software. Y una placa Arduino no es un microcontrolador sino una placa diseñada alrededor de un microcontrolador.

1 votos

Como dice Rev1.0: "Arduino es un microcontrolador" no es cierto. Arduino es un SBC (Single Board Computer).

2voto

Peter Bennett Puntos 15949

"Arduino" es un entorno de desarrollo de software y cualquiera de las diversas placas de microcontroladores para las que el entorno de software puede desarrollar programas. La mayoría de las placas utilizan microcontroladores Atmel AVR.

1voto

soypunk Puntos 231

El Arduino consiste en un microcontrolador (el ATmega328 en la versión UNO). Así que el Arduino es una PCB con los pines del microcontrolador bien separados, una fuente de alimentación, un cristal y el FTDI para la conexión USB con un firmware a bordo para que puedas programarlo fácilmente con su propio IDE. Aquí hay una lista de los componentes del arduino: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X