Help With EEPROM.h Library For Arduino Nano BLE Sense
Maybe your like
Hello @marvin,
This seems to be an Arduino related issue. The library you are using has not been ported to be compatible with the Arduino NANO 33 BLE SENSE.
See here if you want to implement a workaround to adapt the library: https://forum.arduino.cc/t/eeprom-on-the-nano-33-ble/665077
However, on my side I would use this sample code that does not depend on a library (found it online here: https://wiki.dfrobot.com/Gravity__Analog_TDS_Sensor___Meter_For_Arduino_SKU__SEN0244):
/*************************************************** DFRobot Gravity: Analog TDS Sensor / Meter For Arduino <https://www.dfrobot.com/wiki/index.php/Gravity:_Analog_TDS_Sensor_/_Meter_For_Arduino_SKU:_SEN0244> Created 2017-8-22 By Jason <[email protected]@dfrobot.com> GNU Lesser General Public License. See <http://www.gnu.org/licenses/> for details. All above must be included in any redistribution /***********Notice and Trouble shooting*************** 1. This code is tested on Arduino Uno and Leonardo with Arduino IDE 1.0.5 r2 and 1.8.2. 2. More details, please click this link: <https://www.dfrobot.com/wiki/index.php/Gravity:_Analog_TDS_Sensor_/_Meter_For_Arduino_SKU:_SEN0244> ****************************************************/ #define TdsSensorPin A1 #define VREF 5.0 // analog reference voltage(Volt) of the ADC #define SCOUNT 30 // sum of sample point int analogBuffer[SCOUNT]; // store the analog value in the array, read from ADC int analogBufferTemp[SCOUNT]; int analogBufferIndex = 0,copyIndex = 0; float averageVoltage = 0,tdsValue = 0,temperature = 25; void setup() { Serial.begin(115200); pinMode(TdsSensorPin,INPUT); } void loop() { static unsigned long analogSampleTimepoint = millis(); if(millis()-analogSampleTimepoint > 40U) //every 40 milliseconds,read the analog value from the ADC { analogSampleTimepoint = millis(); analogBuffer[analogBufferIndex] = analogRead(TdsSensorPin); //read the analog value and store into the buffer analogBufferIndex++; if(analogBufferIndex == SCOUNT) analogBufferIndex = 0; } static unsigned long printTimepoint = millis(); if(millis()-printTimepoint > 800U) { printTimepoint = millis(); for(copyIndex=0;copyIndex<SCOUNT;copyIndex++) analogBufferTemp[copyIndex]= analogBuffer[copyIndex]; averageVoltage = getMedianNum(analogBufferTemp,SCOUNT) * (float)VREF / 1024.0; // read the analog value more stable by the median filtering algorithm, and convert to voltage value float compensationCoefficient=1.0+0.02*(temperature-25.0); //temperature compensation formula: fFinalResult(25^C) = fFinalResult(current)/(1.0+0.02*(fTP-25.0)); float compensationVolatge=averageVoltage/compensationCoefficient; //temperature compensation tdsValue=(133.42*compensationVolatge*compensationVolatge*compensationVolatge - 255.86*compensationVolatge*compensationVolatge + 857.39*compensationVolatge)*0.5; //convert voltage value to tds value //Serial.print("voltage:"); //Serial.print(averageVoltage,2); //Serial.print("V "); Serial.print("TDS Value:"); Serial.print(tdsValue,0); Serial.println("ppm"); } } int getMedianNum(int bArray[], int iFilterLen) { int bTab[iFilterLen]; for (byte i = 0; i<iFilterLen; i++) bTab[i] = bArray[i]; int i, j, bTemp; for (j = 0; j < iFilterLen - 1; j++) { for (i = 0; i < iFilterLen - j - 1; i++) { if (bTab[i] > bTab[i + 1]) { bTemp = bTab[i]; bTab[i] = bTab[i + 1]; bTab[i + 1] = bTemp; } } } if ((iFilterLen & 1) > 0) bTemp = bTab[(iFilterLen - 1) / 2]; else bTemp = (bTab[iFilterLen / 2] + bTab[iFilterLen / 2 - 1]) / 2; return bTemp; }I have seen that you also created a new thread on stackoverflow: https://stackoverflow.com/questions/69359737/gravity-tds-h-implementation-with-arduino-nano-ble-sense
Regards,
Louis
Tag » Arduino Ble Eeprom
-
Non Volatile Memory Nano 33 BLE Sense - Storage - Arduino Forum
-
Library For Missing EEPROM Functionality On Nano 33 BLE
-
EEPROM On The Nano 33 BLE - Arduino Forum
-
FlashStorage - Arduino Reference
-
Nano 33 BLE With External EEPROM - Storage - Arduino Forum
-
EEPROM Emulation On The New Nano Types - Arduino Forum
-
Persistent Storage - Nano 33 BLE - Arduino Forum
-
NanoBLEFlashPrefs - Arduino Reference
-
Arduino Nano 33 BLE - Use Of Flash To Store Data; How To Expand A ...
-
Arduino-Nano-33-BLE-Sense-Code-Collection/ - GitHub
-
EEPROM With Arduino - Internal & External - DroneBot Workshop
-
BLE-Nano Arduino ATMEGA328 Tích Hợp CC2540 - Thegioiic
-
[Solved] Arduino Nano 33 BLE - Use Of Flash To Store Data