Semplice libreria per il 74HC595D

Salve ho scritto una semplice libreria per interfacciare arduino con uno shiftregister.

lo schema elettrico è quello disponibile on-line e funzione perché con un semplice programma ho testato e funziona, mentre con la libreria no.

la libreria è composta da :

File PORTALATCH.h
#ifndef PORTALATCH_h
#define PORTALATCH_h
#include "Arduino.h"
class PortaLatch
{
	private:
	int PinClock;
	int PinData;
	int PinElable;
	int StatusPorte;
	public:
	PortaLatch (int Clock, int Data, int Enable);
	int PinSet(int Pin, bool Status);
	int PinGet(int Pin);
	int Write(int dati);
};
#endif
PoRTALATCH.cpp
/* 
Libreria per gestire le porte sul Latch
*/
#include "PORTALATCH.h"

// Funzione di creazione dell'oggetto
PortaLatch::PortaLatch(int Clock, int Data, int Enable){
	PinClock = Clock;
	PinData = Data;
	PinElable = Enable;
	StatusPorte = B00000000;
	pinMode(PinClock, OUTPUT);
	pinMode(PinElable, OUTPUT);
	pinMode(PinData, OUTPUT);
	digitalWrite(PinElable, LOW);  
	digitalWrite(PinClock, LOW);  
}
// Funzione scrittura sulla porta di un byte
int PortaLatch::Write(int dati){
	digitalWrite(PinElable, LOW); 
	shiftOut(PinData,PinClock,MSBFIRST, dati);
	digitalWrite(PinElable, HIGH);
	return dati;
}
// Funzione scrittura su StatusPorte
int PortaLatch::PinSet(int pin, bool dato){
	bitWrite(StatusPorte,pin,dato);
	return dato;
}
// Funzione lettura di un bit su StatusPorte
int PortaLatch::PinGet(int pin){
	return bitRead(StatusPorte,pin);
}
#include <PORTALATCH.h>
// ProvaLatch.ino
PortaLatch porta(13,11,12);
void setup() {
	Serial.begin(9600);
}

void loop() {
porta.Write(B11111111);
delay(1000);
porta.Write(B00000000);
}

il codice non funziona, ovvero le uscite non cambiano status e rimangono a 1, ma non ho nessun errore di compilazione e link.
Non sono molto esperto di C++ mi date un aiutino :wink: