123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106 |
- //
- // FILE: SaveRecallScratchPad.ino
- // AUTHOR: GitKomodo
- // VERSION: 0.0.1
- // PURPOSE: Show DallasTemperature lib functionality to
- // save/recall ScratchPad values to/from EEPROM
- //
- // HISTORY:
- // 0.0.1 = 2020-02-18 initial version
- //
- #include <OneWire.h>
- #include <DallasTemperature.h>
- #define ONE_WIRE_BUS 2
- OneWire oneWire(ONE_WIRE_BUS);
- DallasTemperature sensors(&oneWire);
- DeviceAddress deviceAddress;
- void setup()
- {
- Serial.begin(9600);
- Serial.println(__FILE__);
- Serial.println("Dallas Temperature Demo");
-
- sensors.begin();
-
- // Get ID of first sensor (at index 0)
- sensors.getAddress(deviceAddress,0);
- // By default configuration and alarm/userdata registers are also saved to EEPROM
- // when they're changed. Sensors recall these values automatically when powered up.
-
- // Turn OFF automatic saving of configuration and alarm/userdata registers to EEPROM
- sensors.setAutoSaveScratchPad(false);
-
- // Change configuration and alarm/userdata registers on the scratchpad
- int8_t resolution = 12;
- sensors.setResolution(deviceAddress,resolution);
- int16_t userdata = 24680;
- sensors.setUserData(deviceAddress,userdata);
- // Save configuration and alarm/userdata registers to EEPROM
- sensors.saveScratchPad(deviceAddress);
- // saveScratchPad can also be used without a parameter to save the configuration
- // and alarm/userdata registers of ALL connected sensors to EEPROM:
- //
- // sensors.saveScratchPad();
- //
- // Or the configuration and alarm/userdata registers of a sensor can be saved to
- // EEPROM by index:
- //
- // sensors.saveScratchPadByIndex(0);
-
- // Print current values on the scratchpad (resolution = 12, userdata = 24680)
- printValues();
-
- }
- void loop(){
-
- // Change configuration and alarm/userdata registers on the scratchpad
- int8_t resolution = 10;
- sensors.setResolution(deviceAddress,resolution);
- int16_t userdata = 12345;
- sensors.setUserData(deviceAddress,userdata);
-
- // Print current values on the scratchpad (resolution = 10, userdata = 12345)
- printValues();
-
- delay(2000);
-
- // Recall configuration and alarm/userdata registers from EEPROM
- sensors.recallScratchPad(deviceAddress);
-
- // recallScratchPad can also be used without a parameter to recall the configuration
- // and alarm/userdata registers of ALL connected sensors from EEPROM:
- //
- // sensors.recallScratchPad();
- //
- // Or the configuration and alarm/userdata registers of a sensor can be recalled
- // from EEPROM by index:
- //
- // sensors.recallScratchPadByIndex(0);
-
- // Print current values on the scratchpad (resolution = 12, userdata = 24680)
- printValues();
-
- delay(2000);
-
- }
- void printValues() {
-
- Serial.println();
- Serial.println("Current values on the scratchpad:");
-
- Serial.print("Resolution:\t");
- Serial.println(sensors.getResolution(deviceAddress));
-
- Serial.print("User data:\t");
- Serial.println(sensors.getUserData(deviceAddress));
-
- }
|