Battery percentage incorrectly send to gateway.
- 
					
					
					
					
 I ordered a custom pcb with a ATMega328P and a dallas tempsensor , powered by 2AA batteries. Simular like http://forum.mysensors.org/topic/1107/sensors-in-boxes/7. I use allso the sketch as shown in that topic, however the battery status allways read 102%. I'm sure the batteries are not full. 
 Can you point me in the right direction why my battery percentage is not send correctly?// Example sketch showing how to send in OneWire temperature readings 
 #include <MySensor.h>
 #include <SPI.h>
 #include <DallasTemperature.h>
 #include <OneWire.h>#define ONE_WIRE_BUS 3 // Pin where dallase sensor is connected 
 #define MAX_ATTACHED_DS18B20 16
 unsigned long SLEEP_TIME = 30000; // Sleep time between reads (in milliseconds)
 OneWire oneWire(ONE_WIRE_BUS);
 DallasTemperature sensors(&oneWire);
 MySensor gw;
 float lastTemperature[MAX_ATTACHED_DS18B20];
 int numSensors=0;
 boolean receivedConfig = false;
 boolean metric = true;
 // Initialize temperature message
 MyMessage msg(0,V_TEMP);
 MyMessage msgvolt(1,V_VOLTAGE);
 int BATTERY_SENSE_PIN = A0;
 int oldBatteryPcnt = 0;void setup() 
 {
 analogReference(INTERNAL);
 // Startup OneWire
 sensors.begin();// Startup and initialize MySensors library. Set callback for incoming messages. 
 gw.begin();// Send the sketch version information to the gateway and Controller 
 gw.sendSketchInfo("Temperature Sensor", "1.0");// Fetch the number of attached temperature sensors 
 numSensors = sensors.getDeviceCount();// Present all sensors to controller 
 for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {
 gw.present(i, S_TEMP);
 }
 }void loop() 
 {
 // Process incoming messages (like config from server)
 gw.process();// Fetch temperatures from Dallas sensors 
 sensors.requestTemperatures();// Battery Monitoring 
 int sensorValue = analogRead(BATTERY_SENSE_PIN);
 float batteryV = sensorValue * 0.003363075;
 int batteryPcnt = sensorValue / 10;Serial.print("Battery Voltage: "); 
 Serial.print(batteryV);
 Serial.println(" V");Serial.print("Battery percent: "); 
 Serial.print(batteryPcnt);
 Serial.println(" %");if (oldBatteryPcnt != batteryPcnt) { 
 gw.send(msgvolt.set(batteryPcnt,1));
 oldBatteryPcnt = batteryPcnt;
 }
 // Read temperatures and send them to controller
 for (int i=0; i<numSensors && i<MAX_ATTACHED_DS18B20; i++) {// Fetch and round temperature to one decimal float temperature = static_cast<float>(static_cast<int>((gw.getConfig().isMetric?sensors.getTempCByIndex(i):sensors.getTempFByIndex(i)) * 10.)) / 10.; // Only send data if temperature has changed and no error if (lastTemperature[i] != temperature && temperature != -127.00) { // Send in the new temperature gw.send(msg.setSensor(i).set(temperature,1)); lastTemperature[i]=temperature; }} 
 gw.sleep(SLEEP_TIME);
 }
 
- 
					
					
					
					
 I believe the sketch you linked was built for 2-AAA batteries, not 2-AA. 
 
- 
					
					
					
					
 I tried just with 2 AAA batteries (used from a remotecontrol), again it shows 102%.  
 
- 
					
					
					
					
 Did you wire the voltage divider like this? http://www.mysensors.org/build/battery or how does your wiring look like=? 
 
- 
					
					
					
					
 @sundberg84 
 This is a screenshot of the schema. ( left out the top layer which is only used for the radio) I tried the basic battery sensor sketch. I see that the sensor value is devided 10. 
 Should this be default or can I calculate how the devider should be programmed?float batteryV = sensorValue * 0.003363075; 
 int batteryPcnt = sensorValue / 10;end: 1-1-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ox00x00send: 1-1-0-0 s=255,c=0,t=17,pt=0,l=3,sg=0,st=ok:1.5 
 send: 1-1-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0
 read: 0-0-1 s=255,c=3,t=6,pt=0,l=1,sg=0:M
 sensor started, id=1, parent=0, distance=1
 send: 1-1-0-0 s=255,c=3,t=11,pt=0,l=13,sg=0,st=ok:Battery Meter
 send: 1-1-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=ok:1.0
 1023
 Battery Voltage: 3.44 V
 Battery percent: 102 %
 send: 1-1-0-0 s=255,c=3,t=0,pt=1,l=1,sg=0,st=ok:102
 
- 
					
					
					
					
 Ok... resistors are switched place , problem solved  make a big difference offcource. make a big difference offcource.send: 1-1-0-0 s=255,c=3,t=6,pt=1,l=1,sg=0,st=ok:0 
 read: 0-0-1 s=255,c=3,t=6,pt=0,l=1,sg=0:M
 sensor started, id=1, parent=0, distance=1
 send: 1-1-0-0 s=255,c=3,t=11,pt=0,l=13,sg=0,st=ok:Battery Meter
 send: 1-1-0-0 s=255,c=3,t=12,pt=0,l=3,sg=0,st=ok:1.0
 934
 Battery Voltage: 3.14 V
 Battery percent: 93 %
 send: 1-1-0-0 s=255,c=3,t=0,pt=1,l=1,sg=0,st=ok:93
 
 
			
		 
			
		 
					
				