Inhoudsopgave:

Raspberry Pi GPIO-circuits: een LDR analoge sensor gebruiken zonder een ADC (analoog naar digitaal converter) - Ajarnpa
Raspberry Pi GPIO-circuits: een LDR analoge sensor gebruiken zonder een ADC (analoog naar digitaal converter) - Ajarnpa

Video: Raspberry Pi GPIO-circuits: een LDR analoge sensor gebruiken zonder een ADC (analoog naar digitaal converter) - Ajarnpa

Video: Raspberry Pi GPIO-circuits: een LDR analoge sensor gebruiken zonder een ADC (analoog naar digitaal converter) - Ajarnpa
Video: Master GPIO with Raspberry Pi Pico & MicroPython - Uncover the Secrets! 2024, November
Anonim
Raspberry Pi GPIO-circuits: een LDR analoge sensor gebruiken zonder een ADC (analoog naar digitaal converter)
Raspberry Pi GPIO-circuits: een LDR analoge sensor gebruiken zonder een ADC (analoog naar digitaal converter)

In onze eerdere Instructables hebben we je laten zien hoe je de GPIO-pinnen van je Raspberry Pi kunt koppelen aan LED's en schakelaars en hoe de GPIO-pinnen hoog of laag kunnen zijn. Maar wat als je je Raspberry Pi wilt gebruiken met een analoge sensor?

Als we analoge sensoren willen gebruiken met de Raspberry Pi, zouden we de weerstand van de sensor moeten kunnen meten. In tegenstelling tot de Arduino zijn de GPIO-pinnen van de Raspberry Pi niet in staat om weerstand te meten en kunnen ze alleen detecteren of de geleverde spanning boven een bepaalde spanning ligt (ongeveer 2 volt). Om dit probleem op te lossen, kunt u een analoog naar digitaal converter (ADC) gebruiken, of u kunt in plaats daarvan een relatief goedkope condensator gebruiken.

Dit Instructable zal u laten zien hoe dit kan worden gedaan.

Stap 1: Wat heb je nodig?

Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben
Wat je nodig zult hebben

- Een RaspberryPi met Raspbian al geïnstalleerd. Je moet ook toegang hebben tot de Pi met een monitor, muis en toetsenbord of via Remote Desktop. U kunt elk model Raspberry Pi gebruiken. Als je een van de Pi Zero-modellen hebt, wil je misschien wat header-pinnen op de GPIO-poort solderen.

- Een lichtafhankelijke weerstand (ook bekend als een LDR of fotoresistor)

- Een 1 uF keramische condensator

- Een soldeerloze prototype breadboard

- Sommige mannelijke naar vrouwelijke jumperdraden

Stap 2: Bouw uw circuit

Bouw je circuit
Bouw je circuit
Bouw je circuit
Bouw je circuit

Bouw het bovenstaande circuit op uw breadboard en zorg ervoor dat geen van de componenten van de componenten elkaar raakt. De lichtafhankelijke weerstand en keramische condensator hebben geen polariteit, wat betekent dat een negatieve en positieve stroom op beide draden kan worden aangesloten. U hoeft zich dus geen zorgen te maken over de manier waarop deze componenten in uw circuit zijn aangesloten.

Nadat u uw circuit hebt gecontroleerd, sluit u de startkabels aan op de GPIO-pinnen van uw Raspberry Pi door het bovenstaande diagram te volgen.

Stap 3: Maak een Python-script om de lichtafhankelijke weerstand te lezen

Maak een Python-script om de lichtafhankelijke weerstand te lezen
Maak een Python-script om de lichtafhankelijke weerstand te lezen

We zullen nu een kort script schrijven dat de weerstand van de LDR zal lezen en weergeven met behulp van Python.

Open IDLE op je Raspberry Pi (Menu > Programmeren > Python 2 (IDLE)). Open een nieuw project ga naar Bestand > Nieuw bestand. Typ (of kopieer en plak) de volgende code:

importeer RPi. GPIO als GPIOimporteer timempin=17 tpin=27 GPIO.setmode(GPIO. BCM) cap=0.000001 adj=2.130620985i=0 t=0 while True: GPIO.setup(mpin, GPIO. OUT) GPIO.setup(tpin, GPIO. OUT) GPIO.output(mpin, False) GPIO.output(tpin, False) time.sleep(0.2) GPIO.setup(mpin, GPIO. IN) time.sleep(0.2) GPIO.output(tpin, True) starttime=time.time() endtime=time.time() while (GPIO.input(mpin) == GPIO. LOW): endtime=time.time() measureresistance=endtime-starttime res=(measureresistance/cap)* adj i=i+1 t=t+res if i==10: t=t/i print(t) i=0 t=0

Sla je project op als lightsensor.py (Bestand > Opslaan als) in je Documenten-map.

Open nu Terminal (Menu > Accessoires > Terminal) en typ de volgende opdracht:

python lichtsensor.py

De Raspberry Pi zal herhaaldelijk de weerstand van de fotoresistor weergeven. Als u uw vinger over de fotoresistor plaatst, neemt de weerstand toe. Als je met een fel licht op de fotoresistor schijnt, neemt de weerstand af. U kunt de uitvoering van dit programma stoppen door op CTRL+Z te drukken.

Stap 4: Hoe het werkt

Naarmate de condensator geleidelijk oplaadt, stijgt de spanning die door het circuit en naar de GPIO-pin gaat. Zodra de condensator tot een bepaald punt is opgeladen, stijgt de spanning tot boven de 2 volt en zal de Raspberry Pi voelen dat GPIO-pin 13 HOOG is.

Als de weerstand van de sensor toeneemt, laadt de condensator langzamer op en duurt het langer voordat de schakeling 2 volt bereikt.

Het bovenstaande script meet in wezen hoe lang het duurt voordat pin 13 hoog wordt en gebruikt vervolgens deze meting om de weerstand van de fotoresistor te berekenen.

Aanbevolen: