adc.*
Abfragen von Analog zu Digital Wandlern.
adc.open
Öffnen des ADC Moduls. Erst nach dem öffnen ist eine Konfiguration der Kanäle möglich.
adc.close
Schließen das ADC Moduls. Die verwendeten Pins gehen wieder in ihren Grundzustand zurück.
adc.config
Konfigurieren eines ADC Kanals. Die Anzahl der Kanäle und deren Eigenschaften sind von der verwendeten Hardware abhängig. Die Kanäle werden von 0 an gezählt. Welcher Kanal mit welchen Pin verbunden ist muss der Beschreibung der Hardware entnommen werden. Der entsprechende Pin wird für andere Aufgaben gesperrt. Genauso kann er nicht konfiguriert werden wenn er schon andere Funktionen erfüllt.
Da es bei der ADC Hardware große Unterschiede gibt wurde versucht das ADC Modul so universell wie möglich zu machen. Es gibt verschiedene Einstellungen die aber nicht auf jeder Hardware zur Verfügung stehen. Ebenso wird die Auflösung des Wandler verborgen und der Messwert ist auf 1 normiert.
- free
Der Kanal wird wieder freigegeben und der verwendeten Pin geht wieder in den Grundzustand zurück.
- gain0.5, gain1, gain2, gain4
Verstärkungsfaktor des Kanals.
- bipolar
Der gemessene Wert wird sich im Bereich von -0.5 bis +0.5 bewegen. Der Spannungswert der 0.0 ergibt ist meist Uref / 2. Der Spannungswert der +0.5 ist Uref bei einem gain von 1.
- unipolar
Der gemessene Wert wird sich im Bereich von 0.0 bis 1.0 bewegen. Der Spannungswert der 1.0 ergibt ist meist Uref bei einem gain von 1.
adc.get
Abfragen von ein oder mehr Kanälen. Wird die Funktion get ohne Parameter aufgerufen werden als Resultat alle konfigurierten Kanäle zurückgeliefert. Er ist auch möglich die gewünschten Kanalnummern als Parameter zu übergeben.
Beispiel:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 |
local cn = require 'cn' local adc = require 'adc' adc.open() adc.config(0, 'UNIPOLAR', 'GAIN1') adc.config(1, 'UNIPOLAR', 'GAIN2') while true do -- Read out channel by channel print(adc.get(0), adc.get(1)) sys.sleep(0.2) -- Read out channels with one call print(adc.get(0, 1)) sys.sleep(0.2) -- Bulk read out all enabled channels print(adc.get()) sys.sleep(0.2) end while sys.idle() do end |