Industriële fabricage
Industrieel internet der dingen | Industriële materialen | Onderhoud en reparatie van apparatuur | Industriële programmering |
home  MfgRobots >> Industriële fabricage >  >> Manufacturing Technology >> Productieproces

Analoge sensoren uitlezen met één GPIO-pin

In tegenstelling tot sommige andere apparaten heeft de Raspberry Pi geen analoge ingangen. Alle 17 GPIO-pinnen zijn digitaal. Ze kunnen hoge en lage niveaus weergeven of hoge en lage niveaus lezen. Dit is geweldig voor sensoren die een digitale ingang naar de Pi leveren, maar niet zo geweldig als je een sensor wilt gebruiken die dat niet doet.

Voor sensoren die als variabele weerstand fungeren, zoals LDR's (Light Dependent Resistors) of thermistoren (temperatuursensoren) is er een eenvoudige oplossing. Hiermee kunt u een aantal niveaus meten met behulp van een enkele GPIO-pin. In het geval van een lichtsensor kun je hiermee verschillende lichtniveaus meten.

Het maakt gebruik van een eenvoudig "RC"-oplaadcircuit (Wikipedia-artikel) dat vaak wordt gebruikt als een introductie tot elektronica. In deze schakeling plaats je een Weerstand in serie met een Condensator. Wanneer over deze componenten een spanning wordt aangelegd, stijgt de spanning over de condensator. De tijd die de spanning nodig heeft om 63% van het maximum te bereiken, is gelijk aan de weerstand vermenigvuldigd met de capaciteit. Bij gebruik van een lichtafhankelijke weerstand is deze tijd evenredig met het lichtniveau. Deze tijd wordt de tijdconstante genoemd:

t =RC waar t tijd is, R is weerstand (ohm) en C is capaciteit (farads)

Dus de truc is om te timen hoe lang het duurt voordat een punt in het circuit een spanning bereikt die groot genoeg is om te registreren als een "Hoog" op een GPIO-pin. Deze spanning is ongeveer 2 volt, wat naar mijn smaak dicht genoeg bij 63% van 3,3 V ligt. Dus de tijd die het circuit nodig heeft om een ​​GPIO-ingang van Laag naar Hoog te veranderen, is gelijk aan 't'.

Met een weerstand van 10Kohm en een condensator van 1uF is t gelijk aan 10 milliseconden. In het donker kan onze LDR een weerstand van 1 Mohm hebben, wat een tijd van 1 seconde zou geven. U kunt andere waarden berekenen met behulp van een online tijdconstantecalculator.

Om te garanderen dat er altijd enige weerstand is tussen 3,3V en de GPIO-pin heb ik een weerstand van 2,2Kohm in serie met de LDR geplaatst.

Theorie

Hier is de volgorde van gebeurtenissen:

  • Stel de GPIO-pin in als uitgang en zet deze op Laag. Dit ontlaadt eventuele lading in de condensator en zorgt ervoor dat beide zijden van de condensator 0V zijn.
  • Stel de GPIO-pin in als invoer. Dit start een stroom door de weerstanden en door de condensator naar aarde. De spanning over de condensator begint te stijgen. De tijd die het kost is evenredig met de weerstand van de LDR.
  • Bewaak de GPIO-pin en lees de waarde ervan. Verhoog een teller terwijl we wachten.
  • Op een gegeven moment zal de condensatorspanning voldoende toenemen om door de GPIO-pin (ongeveer 2v) als hoog te worden beschouwd. De benodigde tijd is evenredig met het lichtniveau dat door de LDR wordt gezien.
  • Stel de GPIO-pin in als uitvoer en herhaal het proces indien nodig.

Voor meer details:Analoge sensoren uitlezen met één GPIO-pin


Productieproces

  1. Huishoudelijke temperatuurstroom in kaart brengen met goedkope sensoren
  2. Lijnvolgsensor met RPi
  3. Een effect besturen met echte sensoren
  4. Analoge sensoren uitlezen met één GPIO-pin
  5. Analoge sensoren zonder analoge ingangen op de Raspberry Pi
  6. Java ME 8 + Raspberry Pi + Sensors =IoT World (deel 1)
  7. Analoge sensoren lezen met Raspberry Pi en Zabbix Supervisor
  8. Een eenvoudige analoge naderingssensor met digitale interface (voor Raspberry Pi) [laatste update:7 februari 2014]
  9. Raspberry Pi GPIO met PIR-bewegingssensor:beste tutorial
  10. Analoge sensoren op de Raspberry Pi met een MCP3008
  11. Interfacing HC-SR501 PIR-bewegingssensor met Raspberry Pi