예제 #1
0
파일: Humidity.c 프로젝트: bechu/hexapod
static void __Phidget_Humidity_read(SENSOR* sensor){
	Phidget_Humidity* device = (Phidget_Humidity*)sensor;
	uint16_t adc = __phidgetsRead(device->adcPin);
	// scale it:  (0.1946 * adc)-41.98
	adc = fraction32(adc, phidget_humidity_frac);
	adc -= 42;
	device->humidity.percent = adc;
}
예제 #2
0
파일: DC20A.c 프로젝트: bechu/hexapod
static void __Phidget_DC20A_read(SENSOR* sensor){
	Phidget_DC20A* device = (Phidget_DC20A*)sensor;
	uint16_t amps = __phidgetsRead(device->pin) - 500;
	// scale it
	amps /= 20;

	device->current.amps = amps;
}
예제 #3
0
파일: Temperature.c 프로젝트: bechu/hexapod
static void __Phidget_Temperature_read(SENSOR* sensor){
	Phidget_Temperature* device = (Phidget_Temperature*)sensor;
	uint16_t adc = __phidgetsRead(device->adcPin);
	// scale it:  (0.1946 * adc)-41.98
	adc -= 200;
	adc >>= 2;
	device->temperature.celsius = adc;
}
예제 #4
0
static void __Phidget_30V_read(SENSOR* sensor) {
    Phidget_30V* device = (Phidget_30V*)sensor;
    uint16_t volts = __phidgetsRead(device->adcPin);
    // scale it: (adc - 500) * 0.06
    volts -= 500;
    volts *= 3;
    volts /= 50;

    device->voltage.volts = volts;
}