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 triggerMoistureRead(void);
int16_t moistureAverage(int8_t sensorPin);
int16_t moistureRead(void);
uint16_t moistureAverage(uint8_t sensorPin);
uint16_t moistureRead(void);
#endif
+1 -2
View File
@@ -38,10 +38,9 @@ int main(void) {
while(true) {
if (readSensors) {
int16_t result = moistureRead();
uint16_t result = moistureRead();
//espSend(VASE_NUM, result)
}
triggerPump(PUMP_D7, 50);
// if(espGet("ask if i need to water plants") == true) {waterPlant()}
enterSleep();
}
+6 -7
View File
@@ -21,22 +21,21 @@ void triggerMoistureRead(void) {
readSensors = true;
}
int16_t moistureAverage(int8_t sensorPin) {
int16_t sum = 0;
for (int i = 0; i < SENSOR_READINGS; i++) {
uint16_t moistureAverage(uint8_t sensorPin) {
uint16_t sum = 0;
for (uint8_t i = 0; i < SENSOR_READINGS; i++) {
sum += adcRead(sensorPin);
//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
}
return sum / SENSOR_READINGS;
}
int16_t moistureRead(void) {
uint16_t moistureRead(void) {
uint16_t overallSum = 0;
for (int8_t i = 0; i < SENSORS_NUM; i++) {
int16_t sensorAverage = moistureAverage(sensorPins[i]);
for (uint8_t i = 0; i < SENSORS_NUM; i++) {
uint16_t sensorAverage = moistureAverage(sensorPins[i]);
//TODO: if a sensor gives 0, discard that sensor entirely (means it is disconnected or not working)
overallSum += sensorAverage;
}
+2 -4
View File
@@ -12,7 +12,7 @@ void pumpsInit(void) {
DDRD |= actuatorMask;
}
void triggerPump(int8_t pump_pin) {
void triggerPump(uint8_t pump_pin) {
// Turn on pump
PORTD |= (1 << pump_pin);
@@ -24,9 +24,7 @@ void triggerPump(int8_t pump_pin) {
}
void waterPlant(void) {
for (int i=0; i < ACTUATORS_NUM; i++) {
for (uint8_t i=0; i < ACTUATORS_NUM; i++) {
triggerPump(actuatorPins[i]);
}
}