Change data types regarding sensor readings and sensor/actuator pins from signed to unsigned
This commit is contained in:
@@ -45,7 +45,7 @@ extern volatile bool readSensors;
|
|||||||
|
|
||||||
void sensorsInit(void);
|
void sensorsInit(void);
|
||||||
void triggerMoistureRead(void);
|
void triggerMoistureRead(void);
|
||||||
int16_t moistureAverage(int8_t sensorPin);
|
uint16_t moistureAverage(uint8_t sensorPin);
|
||||||
int16_t moistureRead(void);
|
uint16_t moistureRead(void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
@@ -38,10 +38,9 @@ int main(void) {
|
|||||||
|
|
||||||
while(true) {
|
while(true) {
|
||||||
if (readSensors) {
|
if (readSensors) {
|
||||||
int16_t result = moistureRead();
|
uint16_t result = moistureRead();
|
||||||
//espSend(VASE_NUM, result)
|
//espSend(VASE_NUM, result)
|
||||||
}
|
}
|
||||||
triggerPump(PUMP_D7, 50);
|
|
||||||
// if(espGet("ask if i need to water plants") == true) {waterPlant()}
|
// if(espGet("ask if i need to water plants") == true) {waterPlant()}
|
||||||
enterSleep();
|
enterSleep();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -21,22 +21,21 @@ void triggerMoistureRead(void) {
|
|||||||
readSensors = true;
|
readSensors = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t moistureAverage(int8_t sensorPin) {
|
uint16_t moistureAverage(uint8_t sensorPin) {
|
||||||
int16_t sum = 0;
|
uint16_t sum = 0;
|
||||||
for (int i = 0; i < SENSOR_READINGS; i++) {
|
for (uint8_t i = 0; i < SENSOR_READINGS; i++) {
|
||||||
sum += adcRead(sensorPin);
|
sum += adcRead(sensorPin);
|
||||||
//TODO: implement variance check (if over a certain variance discard measurements for this cycle)
|
//TODO: implement variance check (if over a certain variance discard measurements for this cycle)
|
||||||
//TODO: maybe add a small delay using watchdog here?
|
|
||||||
//TODO IMPORTANT: if value < 1 or > 1022, discard that measurement
|
//TODO IMPORTANT: if value < 1 or > 1022, discard that measurement
|
||||||
}
|
}
|
||||||
return sum / SENSOR_READINGS;
|
return sum / SENSOR_READINGS;
|
||||||
}
|
}
|
||||||
|
|
||||||
int16_t moistureRead(void) {
|
uint16_t moistureRead(void) {
|
||||||
uint16_t overallSum = 0;
|
uint16_t overallSum = 0;
|
||||||
|
|
||||||
for (int8_t i = 0; i < SENSORS_NUM; i++) {
|
for (uint8_t i = 0; i < SENSORS_NUM; i++) {
|
||||||
int16_t sensorAverage = moistureAverage(sensorPins[i]);
|
uint16_t sensorAverage = moistureAverage(sensorPins[i]);
|
||||||
//TODO: if a sensor gives 0, discard that sensor entirely (means it is disconnected or not working)
|
//TODO: if a sensor gives 0, discard that sensor entirely (means it is disconnected or not working)
|
||||||
overallSum += sensorAverage;
|
overallSum += sensorAverage;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ void pumpsInit(void) {
|
|||||||
DDRD |= actuatorMask;
|
DDRD |= actuatorMask;
|
||||||
}
|
}
|
||||||
|
|
||||||
void triggerPump(int8_t pump_pin) {
|
void triggerPump(uint8_t pump_pin) {
|
||||||
// Turn on pump
|
// Turn on pump
|
||||||
PORTD |= (1 << pump_pin);
|
PORTD |= (1 << pump_pin);
|
||||||
|
|
||||||
@@ -24,9 +24,7 @@ void triggerPump(int8_t pump_pin) {
|
|||||||
}
|
}
|
||||||
|
|
||||||
void waterPlant(void) {
|
void waterPlant(void) {
|
||||||
for (int i=0; i < ACTUATORS_NUM; i++) {
|
for (uint8_t i=0; i < ACTUATORS_NUM; i++) {
|
||||||
triggerPump(actuatorPins[i]);
|
triggerPump(actuatorPins[i]);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user