Mercurial > code > home > repos > homeauto
changeset 186:57e6d328d45b
temp sensor try to work with idle loop (but there are still stutters)
Ignore-this: d3d33548db6ce6c329f8aef2cd83403a
author | drewp@bigasterisk.com |
---|---|
date | Wed, 08 Jul 2015 01:21:02 -0700 |
parents | 2161c71c7b02 |
children | fc5fdcc3ed4a |
files | service/arduinoNode/devices.py |
diffstat | 1 files changed, 12 insertions(+), 2 deletions(-) [+] |
line wrap: on
line diff
--- a/service/arduinoNode/devices.py Wed Jul 08 01:19:21 2015 -0700 +++ b/service/arduinoNode/devices.py Wed Jul 08 01:21:02 2015 -0700 @@ -219,16 +219,23 @@ void initSensors() { sensors.begin(); + sensors.setWaitForConversion(false); sensors.getAddress(tempSensorAddress, 0); - sensors.setResolution(tempSensorAddress, 12); + sensors.setResolution(tempSensorAddress, 9); // down from 12 to avoid flicker } ''' % dict(pinNumber=self.pinNumber) - + + def generateSetupCode(self): + return 'initSensors();' + def generatePollCode(self): return r''' for (int i=0; i<NUM_TEMPERATURE_RETRIES; i++) { sensors.requestTemperatures(); + // not waiting for conversion at all is fine- the temps will update soon + //unsigned long until = millis() + 750; while(millis() < until) {idle();} float newTemp = sensors.getTempF(tempSensorAddress); + idle(); if (i < NUM_TEMPERATURE_RETRIES-1 && (newTemp < -100 || newTemp > 180)) { // too many errors that were fixed by restarting arduino. @@ -237,8 +244,11 @@ continue; } Serial.print(newTemp); +idle(); Serial.print('\n'); +idle(); Serial.print((char)i); +idle(); break; } '''