Take the 2-minute tour ×
Electrical Engineering Stack Exchange is a question and answer site for electronics and electrical engineering professionals, students, and enthusiasts. It's 100% free, no registration required.

What is the difference between an Arduino, a microprocessor, and a microcontroller? I'm trying to determine what is best to operate a cheap resistive touch screen.

share|improve this question
4  
Yes, lot's of people know the difference between a arduino and a microprocessor. However, while actually discussing the difference could be on topic here, discussing who knows what is not. –  Olin Lathrop Feb 11 at 17:54
2  
There's too much overlap in applicability between these terms - especially microcontroller vs. microprocessor for there to be an absolute difference; instead, the choice of words may reflect either characteristics which are relevant to the conversation or may simply reflect the speaker's habits. –  Chris Stratton Feb 11 at 18:18
    
Why are you not interested in differences between arduino and micro controller? –  jippie Feb 11 at 18:59

5 Answers 5

A microprocessor is typically found in a desktop PC or laptop and contains a CPU and an external memory interface plus various I/O buses to connect to the outside world such as SPI, I2C, UART, USB, LCD and others. A microprocessors will also have an external crystal to provide a clock.

Microprocessors have very limited read-only memory, generally just enough to contain a boot program that starts the computer up from a hard drive, CD or DVD drive, or in past, a floppy. Unlike microcontrollers, which execute their programs out of read-only memory, microprocessors load their programs into external RAM and execute it from there. (For some microprocessors, even the read-only boot memory is external to the chip.)

A microcontroller on the other hand is a standalone single-chip IC that contains a CPU, read-only memory to store the program, RAM to store variables used in the execution of the program, and various I/O buses to connect to the outside world such as SPI, I2C, UART and others. By itself, it cannot execute any programs without being programmed via an external interface to a PC. A microcontroller may also need an external crystal to provide a clock, however some have an internal clock.

For your purpose, you would want to use a microcontroller, not a microprocessor. To use a microcontroller, you would either have to design your own board, or buy some sort of development board.

An Arduino is such a board, and contains a microcontroller, typical an 8-bit AVR such as the ATmega8, ATmega168, ATmega328, ATmega1280, and ATmega2560, plus power supplies, crystal, and female headers to interface with various peripheral boards.

These peripheral boards are called shields, and are designed to stack on top of each other (there are male pins on the bottom of the boards to connect to the Arduino itself or another shield, and female headers on the top to accept the male pins of a shield stacked on top of it).

Example shields are motor control boards, general I/O boards, relay boards, Ethernet boards, and LCD's, typically with a touch-screen. However I don't know of any resistive touch screens that would be used just for detection (without an LCD).

In addition to the hardware described above, Arduino also come with a cross-platform Integrated Development Environment (IDE) written in Java. It was designed to introduce programming to artists and other beginners, much as the BASIC language did 50 years ago. A program for Arduino is called a sketch.

Arduino programs are written in C or C++, however many of the details are hidden from the user: only two functions (called by the system) need to be defined to make a program that continually loops (which is typically for embedded programs)

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

The IDE comes with a software library called "Wiring" which can be used for common input/output operations.

share|improve this answer

Arduino

An Arduino is a PCB containing an Atmel AVR microcontroller and usually providing a set of connectors in a standard pattern. The microcontroller is typically preprogrammed with a "bootloader" program that allows a program (called a "sketch") to be loaded into the microcontroller over a TTY serial connection (or virtual serial over USB connection) from a PC.

Microprocessor

A microprocessor is an IC that contains only a central processing unit (CPU). The IC does not contain RAM, ROM or other peripherals. The IC may contain cache memory but it is not designed to be usable without any external memory.

Microprocessors cannot store programs internally and therefore typically load software when powered on, this usually involves a complex multi-stage "boot" process where "firmware" is loaded from external ROM and eventually an operating system is loaded from other storage media (e.g. hard disk).

It is typically found in a personal computer.

Microcontroller

A microcontroller is an IC that contains a CPU as well as some amount or RAM, ROM and other peripherals. Microcontrollers can function without external memory or storage.

Normally, microcontrollers are either programmed before being soldered to a PCB or are programmable using In-System-Programming (ISP or ICSP) connectors via a special "programmer" device attached to a personal computer.

Typical microcontrollers are much simpler and slower than typical microprocessors but I believe the distinction is mostly one of scale and application.

It is found, for example, in simple appliances such as basic washing machines.

share|improve this answer

Arduino is a microcontroller based platform (ATMEGA 328 for the UNO). In general a Micro-controller is better suited than a microprocessor to anything the requires sensing of inputs. That's because micro-controllers like the ATMEGA 328 have analogue to digital converters (ADCs) to sense voltages and also have PWM outputs as well as digital I/Os.

With Arduino you also have the Arduino Dev system which is easier to program for novices and has a good community for support and libraries.

A resistive touch screen behaves like potentiometers; one for x and one for y. So you can put those into Arduino analogue inputs. See here for details.

Another option is to convert to SPI or I2C with something like this, and read with Arduino.

Either way I think Arduino is a good choice.

share|improve this answer
    
@tcrosley or any other long time member.. any advice to a new contributor like me on avoiding a down-vote like this one? My answers is accurate, answers the question and provides additional details to interface to a resistive touch screen. Anything else it should have included? –  akellyirl Feb 11 at 17:51
2  
Don't take the down-vote too serious. I think your first sentence is a little inaccurate though. Arduino is more like a platform consisting of hardware and software. And an Arduino board is not a micro controller but a board designed around a micro controller. –  Rev1.0 Feb 11 at 19:32
    
Like Rev1.0 says: "Arduino is a microcontroller" is not true. Arduino is an SBC (Single Board Computer). –  flup Feb 25 at 9:50

"Arduino" is a software development environment and any of several microcontroller boards that the software environment can develop programs for. Most of the boards use Atmel AVR microcontrollers.

share|improve this answer

The Arduino consist of a microcontroller (the ATmega328on the UNO version). So the Arduino is a PCB with the pins of the microcontroller nicly separated, a powersuply, a crystal and the FTDI for the USB connection with a on-board firmware so you can easly programm it with its own IDE. Here is a list about the arduino components: http://learn.adafruit.com/arduino-tips-tricks-and-techniques/arduino-uno-faq

share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.