Taka mała zabaweczka:

Transoptor szczelinowy (fototkomórka szczelinowa, ang. opto interrupter lub photo interrupter) – tutaj TCST1103 – składa się z dwóch elementów umieszczonych na przeciwnych stronach widełek: foto-diody a z drugiej strony foto-tranzystora. W momencie kiedy oba elementy przestają się widzieć – zmienia się prąd tranzystora. Element ten jest popularnie wykorzystywany np. w enkoderach. Zamontowana na wale silnika tarczka ma otwory. Tarczka wchodzi w szczelinę transoptora. Obracając się, części transoptora na przemian się widzą i nie – co pozwala na zliczanie impulsów.
A piszę o tym dlatego, że trochę się naszukałem, zanim znalazłem sposób podłączenia odpowiedni dla Raspberry. Dodatkowo same opisy na elemencie są odrobinę mylące. „E” oznacza katodę diody (a nie Emiter tranzystora) a „D” oznacza… emiter tranzystora.
Problem polega na tym, że element może wygenerować dość znaczny prąd, ok 40mA – co dla GPIO Raspberry jest niebezpieczne. Na forum Raspberry znalazłem takie podłączenie:
- E do GND
- +/E – przez rezystor 180ohm do +5v
- D do GND
- +/D do GPIO i przez rezystor 10k do 3,3V (pull-up)

W takim układzie przesłonięcie szczeliny da 3,3v na +/D (logiczna „1”) – odsłonięcie to 0,07v (logiczne „0”).
NodeMCU/Lua/ESP8266
W moim projekcie ten transoptor ma chodzić z ESP8266 z NodeMCU. Najpierw małe przypomnienie nt. mapowania pinów w NodeMCU
Numer | GPIO | Numer | GPIO |
---|---|---|---|
0* | GPIO16 | 7 | GPIO13 |
1 | GPIO5 | 8 | GPIO15 |
2 | GPIO4 | 9 | GPIO3 |
3** | GPIO0 | 10 | GPIO1 |
4 | GPIO2 | 11 | GPIO9 |
5 | GPIO14 | 12 | GPIO10 |
6 | GPIO12 |
* 0/GPIO16: na tym pinie nie można ustawić przerwań, pwm, i2c – tylko odczyt/zapis
** 3/GPIO0: tego też nie ruszam, bo w stanie niskim służy do wgrywania firmware
W moim przypadku chcę wstrzymać wykonanie programu aż do momentu, kiedy GPIO5 będzie miało wartość niską (na podstawie przykładu z wiki nodeMCU):
gpio.mode(1, gpio.INT); gpio.trig(1, "down" )
Przykład?
Przykładowe wykorzystanie transoptora jako enkoder:
Na obracającym się wale znajduje się tarcza z otworami. Tarcza musi być czarna, inaczej czujnik nie zadziała. Detektor jest wzbudzany, gdy „widzi” emiter (szczelina w tarczy).
W następnym poście pokażę, jak podłączyć taki czujnik przez komparator.
oznaczenia elementów chyba są wzięte od ich funkcji: D jak detektor (tranzystor), E to emiter (dioda)
Tarcza nie musi być czarna. Kolor jest bez znaczenia. Tarcza musi być z materiału nieprzezroczystego dla promieniowania diody. Może być nawet z papieru.