changeset 991:c6989dcf1f4f

temp sensor try to work with idle loop (but there are still stutters) Ignore-this: d3d33548db6ce6c329f8aef2cd83403a darcs-hash:20150708082102-312f9-ea553ff8ce011065b93ed3dae5dbc8fa057ca0d8
author drewp <drewp@bigasterisk.com>
date Wed, 08 Jul 2015 01:21:02 -0700
parents 11fff6301027
children ed1f54d81fc9
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;
 }
         '''