Podłączanie LDR do pinów GPIO Raspberry Pi

12

Chcę podłączyć LDR do styków GPIO mojego Raspberry Pi, wiem, że Raspberry Pi nie ma konwertera analogowo-cyfrowego, więc chcę zasygnalizować sygnał WYSOKI (3,3 V) w GPIO gdy rezystancja LDR jest niska (coś poniżej 200 omów) i sygnał LOW, gdy rezystancja LDR jest wysoka (na przykład powyżej 2k). Maksymalny prąd, który mogę bezpiecznie pobierać ze styków GPIO Raspberry Pi, zgodnie z dokumentacją to 50mA, jak obliczyć potrzebny rezystor, czy będę musiał również dodać rezystor podwyższający / obniżający? Nie mam jasnego pojęcia, jak to zrobić w bezpieczny sposób bez spalania mojego procesora.

Wyobrażam sobie, że muszę również podłączyć rezystor do obwodu, aby upewnić się, że zawsze ma on rezystancję, gdy LDR jest w stanie bardzo niskiej rezystancji.

Aktualizacja : działało dobrze, zbudowałem obwód i jest pokazany w tym poście , dzięki za pomoc.

Tarantula
źródło
1
„Histereza wejściowa GPIO (wyzwalacz Schmitta) może być włączona lub wyłączona, szybkość zmiany wyjściowej może być szybka lub ograniczona, a prąd źródłowy i odbiorczy można konfigurować w zakresie od 2 mA do 16 mA”. 50mA to maksymalny pobór z wtyku 3V3.
Ignacio Vazquez-Abrams,

Odpowiedzi:

13

Najlepszym sposobem na to byłoby użycie tranzystora jako komparatora, aby uczynić przejście ostrym.
Oto przykładowy obwód:

LDR

Wykorzystuje LDR jako górną część dzielnika napięcia. Kiedy rezystancja LDR spada, napięcie na podstawie tranzystora rośnie i włącza się. Tranzystor może być dowolnym NPN ogólnego przeznaczenia.
Możemy obliczyć wartość rezystora na podstawie miejsca, w którym chcemy, aby nastąpiło włączenie.

Powiedzmy, że rezystancje LDR wynoszą od 200Ω (ciemne) do 10kΩ (ciemne). Chcemy, aby tranzystor włączał się, gdy LDR ma 5 kΩ. Zasilanie (V +) wynosi 3,3 V. Typowy tranzystor NPN włącza się przy około 0,7 V, więc jeśli to zrobimy:

5000 * (0,7 / 3,3) = 1060Ω potrzebne dla rezystora podstawowego. Możemy wybrać rezystor 1kΩ, ponieważ jest wystarczająco blisko. Dostosuj swoje wartości do swojego punktu zwrotnego.

Oto symulacja obwodu:

LDR sim

Oś pozioma to rezystancja LDR, a niebieska linia to napięcie w punkcie Vouta (Podłączysz to do pinu wejściowego Rpi - należy ustawić na wejście. Możesz dodać rezystor 1kΩ między Vout a pinem Rpi, aby go chronić w przypadku przypadkowego ustawienia go na wyjście) Widzimy, że tranzystor włącza się przy około 5 kΩ zgodnie z przewidywaniami (nie będzie dokładny, ponieważ napięcie tranzystora bazy-emiter będzie zmieniać się wraz z temperaturą itp., ale wystarczająco blisko do twoich celów)

Zauważ, że moc wyjściowa tranzystora jest niska, gdy jest jasna, a wysoka, gdy jest ciemno, możesz zamienić LDR i rezystor i użyć 5000 * (3,3 / 0,7) = 23,5 kΩ dla rezystora, jeśli chcesz na odwrót - jest to właściwie lepsza konfiguracja, ponieważ pobiera mniej prądu (z powodu wyższych rezystancji), więc jeśli to ważne, użyj tej wersji.

Oli Glaser
źródło
Zgoda. Chciałem zasugerować komparator wzmacniacza operacyjnego, ale pomyślałem, że to przesada. Proste rozwiązanie polegające na użyciu tranzystora jako przełącznika nie przyszło mi do głowy.
Ignacio Vazquez-Abrams,
2
Właśnie tego potrzebuję, zrobię to, wielkie dzięki za odpowiedź, to niesamowite, że możemy zbudować tę sigmoidę do kontroli poziomów logicznych, nigdy bym nie pomyślał czegoś takiego, dziękuję za poświęcenie czasu napisać to.
Tarantula,
@Tarantula - nie ma problemu, chętnie pomogę.
Oli Glaser,