1) Unsigned long используется для хранения положительных целых чисел в диапазоне от 0 до 4,294,967,295 (2^32 - 1) и занимает 32 бита (4 байта) в памяти. Это число будет постоянно занимать 4байта в микроконтроллере, ничего не переполнится до макс значения.
2) Да, если вы не сделаете иначе в коде программы. :)
3) Монитор порта приложение, запущенное на вашем ПК, занимает оперативную память вашего же ПК.