Как конвертнуть в hex формат при помощи c#?
hex - это не формат, а представление бит. То, что ты видишь в блокноте или hex-редакторе, открыв через них файл - лишь разные представления бит (нолей и единиц). Их можно представить хоть в hex (шестнадцатиричная система), хоть в восьмеричной, хоть в десятичной, хоть в символах, что и делает большинство блокнотов.

Arduino IDE не переводит код в hex, она собирает сектч - компилирует его. Что такое компиляция - ты должен знать, раз хочешь что-то там сделать на шарпе. 

Тебе нужно скомпилировать скетч. Компилируется он, как ни странно, компилятором. Он находится в папке со средой Arduino IDE. Ищешь его, вызываешь сборку нужного скетча. А лучше, иди и погугли "ручная компиляция скетча arduino".

Конечный HEX файл создается из скомпилированного бинарного файла, а не из кода.

Т.е. сначала узнай как скомпилировать код, а потом уже переводи его в текстовый вариант.
Arduino IDE копирует код скетча и библиотеки, которые в нём указаны с помощью директив #include во временную папку, а затем компилирует программу с помощью компилятора avr-gcc для заданного пользователем микроконтроллера.
Затем полученный elf файл с помощью утилиты avr-objcopy конвертируется в формат hex для того, чтобы загрузить его в микроконтроллер с помощью avrdude по протоколу stk-500.