Nachbau eines Luxmeters

Es geht hier um den Nachbau mithilfe eines LDR, um das Licht zu messen. Schwerpunkt ist hierbei der Aufwand der Berechnung und was das für den Bedarf an Speicherplatz und Rechenzeit bedeutet, also der Ressourcenverbrauch für Fließkomma- bzw. Floating-Point Berechnungen. Für den Aufbau benutze ich drei verschiedene Arduino Boards ( Uno, Due und Mega2560 ). Als AD Wandler einen externen 16bit ADC über I2C und eine Zweizeilige LCD Anzeige ebenfalls über I2C. Mich interessieren dabei folgende Größen:

  • der Programmspeicherplatz ohne und mit Luxmeterberechnung
  • die Laufzeit der Luxmeterberechnung im Betrieb
    Für die Laufzeitmessung setze ich einfach einen Pin auf High und messe den dann mit einem Oszilloskop.

Ergebnisse:

  • Dateigrößen

ohne Luxmeterberechnung, ohne Laufzeitmessung, ohne Serialausgabe:

Arduino Due : 40656 Bytes Programmspeicher
Arduino Uno : 5522 Bytes Programmspeicher
Arduino Mega2560 : 5910 Bytes Programmspeicher

mit Luxmeterberechnung, ohne Laufzeitmessung, ohne Serialausgabe:

Arduino Due
Nach [1] : 40752 Bytes Programmspeicher, Differenz 96 Bytes
Nach [2] : 45328 Bytes Programmspeicher, Differenz 4672 Bytes

Arduino Uno
Nach [1] : 6556 Bytes Programmspeicher, Differenz 1034 Bytes
Nach [2] : 7462 Bytes Programmspeicher, Differenz 1940 Bytes

Arduino Mega2560
Nach [1] : 6878 Bytes Programmspeicher, Differenz 968 Bytes
Nach [2] : 7718 Bytes Programmspeicher, Differenz 1808 Bytes

  • Laufzeiten der Berechnung mit Luxmeterberechnung

Arduino Due
Nach [1] : 22 mikrosekunden
Nach [2] : 220 mikrosekunden

Arduino Uno
Nach [1] : 120 mikrosekunden, statt Meßwert ein Fragezeichen (sprintf()?)
Nach [2] : 410 mikrosekunden, statt Meßwert ein Fragezeichen (sprintf()?)

Arduino Mega2560
Nach [1] : 125 mikrosekunden, statt Meßwert ein Fragezeichen (sprintf()?)
Nach [2] : 420 mikrosekunden, statt Meßwert ein Fragezeichen (sprintf()?)

Der Sketch

LDR und Display : Enthält weitere Informationen für die Atmel Studio IDE zum Debuggen auf dem Arduino Due.

Fazit:
Für den Programmspeicherverbrauch ist das überraschend wenig. Mit ca. 1k bis 4k hatte ich nicht gerechnet. Für die Laufzeit ein sehr überraschendes Ergebnis, viel kürzer als erwartet.

Es lohnt sich also zu Messen. Insgesamt sind also Speicherplatzbedarf und Laufzeiten bei weitem viel kleiner bzw. kürzer als immer behauptet wird !

Links

Licht messen
Lichtmessen – I2C Bus mit mehreren Teilnehmern

Fotowiderstand
https://de.wikipedia.org/wiki/Fotowiderstand

Lux
https://de.wikipedia.org/wiki/Lux_(Einheit)

Beleuchtungsstärke mit Tabelle natürlicher Beleuchtungsstärken
https://de.wikipedia.org/wiki/Beleuchtungsstärke#Beispiele

Fotowiderstand im Luxmeter [1]
http://home.roboticlab.eu/de/examples/sensor/photoresistor

Design a Luxmeter Using a Light Dependent Resistor [2]
https://www.allaboutcircuits.com/projects/design-a-luxmeter-using-a-light-dependent-resistor/

Arduino-Luxmeter mit Fotowiderstand
http://www.kriwanek.de/index.php/de/arduino/sensoren/428-arduino-luxmeter-mit-fotowiderstand-ldr

Veröffentlicht von

Jürgen

Ich bin Software Ingenieur und habe meine Schwerpunkte in allen Aktivitäten, die zur Software Entwicklung gehören. Am längsten bin ich als Software Entwickler von Embedded Software in C tätig.