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.
|
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)
The IDE comes with a software library called "Wiring" which can be used for common input/output operations. |
||||
|
ArduinoAn 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. MicroprocessorA 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. MicrocontrollerA 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. |
||||
|
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. |
|||||||||||||
|
"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. |
|||
|
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 |
|||
|