Inhoudsopgave:
- Stap 1: Wat heb je nodig?
- Stap 2: Bouw uw circuit
- Stap 3: Maak een Python-script om de lichtafhankelijke weerstand te lezen
- Stap 4: Hoe het werkt
Video: Raspberry Pi GPIO-circuits: een LDR analoge sensor gebruiken zonder een ADC (analoog naar digitaal converter) - Ajarnpa
2024 Auteur: John Day | [email protected]. Laatst gewijzigd: 2024-01-30 11:18
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?
- 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 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
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:
Hoe de GPIO-pinnen en Avrdude van een Raspberry Pi te gebruiken om DIMP 2 of DA PIMP te Bit-bang-programma te gebruiken 2: 9 stappen
Hoe de GPIO-pinnen van een Raspberry Pi en Avrdude te gebruiken voor Bit-bang-programma DIMP 2 of DA PIMP 2: Dit zijn stapsgewijze instructies voor het gebruik van een Raspberry Pi en het gratis open-source commando avrdude to bit-bang -programmeer een DIMP 2 of DA PIMP 2. Ik neem aan dat je bekend bent met je Raspberry Pi en de LINUX-opdrachtregel. Je hoeft niet
Een smartphone gebruiken zonder batterij: 5 stappen
Hoe een smartphone zonder batterij te gebruiken: Allereerst moet u de invoerpinnen van de cel identificeren; wat het positieve en het negatieve is, de andere twee pinnen doen er voorlopig niet toe. Plaats de batterij in de mobiele telefoon en identificeer waar elke pool naartoe gaat (positief en negatief), zoals weergegeven in de afbeelding
Een opstartbare USB-drive maken zonder software te gebruiken: 3 stappen
Een opstartbare USB-drive maken zonder software te gebruiken: Om handmatig een opstartbare USB-drive te maken, gebruiken we de opdrachtprompt als een standaard Windows-programma. Hier zijn stap voor stap om een opstartbare USB-drive te maken als de Windows-installatiemedia. Om een opstartbare USB-drive te maken als een Windows-installatie me
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): 5 stappen
Flash AT Command Firmware naar ESP01-module (vereist een USB-naar-TTL-adapter): door Jay Amiel AjocGensan PHfacebook.com/geeamealyoutube.com/jayamielajoc
Overtuig uzelf om gewoon een 12V-naar-AC-lijnomvormer te gebruiken voor LED-lichtsnoeren in plaats van ze opnieuw te bedraden voor 12V: 3 stappen
Overtuig uzelf om gewoon een 12V-naar-AC-lijnomvormer te gebruiken voor LED-lichtsnoeren in plaats van ze opnieuw te bedraden voor 12V.: Mijn plan was eenvoudig. Ik wilde een door de muur aangedreven LED-lichtsnoer in stukken knippen en vervolgens opnieuw bedraden om 12 volt te laten lopen. Het alternatief was om een omvormer te gebruiken, maar we weten allemaal dat ze vreselijk inefficiënt zijn, toch? Rechts? Of zijn ze?