public void Dispose() { //WiringPi.WiringPiISRCancel(ECHOPin); WiringPi.PinMode(TRIGPin, WiringPiConst.Output); WiringPi.DigitalWrite(TRIGPin, WiringPiConst.Low); WiringPi.PinMode(TRIGPin, WiringPiConst.Input); }
public HCSR04Sensor(int trigPin, int echoPin) { TRIGPin = trigPin; ECHOPin = echoPin; WiringPi.PinMode(TRIGPin, WiringPiConst.Output); WiringPi.WiringPiISR(ECHOPin, WiringPiConst.IntEdgeBoth, OnIsrEcho); }
public void StartDistanceMeas() { _dataValid = false; Distance = 0.0f; WiringPi.DigitalWrite(TRIGPin, WiringPiConst.High); Thread.Sleep(200); //start impulse WiringPi.DigitalWrite(TRIGPin, WiringPiConst.Low); }
public void Dispose() { WiringPi.DigitalWrite(_display.CLKPin, WiringPiConst.Low); WiringPi.DelayMicroseconds(1); WiringPi.DigitalWrite(_display.DIOPin, WiringPiConst.Low); WiringPi.DelayMicroseconds(1); WiringPi.DigitalWrite(_display.CLKPin, WiringPiConst.High); WiringPi.DelayMicroseconds(1); WiringPi.DigitalWrite(_display.DIOPin, WiringPiConst.High); }
public TM1637Display(int clockPin, int dataPin, int brightnessPercent) { CLKPin = clockPin; DIOPin = dataPin; Reset(); WiringPi.PinMode(CLKPin, WiringPiConst.Output); WiringPi.PinMode(DIOPin, WiringPiConst.Output); WiringPi.PullUpDnControl(DIOPin, WiringPiConst.PudUp); // clearing display included BrightnessPercent = brightnessPercent; }
public WriteSection(TM1637Display display) { _display = display; WiringPi.DigitalWrite(_display.CLKPin, WiringPiConst.High); WiringPi.DelayMicroseconds(1); WiringPi.DigitalWrite(_display.DIOPin, WiringPiConst.High); WiringPi.DelayMicroseconds(1); WiringPi.DigitalWrite(_display.DIOPin, WiringPiConst.Low); WiringPi.DelayMicroseconds(1); WiringPi.DigitalWrite(_display.CLKPin, WiringPiConst.Low); }
private void OnIsrEcho() { int now = WiringPi.Micros(); if (WiringPi.DigitalRead(ECHOPin) == WiringPiConst.High) { _startTime = now; } else { _endTime = now; _dataValid = true; } }
public void Read() { for (Tries = 1; Tries < Retries + 1; Tries++) { WiringPi.PinMode(DataPin, WiringPiConst.Output); WiringPi.DigitalWrite(DataPin, WiringPiConst.Low); WiringPi.DelayMicroseconds(20000); WiringPi.DigitalWrite(DataPin, WiringPiConst.High); WiringPi.DelayMicroseconds(30); WiringPi.PinMode(DataPin, WiringPiConst.Input); // Chip start to transfer int state = WiringPi.DigitalRead(DataPin); int lastState = WiringPiConst.High; for (int i = 0; i < MaxTransferReads; i++) { int readCounter = 0; do { readCounter++; lastState = state; WiringPi.DelayMicroseconds(1); state = WiringPi.DigitalRead(DataPin); } while (!(lastState == WiringPiConst.High && state == WiringPiConst.Low) && readCounter < 100); // --> High->Low trigger lastState = WiringPiConst.Low; _timeOfChange[i] = WiringPi.Micros(); } GetDHTData(1); if (IsDataValid) { break; } else { Thread.Sleep(400); } } }
private void WriteByte(byte data) { byte mask = 0x01; for (int bit = 0; bit < 8; bit++) { WiringPi.DigitalWrite(CLKPin, WiringPiConst.Low); WiringPi.DigitalWrite(DIOPin, (data & 1 << bit) > 0 ? WiringPiConst.High : WiringPiConst.Low); mask <<= 1; WiringPi.DigitalWrite(CLKPin, WiringPiConst.High); WiringPi.DelayMicroseconds(1); } // switch DIO to input for ACK reading WiringPi.PinMode(DIOPin, WiringPiConst.Input); // reset DIO before set to output WiringPi.DigitalWrite(DIOPin, WiringPiConst.Low); // start ACK reading WiringPi.DigitalWrite(CLKPin, WiringPiConst.Low); ACKErr = true; for (int readTry = 1; readTry <= 100; readTry++) { // read/wait ACK (max. 100us) if (WiringPi.DigitalRead(DIOPin) == WiringPiConst.High) { WiringPi.DelayMicroseconds(1); } else { ACKErr = false; break; } } WiringPi.DigitalWrite(CLKPin, WiringPiConst.High); WiringPi.PinMode(DIOPin, WiringPiConst.Output); WiringPi.DigitalWrite(CLKPin, WiringPiConst.Low); }