Tento projekt mě uchvátil asi před třemi lety, když jsem uvažoval, čím budu řídit svoji solární elektrárnu o výkonu 2300W. Nejdříve jsem chtěl použít pro řízení PLC od firmy Siemens, které jsou velmi spolehlivé a málo poruchové, ale ta cena…. Když jsem zjistil, že ATmega 328P použitá v arduinu UNO stojí dolar, má 20 vstupů a výstupů, které jdou programově nastavit, nebylo co řešit. Z těch 20 je šest analogových vstupů s rozlišením 1024 kroků a pět výstupů s PWM modulací o rozlišení 256 kroků, které jdou použít jako analogové výstupy. Dále má tento obvod jednu sériovou sběrnici na vývodech 0 a 1 (UART), sběrnici I2C a sběrnici SPI (Serial Peripheral Interface). Podle mých testů vstupy zvládají rychlost kolem 4kHz. Pro nahrání a kompilaci programu do Atmegy je možno použít IDE od Arduina. V tom případě musíte mít v procesoru nahraný bootloader, který umožňuje nahrání programu přes sériovou sběrnici. Dá se použít bootloader z UNA, tam je použit externí krystal 16MHz (je součástí programu) nebo bootloader ATmega 328 on a breadboard (8MHz internal clock) ke stažení zde. Výhoda s interním oscilátorem 8MHz je jednoduché zapojení, kde je potřeba jenom jeden odpor a napájení 5V. Nevýhoda je v menší velikosti paměti pro program a to 30720 bytů. U bootloaderu pro UNO je velikost paměti 32256 bytů. Daší možností je použít jako bootloader Optiboot, který je ke stažení zde. Je mnohem menší, rychleji nabíhá a jde tam použít automatický restart při kousnutí procesoru.