Serielle Schnittstelle

By | 3. März 2017

Wenn der Arduino Daten am seriellen Port empfängt, wird immer ein Interrupt ausgelöst. Interrupts sind Ereignisse, auf die der Microcontroller sofort reagiert. Er unterbricht seine aktuellen Aktionen und führt eine für diesen Interrupt definierte Routine aus.

Beim Arduino ist eine Interruptroutine für den seriellen Port vordefiniert (serialEvent()) und diese tut im normalen Betrieb nichts. Um eine Kommunikation und Steuerung über die Serielle Schnittstelle aufzubauen, kann man diese durch eine eigene Routine ersetzen und das geht beispielsweise so:

Die Funktion nimmt nach dem sie aufgerufen wurde, solange Zeichen von der Seriellen Schnittstelle entgegen und legt sie in einem Puffer ab, bis ein Carrige Return (ASCII Code 13) empfangen wird. Dann wird eine zu definierende Funktion aufgerufen (evalSerialData()) in der die gelesenen Daten dann weiter analysiert und verarbeitet werden.

Im einfachsten Fall kann die Funktion evalSerialData() die eingelesenen Daten einfach wieder ausgeben ohne weitere Bearbeitungsschritte zu unternehmen. Dann sähe der Programmcode beispielsweise so aus:

Man benötigt keinen hier keinen Loop-Teil, da die Funktion serialEvent() ja über den Interrupt ausgelöst wird, sobald an der Seriellen Schnittstelle Zeichen eingegeben werden.

**Beitrag befindet sich noch in Bearbeitung **