Obwody GPIO Raspberry Pi: Korzystanie z czujnika analogowego LDR bez ADC (konwerter analogowo-cyfrowy): 4 kroki
Obwody GPIO Raspberry Pi: Korzystanie z czujnika analogowego LDR bez ADC (konwerter analogowo-cyfrowy): 4 kroki
Anonim
Obwody GPIO Raspberry Pi: Korzystanie z czujnika analogowego LDR bez ADC (przetwornika analogowo-cyfrowego)
Obwody GPIO Raspberry Pi: Korzystanie z czujnika analogowego LDR bez ADC (przetwornika analogowo-cyfrowego)

W naszych wcześniejszych instrukcjach pokazaliśmy, jak można połączyć piny GPIO Raspberry Pi z diodami LED i przełącznikami oraz jak piny GPIO mogą być wysokie lub niskie. Ale co, jeśli chcesz używać Raspberry Pi z czujnikiem analogowym?

Jeśli chcemy używać czujników analogowych z Raspberry Pi, musielibyśmy mieć możliwość pomiaru rezystancji czujnika. W przeciwieństwie do Arduino, piny GPIO Raspberry Pi nie są w stanie zmierzyć rezystancji i mogą wykrywać tylko wtedy, gdy dostarczane do nich napięcie przekracza określone napięcie (około 2 wolty). Aby rozwiązać ten problem, możesz użyć konwertera analogowo-cyfrowego (ADC) lub możesz zamiast tego użyć stosunkowo taniego kondensatora.

Ten Instruktaż pokaże Ci, jak można to zrobić.

Krok 1: Czego będziesz potrzebować

Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować
Czego będziesz potrzebować

- RaspberryPi z zainstalowanym Raspbianem. Będziesz także musiał mieć dostęp do Pi za pomocą monitora, myszy i klawiatury lub za pomocą pulpitu zdalnego. Możesz użyć dowolnego modelu Raspberry Pi. Jeśli masz jeden z modeli Pi Zero, możesz przylutować kilka pinów nagłówka do portu GPIO.

- Rezystor zależny od światła (znany również jako LDR lub fotorezystor)

- Kondensator ceramiczny 1 uF

- Bezlutowa prototypowa płytka do krojenia chleba

-Niektóre przewody połączeniowe męskie do żeńskich

Krok 2: Zbuduj swój obwód

Zbuduj swój obwód
Zbuduj swój obwód
Zbuduj swój obwód
Zbuduj swój obwód

Zbuduj powyższy obwód na płytce prototypowej, upewniając się, że żaden z wyprowadzeń komponentów nie styka się. Rezystor zależny od światła i kondensator ceramiczny nie mają polaryzacji, co oznacza, że prąd ujemny i dodatni można podłączyć do dowolnego przewodu. Dlatego nie musisz się martwić, w jaki sposób te elementy zostały połączone w twoim obwodzie.

Po sprawdzeniu obwodu podłącz kable połączeniowe do pinów GPIO Raspberry Pi, postępując zgodnie z powyższym schematem.

Krok 3: Utwórz skrypt w języku Python, aby odczytać rezystor zależny od światła

Utwórz skrypt w języku Python, aby odczytać rezystor zależny od światła
Utwórz skrypt w języku Python, aby odczytać rezystor zależny od światła

Napiszemy teraz krótki skrypt, który będzie odczytywał i wyświetlał opór LDR za pomocą Pythona.

Na swoim Raspberry Pi otwórz IDLE (Menu> Programowanie> Python 2 (IDLE)). Otwórz nowy projekt, przejdź do Plik > Nowy plik. Następnie wpisz (lub skopiuj i wklej) następujący kod:

importuj RPi. GPIO jako GPIOimport 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=(pomiar rezystancji/limit)* adj i=i+1 t=t+res jeśli i==10: t=t/i print(t) i=0 t=0

Zapisz swój projekt jako lightsensor.py (Plik > Zapisz jako) w folderze Dokumenty.

Teraz otwórz Terminal (Menu> Akcesoria> Terminal) i wpisz następujące polecenie:

python lightsensor.py

Raspberry Pi będzie wielokrotnie wyświetlać rezystancję fotorezystora. Jeśli przyłożysz palec do fotorezystora, opór wzrośnie. Jeśli poświecisz jasnym światłem na fotorezystor, opór zmniejszy się. Możesz zatrzymać działanie tego programu, naciskając klawisze CTRL+Z.

Krok 4: Jak to działa

Gdy kondensator stopniowo się ładuje, wzrasta napięcie przechodzące przez obwód i do pinu GPIO. Gdy kondensator zostanie naładowany do pewnego punktu, jego napięcie wzrośnie powyżej 2 woltów, a Raspberry Pi wykryje, że pin 13 GPIO jest WYSOKI.

Jeśli rezystancja czujnika wzrośnie, kondensator będzie ładował się wolniej, a obwód zajmie więcej czasu, aby osiągnąć 2 wolty.

Powyższy skrypt zasadniczo mierzy czas, jaki zajmuje pinowi 13, aby obrócił się w stan wysoki, a następnie wykorzystuje ten pomiar do obliczenia rezystancji fotorezystora.

Zalecana: