fix WiFiEnable to pin 3, fix presentation of energy

This commit is contained in:
hg 2015-05-18 22:07:33 +02:00
parent 5e433458c7
commit 023e557014
3 changed files with 16 additions and 15 deletions

View File

@ -29,10 +29,7 @@ uint16_t voltage;
uint16_t cosphi; uint16_t cosphi;
uint16_t current; uint16_t current;
uint16_t power; uint16_t power;
union { uint16_t energy[2];
uint16_t in[2];
uint32_t v;
} energy;
float startEnergy = 0; float startEnergy = 0;
@ -40,14 +37,19 @@ float startEnergy = 0;
float getVoltage() { return (float)voltage; } float getVoltage() { return (float)voltage; }
float getCurrent() { return (float)current * 0.1; } float getCurrent() { return (float)current * 0.1; }
float getCosPhi() { return (float)cosphi * 0.01; } float getCosPhi() { return (float)cosphi * 0.01; }
float getPower() { return (float)power * 0.01; } float getPower() { return (float)power * 10; }
float getEnergy() { return (float)energy.v; }
float getNewEnergy() { return ((float)energy.v) - startEnergy; } float getEnergy() {
uint32_t v = ((uint32_t)energy[1]) + (((uint32_t)energy[0]) << 16);
float vv = ((float)v) * 0.01;
return vv;
}
float getNewEnergy() { return getEnergy() - startEnergy; }
// void modbusAppBegin(Mudbus *mb) { // void modbusAppBegin(Mudbus *mb) {
void modbusAppBegin() { void modbusAppBegin() {
pinMode(ZEROING_PIN, INPUT_PULLUP);
// modbusSlave = mb; // modbusSlave = mb;
@ -57,7 +59,7 @@ void modbusAppBegin() {
modbus_construct(&packets[COSPHI], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 39, 1, &cosphi); modbus_construct(&packets[COSPHI], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 39, 1, &cosphi);
modbus_construct(&packets[CURRENT], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 36, 1, &current); modbus_construct(&packets[CURRENT], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 36, 1, &current);
modbus_construct(&packets[POWER], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 37, 1, &power); modbus_construct(&packets[POWER], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 37, 1, &power);
modbus_construct(&packets[ENERGY], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 27, 2, energy.in); modbus_construct(&packets[ENERGY], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 27, 2, energy);
// modbus_construct(&packets[POWER], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 1, 1, &power); // modbus_construct(&packets[POWER], MODBUS_ADDRESS, READ_HOLDING_REGISTERS, 1, 1, &power);
@ -69,7 +71,7 @@ void modbusAppExec() {
modbus_update(); modbus_update();
float nEnergy = getEnergy(); float nEnergy = getEnergy();
if (((0 == startEnergy) && (0 != nEnergy)) || (digitalRead(ZEROING_PIN) == 0)) { if ((0 == startEnergy) && (0 != nEnergy)) {
startEnergy = nEnergy; startEnergy = nEnergy;
} }

View File

@ -14,12 +14,11 @@
const uint32_t MODBUS_BAUD = 9600; const uint32_t MODBUS_BAUD = 19200;
const uint16_t MODBUS_TIMEOUT = 10000; const uint16_t MODBUS_TIMEOUT = 10000;
const uint16_t MODBUS_SCANRATE = 1000; const uint16_t MODBUS_SCANRATE = 1000;
const uint8_t MODBUS_RETRY_COUNT = 25; const uint8_t MODBUS_RETRY_COUNT = 25;
const uint8_t MODBUS_TX_ENABLE_PIN = 2; const uint8_t MODBUS_TX_ENABLE_PIN = 2;
const uint8_t ZEROING_PIN = 3;
const uint8_t MODBUS_ADDRESS = 1; const uint8_t MODBUS_ADDRESS = 1;
// void modbusAppBegin(Mudbus *mb); // void modbusAppBegin(Mudbus *mb);

View File

@ -14,7 +14,7 @@
#include <avr/wdt.h> #include <avr/wdt.h>
const uint8_t WIFI_ENABLE_PIN = 4; const uint8_t WIFI_ENABLE_PIN = 3;
LiquidCrystal lcd = LiquidCrystal(A0, A1, A2, A3, A4, A5); LiquidCrystal lcd = LiquidCrystal(A0, A1, A2, A3, A4, A5);
@ -69,8 +69,8 @@ void printWifiStatus() {
void setup() { void setup() {
pinMode(WIFI_ENABLE_PIN, INPUT_PULLUP); pinMode(WIFI_ENABLE_PIN, INPUT_PULLUP);
delay(100); delay(500);
wifiEnabled = true; // (digitalRead(WIFI_ENABLE_PIN) != 0); wifiEnabled = (digitalRead(WIFI_ENABLE_PIN) != 0);
Serial.begin(57600); Serial.begin(57600);