Raspberry Pi - ADC

De Raspberry Pi heeft geen ingebouwde analoge ingangen, waardoor het niet direct mogelijk is om waarden van analoge sensoren zoals potentiometers, thermistors en gassensoren te lezen. Om dit probleem op te lossen, maken we gebruik van een Analoge-naar-Digitale Converter (ADC). In deze tutorial leert u hoe u een ADS1115 ADC-module gebruikt om analoge sensorwaarden uit te lezen met een Raspberry Pi.

Deze tutorial behandelt:

Hardware Benodigdheden

1×Raspberry Pi 5
1×ADS1115 ADC-Module
1×Analoge sensor (bijv. Potentiometer, Lichtsensor, Watersensor)
1×Breadboard (experimenteerprint)
1×Jumper draden (verbindingsdraden)
1×(Aanbevolen) Schroefklem Block Shield voor Raspberry Pi
1×(Aanbevolen) Raspberry Pi Prototyping Basisplaat & Breadboard Kit
1×(Aanbevolen) HDMI-Touchscreen-Monitor voor Raspberry Pi

Of u kunt de volgende kits kopen:

1×DIYables Sensorkit (30 sensoren/displays)
1×DIYables Sensorkit (18 sensoren/displays)
Openbaarmaking: Sommige van de links in deze sectie zijn Amazon-affiliate links. We kunnen een commissie ontvangen voor aankopen die via deze links worden gedaan, zonder extra kosten voor u. We waarderen uw steun.

Begrip van het ADS1115 Module

De ADS1115 is een 16-bit ADC met 4 kanalen en communiceert met de Raspberry Pi via I2C (Inter-Integrated Circuit). Het kan analoge signalen (0–3,3 V) uitlezen en biedt een resolutie van 16 bits.

Het ADS1115-module beschikt over 4 analoge ingangen, wat betekent dat u maximaal 4 verschillende analoge sensoren tegelijkertijd op één ADS1115-module kunt aansluiten. Hierdoor kunt u meerdere sensorwaarden gelijktijdig meten met slechts één ADC-module.

ADS1115 Pinout

ADS1115 ADC Module pinout
Pin Naam Beschrijving
VDD Voedingsspanning (3,3V of 5V)
GND Aarde (ground)
SCL I2C klok (verbinden met Raspberry Pi GPIO3)
SDA I2C data (verbinden met Raspberry Pi GPIO2)
A0-A3 Analoge ingangen
ADDR I2C adres selectie
ALERT/RDY Alert/Ready uitgang (optioneel)

Bedrading van ADS1115 naar Raspberry Pi

ADS1115 Pin Raspberry Pi Pin
VDD 3.3V (Pin 1)
GND GND (Pin 6)
SCL GPIO3 (Pin 5)
SDA GPIO2 (Pin 3)

Hieronder enkele voorbeelden van hoe u de Raspberry Pi, ADS1115-module en verschillende analoge sensoren kunt bedraden:

  • De bedrading tussen Raspberry Pi, ADS1115-module en potentiometer
Raspberry Pi Potentiometer wiring diagram

This image is created using Fritzing. Click to enlarge image

  • De bedrading tussen Raspberry Pi, ADS1115-module en lichtsensor
Raspberry Pi Light Sensor wiring diagram

This image is created using Fritzing. Click to enlarge image

  • De bedrading tussen Raspberry Pi, ADS1115-module en watersensor
Raspberry Pi Water Sensor wiring diagram

This image is created using Fritzing. Click to enlarge image

  • De bedrading tussen Raspberry Pi, ADS1115-module en bodemvochtigheidsensor
Raspberry Pi soil moisture sensor wiring diagram

This image is created using Fritzing. Click to enlarge image

Zoals eerder genoemd, kan het ADS1115-module tot vier analoge sensoren tegelijkertijd verbinden. Deze tutorial laat zien hoe het werkt met één sensor, maar u kunt het eenvoudig aanpassen voor meerdere sensoren.

Hoe gebruik je ADC met Raspberry Pi

  • Zorg dat u Raspbian of een ander Raspberry Pi compatibel besturingssysteem op uw Pi geïnstalleerd heeft.
  • Zorg dat uw Raspberry Pi verbonden is met hetzelfde lokale netwerk als uw PC.
  • Zorg dat uw Raspberry Pi met internet verbonden is indien u libraries moet installeren.
  • Als u voor het eerst een Raspberry Pi gebruikt, bekijk dan hoe u de Raspberry Pi instelt.
  • Verbind uw PC met de Raspberry Pi via SSH met de ingebouwde SSH-client op Linux en macOS of met PuTTY op Windows. Zie hoe u uw PC met Raspberry Pi verbindt via SSH.
  • Voer het volgende commando uit om het configuratieprogramma van de Raspberry Pi te openen:
sudo raspi-config
  • Navigeer naar Interfacing Options > I2C en zet deze aan om de I2C-interface op de Raspberry Pi te activeren.
  • Herstart de Raspberry Pi:
sudo reboot
  • Verbind opnieuw uw PC met de Raspberry Pi via SSH
  • Controleer of de RPi.GPIO-library is geïnstalleerd. Zo niet, installeer deze dan met het volgende commando:
sudo apt-get update sudo apt-get install python3-rpi.gpio
  • Installeer de Adafruit_ADS1x15-library door het volgende commando uit te voeren in de terminal van de Raspberry Pi:
sudo pip install Adafruit-ADS1x15

Analoge waarden uitlezen met Python

  • Maak een Python scriptbestand aan met de naam adc_read.py en voeg de volgende code toe:
# Deze Raspberry Pi code is ontwikkeld door newbiely.nl # Deze Raspberry Pi code wordt zonder enige beperking aan het publiek beschikbaar gesteld. # Voor volledige instructies en schema's, bezoek: # https://newbiely.nl/tutorials/raspberry-pi/raspberry-pi-adc import time import Adafruit_ADS1x15 # Create an ADS1115 ADC object adc = Adafruit_ADS1x15.ADS1115() while True: analog_value = adc.read_adc(0, gain=1) # Read from channel 0 print(f"Analog Value: {analog_value}") time.sleep(1)
  • Sla het bestand op en voer het Python script uit met het volgende commando in de terminal:
python3 adc_read.py

Als alles correct is aangesloten, ziet u de analoge waarden in de terminal verschijnen.

Uitleg van de code:

  • De Adafruit_ADS1x15 library initialiseert de I2C-communicatie.
  • Het ADS1115-object leest de 16-bit ADC-waarde van het opgegeven kanaal.
  • Het script leest en toont continu de analoge waarde elke seconde.

Conclusie

Met een ADC zoals de ADS1115 kan de Raspberry Pi communiceren met analoge sensoren, waardoor zijn mogelijkheden worden uitgebreid. Deze tutorial liet zien hoe u het ADS1115-module bedraadt en programmeert om analoge data te lezen via I2C-communicatie. U kunt nu eenvoudig andere analoge sensoren integreren voor allerlei projecten!

Hieronder vindt u uitgebreide tutorials die uitleggen hoe u een Raspberry Pi met verschillende analoge sensoren verbindt en gebruikt:

Gerelateerde Tutorials

※ ONZE BERICHTEN

  • U bent welkom om de link naar deze tutorial te delen. Gebruik onze inhoud echter niet op andere websites. We hebben veel moeite en tijd gestoken in het maken van de inhoud, respecteer alstublieft ons werk!