Salve ragazzi, ieri ho provato a cimentarmi per la prima volta nella programmazione ad oggetti con Arduino. Vorrei creare un oggetto per il sensore ad ultrasuoni, con una funzione che mi ritorni la distanza. Il problema è che non riesco a memorizzare valori nelle variabili, ho provato a mettere dei messaggi seriali ed ho notato che proprio non mi registra niente. Il codice all'interno della funzione è un programma esempio che compilato a parte funziona benissimo. Grazie mille in anticipo XD, di seguito il codice:
class Ultrasuoni{
public:
//Costruttore
Ultrasuoni(int,int);
void distance();
private:
int echo;
int trigger;
};
Ultrasuoni::Ultrasuoni(int echo1,int trigger1){
echo = echo1;
trigger = trigger1;
Serial.print("Echo: ");
Serial.println(echo);
Serial.print("Trigger: ");
Serial.println(trigger);
}
void Ultrasuoni::distance(){
digitalWrite( trigger, LOW );
digitalWrite( trigger, HIGH );
delayMicroseconds( 10 );
digitalWrite( trigger, LOW );
long duration = pulseIn( echo, HIGH );
long r = 0.034 * duration / 2;
Serial.print( "durata: " );
Serial.print( duration );
Serial.print( " , " );
Serial.print( "distanza: " );
if( duration > 6000 ) Serial.println( "fuori portata");
else {
Serial.print( r );
Serial.println( "cm" );
}
}
Ultrasuoni Sensore1(24,22);
void setup() {
Serial.begin(9600);
}
void loop() {
Sensore1.distance();
}