Uhm. con Canon D5(9) tu istanzi una nuova classe D5 di tipo Canon. Messa al di fuori del setup diventa una dichiarazione visibile globalmente. Se la metti nel setup, è ovvio che tu dal loop non la veda più. Ora capisco cosa vuoi dire.
Se non chiami nessun metodo all'interno di setup, potresti da qui leggere la Eeprom e poi potresti spostare l'istanziamento della classe dentro al loop, relegando però il resto del codice in un altro loop infinito in modo da creare una sezione di codice eseguita solo 1 volta.
#include <multiCameraIrControl.h>
void setup()
{
}
void loop()
{
Canon D5(9);
do {
D5.shutterNow();
delay(5000);
D5.shutterDelayed();
delay(5000);
} while (1); //nuovo ciclo infinito
}
Tieni presente però che così poi D5 non è più visibile al di fuori di loop, quindi se dal loop chiami una funzione, questa non deve e no può accedere a D5.