Analoge sensoren zonder analoge ingangen op de Raspberry Pi
De Raspberry Pi heeft geen analoge ingangen, maar dat betekent niet dat je sommige soorten analoge sensoren niet kunt gebruiken. Met behulp van een aantal weerstanden en een condensator kunt u een "staprespons" -methode gebruiken om weerstand te meten. Dat is gewoon geweldig als je een pot, fotoresistor of thermistor gebruikt.
Het recept dat volgt komt uit mijn nieuwe boek "The Raspberry Pi Cookbook". Deze manier van gebruik van sensoren is geïnspireerd op dit werk van Adafruit.Om dit recept te maken, heb je nodig:
• Breadboard en jumperdraden• 10kΩ trimpot • Twee 1kΩ weerstanden • 220 nF condensator Open een editor (nano of IDLE) en plak de volgende code in. Zoals bij alle programmavoorbeelden in dit boek, kunt u het programma ook downloaden van de Code-sectie van de Raspberry Pi Cookbook-website, waar het pot_step.py heet. importeer RPi.GPIO als GPIOimporteer tijdGPIO.setmode(GPIO.BCM)a_pin =18b_pin =23 def ontlading():GPIO.setup(a_pin, GPIO.IN) GPIO.setup(b_pin, GPIO.OUT) GPIO.output(b_pin, False) time.sleep(0.005)def charge_time(): GPIO.setup(b_pin, GPIO.IN) GPIO.setup(a_pin, GPIO.OUT) count =0 GPIO.output(a_pin, True) terwijl niet GPIO.input( b_pin): count =count + 1 return countdef analog_read(): charge() return charge_time() while True: print(analog_read()) time.sleep(1)Als je het programma uitvoert, zou je wat output moeten zien zoals deze:$ sudo python pot_step.py1012101016234353677286105123143170De waarde varieert tussen ongeveer 10 en ongeveer 170 als je aan de knop van de trimpot draait.Discussie Om uit te leggen hoe dit programma werkt, moet ik eerst uitleggen hoe de stapresponstechniek kan worden gebruikt om de weerstand van de variabele weerstand te meten. Deze manier van werken wordt staprespons genoemd omdat het werkt door te zien hoe het circuit reageert op de stapverandering wanneer een uitgang van laag naar hoog wordt geschakeld. Je kunt een condensator zien als een tank met elektriciteit, en als deze zich vult met lading, neemt de spanning erover toe. Die spanning kun je niet direct meten, omdat de Raspberry Pido's geen ADC-converter hebben. U kunt echter bepalen hoe lang het duurt voordat de condensator zo vol is dat hij boven de 1,65V komt die een hoge digitale ingang vormt. De snelheid waarmee de condensator zich met lading vult, hangt af van de waarde van de variabele weerstand (Rt). Hoe lager de weerstand, hoe sneller de condensator zich vult met lading en de spanning stijgt. Voor meer details:Analoge sensoren zonder analoge ingangen op de Raspberry PiProductieproces
- Temperatuurbewaking op de Raspberry Pi
- DHT Tiny Breakout voor de Raspberry Pi
- 1-draads temperatuursensor DS1820 op Raspberry Pi (direct GPIO)
- De integratie van sensorgegevens met Raspberry Pi-microprocessor
- Ultrasone sensor (HC-SR04) + Raspberry Pi
- Analoge sensoren uitlezen met één GPIO-pin
- Log- en waarschuwingssysteem van Raspberry Pi Photocell
- Java ME 8 + Raspberry Pi + Sensors =IoT World (deel 1)
- Raspberry Pi digitale Hall-sensor in JAVA
- Een druk op een knop detecteren via GPIO met Raspberry pi
- Analoge sensoren lezen met Raspberry Pi en Zabbix Supervisor