De Arduino is een 'open-source' microcontroller board die je zelf kunt programmeren. Er zijn momenteel veel van dit soort microcontroller boards beschikbaar die erg geschikt zijn voor het bouwen van computer gestuurde besturingen. Bijvoorbeeld de PIC controllers van Microchip, ARM (Advanced RISC Machine) controllers, Atmel AVR controllers zijn veel gebuikte single-chip microcontrollers.
Het handige van deze microcontrollers is dat de CPU, ROM, RAM, EPROM of EEPROM allemaal in een behuizing zitten. Daarnaast zijn er veel aansluitingen beschikbaar op de chip om met de 'buitenwereld' te kunnen communiceren. Zo'n microcontroller heeft vaak meerdere input en output poorten waarop diverse sensoren en actoren aangesloten kunnen worden. Bijvoorbeeld een lichtsensor, temperatuursensor, bewegingsensor als input, een relais als schakelaar om een ander apparaat (lamp, pomp enzovoort) aan of uit te kunnen zetten.
De Arduino is gebaseerd op de Atmel AVR microcontroller familie. Deze worden veelal in de programeertaal C geprogrammeerd. Dit is een oude, maar zeer krachtige taal.
Deze microcontrollers zijn los te koop, maar het handige van de Arduino microcontroller boards is dat de chip op een printplaat zit waarop de input/output pennen met connectoren verbonden zijn. De microcontrollers zijn tegenwoordig zo klein dat draadjes hieraan solderen wat lastiger is geworden. Ook zit er een bootloader in de chip geladen die de communicatie tussen IDE en processos afhandeld en het laden van het programma vlekkeloos laat verlopen. Hiermee wordt het ontwikkelen van programma's een stuk vriendelijker.
Binnen de Arduno familie zijn diverse verschillende microcontroller boards te verkrijgen.
Het handige van het Arduino platform is dat er een handige software ontwikkel omgeving beschikbaar is. In deze software ontwikkelomgeving kunnen de programma's, in de Arduino wereld Sketches genaamd, geschreven worden. Nadat de gemaakte programma code foutloos gecompileerd is kan deze met de upload functie naar de microcontroller verzonden worden. Het is een erg vriendelijke muli-platform (Linux, Mac of Windows) meertalige ontwikkelomgeving waarin gebruik gemaakt kan worden van code voorbeelden, library's en reference en help pagina's. Zie voor meer detail informatie de Arduino site.