A mikrokontroller (mikrovezérlő) egy olyan IC, amiben egy teljes számítógép van.
Benne van a:
Több cég készít mikrokontrollereket, jelenleg (2017) a Microchip PIC nevű mikrovezérlő-családja, és az Atmel Atmel AVR mikrovezérlő-családja a legelterjedtebbek az olcsó, könnyen használható kategóriában.
A Freescale mikrovezérlői nagyon szuperek, viszont összetett feladatokra készültek. Rengeteg komoly autóipari embedded rendszer használ Freescale mikrovezérlőt.
Ezeken kívül is vannak további gyártók, akiknek a termékei egy-egy speciális szempont szerint tűnnek ki, mint például nagyon kevés energiát fogyasztó mikrovezérlők, vagy éppen rengeteg további beépített funkció (mint például vezetékes internet közvetlen kezelése) miatt érdekesek.
Ha egy mikrokontrollerbe programot szeretnél készíteni, sajnos ez picit érdekes, mivel nincs neki sem gombozata, sem kijelzője.
Ezért a programot általában egy asztali számítógépen készítjük el. Ehhez általában kapunk valami szövegszerkesztőt és compilert összegyúrva egy IDE-be. Az IDE azt jelenti, hogy Integrated Development Environment, magyarul "egybegyúrt fejlesztőrendszer". Ez egy olyan program, amibe minden benne van, ami a munkánkhoz szükséges.
Az IDE fontos része a compiler, ami az általunk megírt szöveget átalakítja - lefordítja - a processzor által megérthető számok sorozatára, a gépi kódra.
A mikrokontroller - mint bármely más processzor - kizárólag a saját gépi kódját érti meg. A gépi kód egy jó adag bináris szám, ami leírja, hogy mikor mit kell csinálni.
Természetesen ez nem való embernek, ezért az emberek mindenféle kényelmes programnyelvet találtak ki. A legtöbb IDE tartalmaz egy fordítóprogramot (compiler), ami egy-egy jól ismert nyelvet, például Basic, Pascal, C, C++ képes feldolgozni, és a végét átfordítani úgy, hogy a mikrokontroller megértse.
A lefordított program a PC-ről valahogy bele kell hogy menjen a mikrovezérlő memóriájába. Ez a folyamat a mikrovezérlő felprogramozása, és ehhez kell egy kis szappantartó méretű eszköz, aminek az egyik vége USB, a másik vége pedig a mikrovezérlő lábaihoz csatlakozik.
Minden mikrokontroller-gyártónak van egy-egy ilyen eszköze.
A programozó eszköz vezérli a mikrokontroller reset lábát. A programozás végeztével reseteli a mikrokontrollert, ami elkezdi végrehajtani a benne lévő programot.
Ekkor már a mikrokontroller teljes viselkedését a mi programunk irányítja.
Ha a programon változtatni akarunk, akkor azt bármikor megtehetjük, és a programozó eszközzel újra átírhatjuk a mikrokontrollerben lévő programot, pont úgy, mint ahogy más-más dolgokat másolunk egy pendrive-ra.
Hogy megkönnyítsék a mikrokontrollerekkel a munkát, ezért megannyi megoldást eszeltek ki a mérnökök.
A PICAXE esetében nem kell drága programozó készülék, elég egy olcsó programozó kábel. Ráadásul a hozzá kifejlesztett IDE-ben nem csak Basicben, hanem Blocky nyelven is lehet programozni.
Az Arduino kifejezetten azért készült, hogy minél könnyebb legyen mikrokontrollerrel kütyüket csinálni. Ez tartalmaz egy teljes C és C++ fordítót, és olyan paneleket, amikben benne van a mikrokontroller és a programozó készülék funkciója is.
Ha veszel egy Arduino panelt, azt elég rádugni a gépre, és máris indulhat a móka.