Scrivere una libreria per Arduino!

no, utilizzi da "fuori" con obj1.variabileinterna solo quelle public

  1. Prova a modificare la tua classe. Hai 2 variabili, k e y. Prova a rendere private una delle due. Ad esempio k
    Ora obj1.k non sarà più accettato.
    Questo serve per "nascondere" un dato interno all'oggetto/classe. Magari poi potresti fare una funzione che ne da il valore. In questo modo puoi leggere il valore ma non scriverlo.

  2. Quindi con k nascosto come fare per saperne il valore? Si potrebbe scrivere una funzione dentro la classe X:

class X
{
  public:
    void start();
    void ok();
    int GetK();
    int y;
  private:
    int k;
};
...
void X::GetK()
{ return(k);
}

Nella loop() invece di:

Serial.println( obj1.k );

dovrai usare:

Serial.println( obj1.GetK() );