'if' non è un ciclo perché è una decisione/ramificazione. I cicli sono 'while' 'do while' e 'for'. È che spesso scrivono qualcosa come "non mi funziona il ciclo if"

Ma naturalmente non vuol dire che non si possa usare un 'if' in modo ciclico per valutare ripetutamente delle condizioni, anzi, ma la ripetizione è appunto creata con un' istruzione di ciclo come 'while' o 'for' e non con l' 'if' in se stesso.
Detto ciò, direi che la scomposizione in fasi è grosso modo la stessa che avevo pensato. Hai disegnato una via di mezzo tra un diagramma di flusso e un diagramma funzionale sequenziale. Questo è come lo avevo pensato (avevo scomposto la concimazione in due fasi diverse):

Nel tuo diagramma di differente c'è la fase 'input' che non mi è chiara, mentre io davo per scontato un funzionamento ciclico automatico, magari iniziante con la fase riempimento.
Le condizioni di passaggio da una fase all'altra (eventi) che ho scritto in rosso corrispondono ai rombi decisionali (if) del tuo schema. Vuol dire che l'intera sequenza logica si potrebbe gestire con soli sei 'if' principali, ma dipende dalla struttura/codifica che si vuole implementare.
1) Se il programma deve fare solo questo e non anche altre cose "in parallelo", allora può bastare dettagliare meglio ogni singolo blocco sotto forma di diagramma di flusso completo. Se il diagramma prevede solo blocchi di istruzioni sequenziali, ramificazioni 'if' e ripetizioni 'while'/'for' la traduzione in C è in pratica uno a uno, e restano solo i dettagli sintattici. Le varie durate possono essere realizzate con la funzione 'delay'.
2) Se invece si vuole scrivere un programma più "generale", che potrebbe nel frattempo fare anche altre cose, allora servono una struttura e ragionamento diversi, più affini al concetto di
ciclo di scansione di un PLC (le operazioni vengono portate avanti in cicli/passaggi successivi e i ritardi sono realizzati con la permanenza in una fase per un certo numero di cicli fino al riconoscimento di un evento).
La prima via sembra più semplice da affrontare perché la sequenza delle istruzioni corrisponde esattamente al pensiero: faccio questo, poi questo e poi quest'altro. La seconda invece è un po' più tecnica e interessante, perché tante cose si riescono a fare solo con questa, ed è più facilmente modificabile per aggiungere o togliere funzionalità senza stravolgere o ripensare tutto.
Comunque direi che la logica c'è, adesso va dettagliata e tradotta in macchinese...