Change data types regarding sensor readings and sensor/actuator pins from signed to unsigned

This commit is contained in:
2025-05-17 13:16:13 +02:00
parent d6bd1932d3
commit c7abf18736
4 changed files with 11 additions and 15 deletions
+2 -2
View File
@@ -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
+1 -2
View File
@@ -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();
} }
+6 -7
View File
@@ -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;
} }
+2 -4
View File
@@ -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]);
} }
} }