ho sperimentato molto e sono riuscito a capire abbastanza bene dove era l'errore, che penso di poter ricondurre a come leggevo il read(), infatti mi sembra di aver capito che usando int a=Serial.read se inviavo ad es. 1 a diventava uguale a 49 e quindi l'errore era già li, mentre io pensavo che a sarebbe stata uguale a 1 e che poi l'errore fosse nel print()
grazie comunque per la risposta