Simulink Howto

Als aller erstes solltet ihr euch in Matlab mit dem Arduino verbinden.

Je nach Betriebssystem und USB Port ist die Angabe in Klammern zu variieren.

Anschließend öffnen wir in Matlab ein Simulinkfenster und erstellen ein neues Modell. Falls die Arduino Integration erfolgreich installiert wurde, ist bei den Bibliotheken eine Bibliothek mit dem Namen "Arduino IO Library" zu finden.

5_adc_read

Zu erst benötigen wir den "Arduino IO Setup" Block um uns mit dem Arduino zu verbinden. Nach einem Doppelklick kann kann man hier angeben, wie sich Simulink mit dem Arduino verbindet. Wir wählen "Existing workspace arduino variable #1" und geben dann den Namen der Variable ein die wir oben gewählt haben ( a ).

 

Für einen ersten Test lesen wir einfach den erste Analogen Pin (A0) am Arduino aus ohne gesonderte Voreinstellungen. Um einen analogen Pin aus zu lesen, fügen wir den Block "Arduino Analog Read" hinzu. Den Block geben wir als Quelle auch wieder "Existing workspace arduino variable #1" vor und bei Pin wählen wir den Pin 0 aus. Die Sample Time kann 0.2 stehen bleiben.

 

Um die Angaben auslesen zu können nehmen wir von Simulink ein ganz normales "Scope" mit den Standardeinstellungen. Jetzt sind wir fast fertig. Zuletzt müssen wir nur noch schnell die allgemeinen Einstellung für das Model setzen. Dazu klickt ihr einfach auf das Zahnrad in der Menüleiste.

3_config

Und setzen die Einstellungen dann wie folgt:

 

Auf dem Scope wird jetzt aber lediglich der ADC Wert angezeigt mit dem man nicht immer direkt etwas anfangen kann. Um den ADC Wert direkt in eine Spannung um zu rechnen fügen wir vor dem Scope einfach noch einen "Gain" Block ein mit einer Verstärkung von 5/1023.

6_voltage_read

So wird bei einer Spannungsversorgung von 5V direkt die Spannung am ersten Analogen Pin angezeigt.

Viel Spaß beim selber testen. 🙂

 

4 Kommentare zu Simulink Howto

  1. Reinhard Wuitz sagt:

    Hallo,
    habe die ArduinoIO.zip entpackt und die install_arduino.m ausgeführt bzw. vorher noch Anpassungen für COM-Port gemacht. Leider bekomme ich beim Nachvollziehen des Beispiels folgende Fehler:
    An error occurred while running the simulation and the simulation was terminated

    Error evaluating registered method 'Outputs' of MATLAB S-Function 'msfun_arduino_analogread' in 'Test_01/Arduino Analog Read'. The following is the MATLAB call stack (file names and line numbers) that produced this error:
    ['C:\Program Files\MATLAB\R2014b\toolbox\matlab\iofun\@serial\fwrite.m'] [199]
    ['W:\Eigene_Dateien\MATSIM\R2014b_x64\SupportPackage\arduino_io\arduino.m'] [634]
    ['W:\Eigene_Dateien\MATSIM\R2014b_x64\SupportPackage\arduino_io\simulink\msfun_arduino_analogread.m'] [80]

    Unsuccessful write: OBJ must be connected to the hardware with FOPEN.

    Auch wenn ich den Arduino Read Block gegen zB. Digital tausche erhalte ich ebenfalls Fehler. Da ich im Umgang mit dieser Arduino Bibliothek noch keine positive Erfahrung sammeln konnte, komme ich nicht weiter.

    Vielleicht haben Sie ja eine Idee was ich hierbei falsch gemacht habe, bzw. was die Fehlerursache sein könnte.

    Vielen Dank für die Unterstützung.
    Reinhard

    • Kalle sagt:

      Moin Reinhard,

      es ist immer schwierig zu Helfen, wenn man das Problem am eigenen Computer nicht gerade vor sich hat. Außerdem habe ich das letzte mal vor über einem Jahr mit Matlab und einem Arduino gespielt, daher kann ich fast nur raten.

      Aber es sieht mir danach aus, als ob du die aller erste Zeile aus meinem Artikel vergessen hast. In deinem Falle wäre das so etwas wie: a=arduino('COM1');

      Die Fehlermeldung sagt dir ja, dass du dich noch nicht mit der Seriellen Schnittstelle verbunden hast.

      LG
      Kalle

  2. Pascal sagt:

    Hey,
    wo bekomm ich denn die Library zum MC her?
    Danke im Vorraus ;D

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

Time limit is exhausted. Please reload CAPTCHA.