Il codice che hai postato non fa ciò che ho capito che tu vorresti fare, riporto qui quello che ho capito, nel caso conferma o correggi:
Avvio la bilancia non devo fare nulla finché l'utente non preme il pulsante.
Quando l'utente ha premuto il primo led siaccende di rosso, a quel punto inizio a controllare il peso, quando ho raggiunto il peso esatto il primo led si accende di verde
Ho capito bene? Se si il tuo codice non corrisponde a quanto sopra esposto.
A questo punto mi sono perso, i pesi successivi sono in aggiunta a quello presente, ovvero non rimuovo ciò che è sulla bilancia oppure ogni ingrediente fa storia a se ovvero peso il primo lo tolgo peso il secondo lo tolgo, ecc.??
In ogni caso visto che stai parlando di pesate multiple con relativi pesi ti dico già di studiare come funzionano gi Array del C perché ti torneranno molto utili, è impensabile di scrivere codice ripetuto solo per cambiare il peso da raggiungere.