Simulink

Hallo leute ,
Ich verscuhe mal mein Programmcode von einer Drehzalmessung bei IDE Arduino Uno ( Hall-effekt sensor D2 ) die Daten nach Simulink zu Übertagen.
Das code gibts nach je 4 impulse der Drehzahl aus .
kann vielleicht mir jemand Step bei Step das zeigen ?
ich habe viele Tuto angeschaut aber immernoch nichts verstanden :confused:
( Arduino Package bei Matlab schon vorhanden)
Vielen Dank

Und wo ist Dein Code? Setze ihn bitte in Codetags (</> oben links)

Gruß Tommy

volatile int impulse=0;
int drehzahl;
unsigned long detektzeit =0;
volatile unsigned long beginnzeit;

void setup() {
Serial.begin(9600);
pinMode(2,INPUT_PULLUP);
attachInterrupt(0,impulsez,RISING); //reagiere auf steigende Flanken auf PIN 2

}

void loop() {
   beginnzeit=millis();
  if (beginnzeit-detektzeit>=1000){
 drehzahl=(impulse*60);
 Serial.print("Drehzahl ="); //print the word "RPM" and tab.
 Serial.print(drehzahl); // print the rpm value.
 Serial.print("\t Hz="); 
 Serial.println(impulse);
 impulse=0;
 detektzeit=beginnzeit;
} 

}
void impulsez(){
  impulse++;
       
  }

Der Vergleich
beginnzeit-detektzeit == 1000
sollte besser
beginnzeit-detektzeit >= 1000
heißen

Lies das Programm genau, und schreibe im Klartext als Kommentar dahinter, was du denkst, was es tut

Du musst beim Zugriff auf die Variable impulse die Interrupts ausschalten.

volatile int impulse=0;
int drehzahl;
unsigned long detektzeit =0;
volatile unsigned long beginnzeit;

void setup() {
Serial.begin(9600);
//pinMode(2,INPUT); die Zeile kann raus
pinMode(2,INPUT_PULLUP);
attachInterrupt(0,impulsez,RISING); //reagiere auf steigende Flanken auf PIN 2

}

void loop() {
  beginnzeit=millis();
  if (beginnzeit-detektzeit>=1000){
      noInterrupts();
      drehzahl=(impulse*60);
      impulse=0;
      i[quote][/quote]nterrupts();
 Serial.print("Drehzahl ="); //print the word "RPM" and tab.
 Serial.print(drehzahl); // print the rpm value.
 Serial.print("\t Hz=");
 Serial.println(impulse);
 detektzeit=beginnzeit;
}

}
void impulsez(){
  impulse++;
       
  }

Gruß Tommy

Mein problem ist wie ich die daten von arduino in Simulink binden

Da wirst Du wohl im Matlab-Forum fragen müssen.
Als Basis sollte aber erst mal der Sketch auf dem Arduiono funktionieren, was er vorher nicht getan hat.

Gruß Tommy