Advertisement
vulture2600

pointer test

Mar 22nd, 2015
242
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 2.15 KB | None | 0 0
  1. #include <OneWire.h>
  2. #include <Wire.h>
  3. #include <Adafruit_MCP23017.h>
  4. #include <Adafruit_RGBLCDShield.h>
  5.  
  6.  
  7. #define oneWireBus 2
  8. byte address[8];
  9. byte *addrP = address;
  10. OneWire oneWire(oneWireBus);
  11.  
  12. Adafruit_RGBLCDShield lcd = Adafruit_RGBLCDShield();
  13.  
  14. float temp;
  15. unsigned long lastTime = 0, currentTime = 0;
  16.  
  17. void setup() {
  18.   pinMode(3, OUTPUT);
  19.   pinMode(4, OUTPUT);
  20.   digitalWrite(3, HIGH);
  21.   digitalWrite(4, LOW);
  22.   lcd.begin(16, 2);
  23.   lcd.print(F("oneWire temp ptr"));
  24.   Serial.begin(19200);
  25.   delay(1000);
  26.   lcd.clear();
  27.   oneWire.search(addrP);
  28.  
  29. }
  30.  
  31. void loop() {
  32.   currentTime = micros();
  33.   temp = getOneWireTemp(addrP);
  34.   lastTime = micros();
  35.   Serial.print(F("temp is: "));
  36.   Serial.print(temp);
  37.   Serial.print(F("C.  It took "));
  38.   Serial.print(lastTime - currentTime);
  39.   Serial.println(F(" ms.")); //takes 9400/474
  40.  
  41.   currentTime = micros();
  42.   temp = getOneWireTemp2();
  43.   lastTime = micros();
  44.   Serial.print(F("temp2 is: "));
  45.   Serial.print(temp);
  46.   Serial.print(F("C.  It took "));
  47.   Serial.print(lastTime - currentTime);
  48.   Serial.println(F(" ms.")); //takes 9394/474.
  49.   delay(500);
  50. }
  51.  
  52. float getOneWireTemp(byte *str) { //get OneWire temp.
  53.   byte data[2]; //array to store data retrieved from sensor.
  54.   oneWire.reset();
  55.   oneWire.select(str);
  56.   oneWire.write(0x44, 1); //start conversion.
  57.   oneWire.reset();
  58.   oneWire.select(str);
  59.   oneWire.write(0xBE); //read scratchpad.
  60.  
  61.   for (byte i = 0; i < 2; i ++) {
  62.     data[i] = oneWire.read(); //collect data.
  63.   } //end for.
  64.  
  65.   int16_t raw = (data[1] << 8) | data[0]; //convert raw data to C.
  66.  
  67.   return (float)raw / 16.0;
  68. } //end getOneWireTemp().
  69.  
  70. float getOneWireTemp2() { //get OneWire temp.
  71.   byte data[2]; //array to store data retrieved from sensor.
  72.   oneWire.reset();
  73.   oneWire.select(addrP);
  74.   oneWire.write(0x44, 1); //start conversion.
  75.   oneWire.reset();
  76.   oneWire.select(addrP);
  77.   oneWire.write(0xBE); //read scratchpad.
  78.  
  79.   for (byte i = 0; i < 2; i ++) {
  80.     data[i] = oneWire.read(); //collect data.
  81.   } //end for.
  82.  
  83.   int16_t raw = (data[1] << 8) | data[0]; //convert raw data to C.
  84.  
  85.   return (float)raw / 16.0;
  86. } //end getOneWireTemp().
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement