Die hier beschriebenen Softwaremodule befinden sich auf dem Mikrocontroller der Drehwaage, räumlich getrennt von der Skala, von welcher über eine Infrarot-Steuersignal auf die Drehwaage zugegriffen wird und deren Controller das Signal weiterverarbeitet (Kugelposition, Laser ON/OFF).

Die Software wird auf einem Arduino Pro Mini mit der Adrduino IDE implementiert. Diese und die Daten für den Arduino kann man sich von www.arduino.cc herunterladen. 

Arduinoprogramm zur Steuerung der Drehwaage

Blockschaltbild der Drehwaagensteuerung

Das Programm liest die im RC5-Code übertragenen Infrarot-Signale mittels der IR-Bibliotheksfunktion irrecv.decode(&results)und steuert damit den Laser sowie die Positionen der beiden Feldmassen über den Schrittmotor in Abhängigkeit vom Zustand der Opto-Endschalter.

Der Schrittmotor zur Positionierung der Feldmassen wird dabei über einen Motorcontroller angesteuert, welchem das Taktsignal für den Motorschritt sowie die Steuersignale für die Drehrichtung und den Halb-/Vollschritt-Modus zugeführt wird.

Die Steuersignale der optischen Endschalter werden dem Mikrocontroller, die mechanischen Endschalter dem Motorcontroller direkt zugeführt.

Das Programm enthält außer den genannten Funktionen noch weitere zum Ansteuern von Leuchtdioden zur Statusanzeige der Drehwaagenelektronik.

Das ganze Programm drehwaage_0501.pde. Zum besseren Verständnis sollte man den Schaltplan der Drehwaage hinzuziehen.

Die Arduino Entwicklungsumgebung (IDE) soll dem Laien das Programmieren dieser µController erleichtern, indem man den verwaltungstechnischen 'Overhead' vermindert, durch welchen sich ein Entwicklungsprojekt i.d.R. auszeichnet. Die IDE hat deshalb auch keine Projektverwaltung integriert. Erkauft wird dies zudem  noch durch eine nicht C-Standard konforme Syntax im Programmaufbau und eine reduzierte Behandlung von Datentypen. 


Hard-/Software: Arduino Pro Mini 5V, Arduino IDE 0023.

 

Jedes Arduino - Programm besteht aus mindestens den beiden Funktionen setup() und loop(). Abweichend vom C-Standard, wurde die C-Synthax verändert, um die Programmierung zu verein- fachen. main() entfällt.

 

setup() wird beim Programmstart einmal durchlaufen. Hier werden die Vorseinstellungen vorgenommen; z.B. Initialisierung einer Seriellen Schnitstelle mit Baudrate, etc.

loop() entspricht im Standard C einer Endlos- schleife der Art:  while(1).

 

 

Entwicklungsumgebung (Arduino-IDE)