Stap 2: De multiplexing script.
Om het multiplex, kan slechts één sensor een volledige circuit tegelijk hebben. Door het instellen van de de GPIO op hoog, wij verzenden ~3.0v met die sensor en voltooiing van het circuit. De anderen, worden ingesteld op laag Stuur geen spanning. Hierdoor ontstaat in wezen een verbinding aan de grond. Geen stroom.
Nadat we de spanning hebt verzonden, we lezen de ADC-pin en de waarde uitprinten. Wij kunnen die waarde ook opslaan in een variabele.
Deze code ' var1 = adc.read(0)' zal werken. We kunnen vervolgens de waarde bewerken en converteren zoals vereist.
Nadat we lezen of opslaan van de lezing van de sensor, wij zwenking op vandoor en verplaatst naar de volgende sensor.
De vertraging is niet nodig, maar het maakt me beter voelen.
Alle GPIOs wordt gebruikt met analoge sensoren moet worden ingesteld op lage behalve wanneer ze te lezen.
Er is geen bijzondere reden voor het gebruik van GPIOs 16, 14 en 12. Alle drie zou doen. Vermijd het gebruik van GPIO0.
___________________________________
--multisensor.lua
-- ---------------
--configureren pinnen
GPIO.mode (0, gpio. OUTPUT)--16 GPIO
GPIO.mode (5, gpio. OUTPUT)--GPIO 14
GPIO.mode (6, gpio. OUTPUT)--GPIO 12
--alle pinnen op laag ingesteld - geen spanning
GPIO.write (0, gpio. LAAG)
GPIO.write (5, gpio. LAAG)
GPIO.write (6, gpio. LAAG)
--de ADC-waarde met alle pinnen laag afdrukken
afdrukken ("\nADC: zowel GPIOs weinig start:".. ADC.Read(0))
--Verzenden spanning GPIO 16 voltooiing van het circuit voor deze sensor.
GPIO.write (0, gpio. HOOG)
--korte vertraging voordat de lezing, 100ms
TMR.delay(100000)
--Lees de ADC-pin of toewijzen aan varable var adc.read(0) =
afdrukken ("\nADC: GPIO 16 hoge LDR:".. ADC.Read(0))
--Terugkomen GPIO 16 laag, geen spanning.
GPIO.write (0, gpio. LAAG)
--korte vertraging 100ms
TMR.delay(100000)
--Herhaal voor de andere twee sensoren.
GPIO.write (5, gpio. HOOG)
TMR.delay(100000)
afdrukken ("ADC: GPIO 14 hoge Temp:".. ADC.Read(0))
GPIO.write (5, gpio. LAAG)
TMR.delay(100000)
GPIO.write (6, gpio. HOOG)
afdrukken ("ADC: GPIO 12 Hoge Slider:".. ADC.Read(0))
GPIO.write (6, gpio. LAAG)
--opnieuw lezen ADC, deze lezing moet zeer dicht bij de 'start lezing'
afdrukken ("\nADC: zowel GPIOs lage einde:".. ADC.Read(0))