/// <summary> /// Inizializzazione /// </summary> /// <param name="bits">Numero di bit: 8 X Numero di integrati 74HC595</param> /// <param name="dataPin">Porta linea dati DS Pin 14 del 74HC595</param> /// <param name="clockPin">Porta linea clock SH_CP Pin 11 del 74HC595</param> /// <param name="latchPin">Porta linea latch ST_CP Pin 12 del 74HC595</param> public OutShiftRegister(int numBits, int dataPin, int clockPin, int latchPin) { if (numBits <= 0) { throw new IndexOutOfRangeException("ShiftRegister: numero di bit < 0"); } _pinData = new DigitalIO(dataPin, GpioPinDriveMode.Output); _pinClock = new DigitalIO(clockPin, GpioPinDriveMode.Output); _pinLatch = new DigitalIO(latchPin, GpioPinDriveMode.Output); _pinData.Write(GpioPinValue.Low); _pinClock.Write(GpioPinValue.Low); _pinLatch.Write(GpioPinValue.Low); bit = new bool[numBits]; OutResetBits(); }
private int _fase; // Numero di fase /// <summary> /// inizializzazione dispositivo /// </summary> /// <param name="portaEndStopOrario">Porta collegata all fine corsa sulla rotazione oraria false quando premuto</param> /// <param name="portaEndStopAntiOrario">Porta collegata all fine corsa sulla rotazione anti-oraria false quando premuto</param> public StepMotorEndStopShift( OutShiftRegister shift, int bitA1, int bitA2, int bitB1, int bitB2, int portaEndStopOrario, int portaEndStopAntiOrario) { _shift = shift; _bitA1 = bitA1; _bitA2 = bitA2; _bitB1 = bitB1; _bitB2 = bitB2; //var gpio = GpioController.GetDefault(); //if (gpio == null) throw new Exception("GPIO Initialization Failed"); _endStopOr = new DigitalIO(portaEndStopOrario, GpioPinDriveMode.InputPullUp); _endStopAn = new DigitalIO(portaEndStopAntiOrario, GpioPinDriveMode.InputPullUp); _fase = 0; Folle(); }