problemi con la creazione di una semplice libreria

Salve a tutti
Ho creato un semplice circuito: un pulsante collegato ai pin 5v, 9 e gnd. Ho provato a scrivere un programma e un'apposita libreria secondo cui quando premo il pulsante il Serial Monitor dovrebbe scrivere "acceso". Però quando premo il pulsante il Serial MOnitor scrive lettere, simboli e numeri a casaccio.
Ecco il file.h

#ifndef LeggoM_h
#define LeggoM_h
#include "Arduino.h"
#include <SoftwareSerial.h>
class LeggoM
{
  public:
  LeggoM (int pin);
  void leggo();
  int val;
  private:
  int _pin, _val;
};
#endif

file.cpp

#include "Arduino.h"
#include <SoftwareSerial.h>
#include "LeggoM.h"
LeggoM::LeggoM(int pin)
{
  _pin=pin;
  Serial.begin(9600);
}
void LeggoM::leggo()
{
    Serial.begin(9600);
    val=0;
    val=digitalRead(_pin);
    if (val==1)
    {
        Serial.print ("acceso\n");
     }
}

questo il file.ino

#include <SoftwareSerial.h>
#include <LeggoM.h>
LeggoM Morse(9);
int mal;
void setup() 
{  
  Serial.begin(9600);
}

void loop() 
{  
  Morse.leggo();
}

Qualcuno potrebbe aiutarmi ? Grazie

Ad ogni ciclo di loop() riesegui l'inizializzazione della seriale, di sicuro questo non va bene, si fa una singola volta nel setup().