Skocz do zawartości

Pomocna odpowiedź

Napisano

Witam.

Mikrokontroler daje mi wyjście w postaci sygnału napięciowego 3.3V.

Potrzebuję ten sygnał przekazać do kontrolera, który pracuje na napięciu 24V.

Poszukuję prostego sposobu na realizację w/w zadania.

Mój pomysł na ten moment: wejścia kontrolera włączyć w obwód zasilacza 24V i dołożyć tam tranzystor (np. npn BC337 (akurat takie mam)), a bazę tranzystora połączyć z wyjściem mikrokontrolera.

Czy ten sposób zadziała?

Czy ten sposób jest w miarę rozsądny?

Jakieś inne propozycje?

Pozdrawiam.

EDIT:

Ok, już wiem, że nie będzie to działać.

W jaki więc sposób najprościej można to zrealizować?

Sygnał cyfrowy, stan wysoki 3.3V, stan niski ~0V.

Potrzebuję przekazać "stan wysoki" do kontrolera, z tym, ze minimalna wymagana wartość napięcia to 12V (12-24V), by sygnał został odczytany jako wysoki.

Jaka częstotliwość? Jesteś pewien, że właśnie takie są te napięcia graniczne? Jaki przebieg ma sygnał?

[ Dodano: 24-07-2016, 18:24 ]

Albo może prościej. Co próbujesz tym sygnałem zrobić?

Ale częstotliwość czego ? To jest prąd stały i nie jest to sygnał PWM, ani żaden inny sygnał zmieniający się w ściśle określony, z góry narzucony sposób.

Mam:

1. mikrokontroler (STM32)

2. kontroler do robota przemysłowego.

mikrokontroler (1) sobie coś tam odczytuje i coś tam liczy (to nieistotne), i w zależności od tego co sobie tam wyliczy - robot musi wykonać odpowiednie instrukcje.

Muszę więc jakoś "powiedzieć" kontrolerowi(2), że mikrokontroler(1) wyliczył sobie to i to.

kontroler(2) posiada kilkanaście wyjść cyfrowych, i kilka cyfrowych wejść.

Z dokumentacji wynika, że w przypadku wejść cyfrowych, stan niski odczytywany w przypadku wystąpienia napięcia 0 - 5V. Stan wysoki w przypadku wystąpienia napięcia 12 - 24V.

Konfiguruję więc piny mikrokontrolera(1) jako OUTPUT i ustawiam na nich, w zależności od wyniku obliczeń, stan wysoki (3.3V) lub stan niski(0V). Każdy pin to tj. jeden bit informacji.

Więc to co potrzebuję teraz zrobić, to przekazać te sygnały do kontrolera (2).

Potrzebuję więc, aby w przypadku wystąpienia stanu wysokiego na pinie mikrokontrolera(1) podać stan wysoki (12 - 24V) na odpowiednie wejście cyfrowe kontrolera(2).

Poszukuję najłatwiejszego sposobu, by to zrealizować.

Jak by był to prąd stały i się nie zmieniał, to nie byłby to sygnał, tylko zasilanie i nie potrzebowałbyś tam mikrokontrolerów. Skoro jest to sygnał, to się zmienia. Pytanie jak często i jak szybko jest istotne, bo jeśli jest to na przykład raz na godzinę, to spokojnie możesz użyć na przykład przekaźnik.

Jasne, prąd stały to nie jest.

Nie mniej jednak, nie rozumiem jak się ma do tego częstotliwość, bo zawsze wydawało mi się, że z częstotliwością mamy do czynienia, jeśli coś zmienia się okresowo (w ściśle określonym fragmencie czasu, w ściśle określony sposób).

Popraw mnie proszę, jeśli się mylę.

Przekaźnik to jeden ze sposobów.

A da się to jakoś zrealizować za pomocą tranzystora (tranzystorów)?

Jeżeli czas "przekazywania" sygnału nie będzie przekraczał 100 ms, to jest ok, a to czy przestanie działać po 10 tys przełączeń, czy 100 tys. jest nieistotne.

Jasne, prąd stały to nie jest.

Nie mniej jednak, nie rozumiem jak się ma do tego częstotliwość, bo zawsze wydawało mi się, że z częstotliwością mamy do czynienia, jeśli coś zmienia się okresowo (w ściśle określonym fragmencie czasu, w ściśle określony sposób).

Popraw mnie proszę, jeśli się mylę.

Służę uprzejmie. Spójrz na sygnał z nóżki GPIO jako ciąg wartości 0 lub 1 zmieniających się w czasie. Mogą to być na przykład bity przesyłane szeregowo z jakimś tam z góry przyjętym zegarem (jak przy transmisji UART), albo z dodatkowym sygnałem zegara (jak na przykład przy SPI albo I2C). W każdym z tych przypadków, aby działało to prawidłowo, sygnał musi trwać jakiś minimalny okres czasu (wystarczający, żeby dało się go odczytać po drugiej stronie). Teraz jeśli przyjmiesz, że ten minimalny okres czasu to okres twojego sygnału, to z łatwością możesz wyliczyć także jego częstotliwość -- oczywiście, tak jak piszesz, nie jest to dosłownie częstotliwość zmian napięcia, bo te nie są okresowe, tylko częstotliwość zmian w najgorszym przypadku -- jeślibyś na przykład przesyłał na zmianę 0 i 1. Częstotliwość ta jest istotna przy projektowaniu układów, gdyż napięcie w twoim sygnale wcale nie zmienia się w jednym momencie, tylko ma pewną bezwładność. Wygląda to mniej więcej tak:

No i teraz jeśli masz długie kable, dodatkowe pojemności albo indukcyjności po drodze, albo -- tak jak tutaj -- dodatkowe elementy przetwarzające twój sygnał, to może on zostać zniekształcony na tyle, że nie będzie się go dało odebrać.

Dlatego częstotliwość ma wpływ na wybór rozwiązania (choć, przyznaję, zwykły tranzystor zadziała dla bardzo szerokiego zakresu częstotliwości).

Aby się upewnić:

Powinno wyglądać to w ten sposób ?

Gdzie Re = 24V/Ic (I collectora - z noty katalogowej)

a Rb >= (3.3V - 0,7V)/Ib ?

(z tym, że nie udało mi się znaleźć w nocie max prądu bazy.)

Rezystor podciagajacy powinien być podłaczony do 24V. Wejście kontrolera za to bezpośrednio z kolektorem tranzystora. Rezystory na pewno nie powinny być dobrane do max możliwości. Często jako rb używa się 10k, a rc oblicza - jego wartość będzie limitowała częstotliwość, jak Ci na niej nie zależy, wstaw 10k i powinno działać.

Czyli po prostu ten rezystor (na rys oznaczony Re) najlepiej by był pomiędzy Input 1, a +24V, a Input common bezpośrednio z colectorem (na Input Common chcę mieć masę, a na Input 0-7 podawać stan wysoki) ?

Pytania dość absurdalne, ale na prawdę, w tym przypadku wolę się upewnić.

Myślę, że nie zaszkodzi gdybyś przeczytał:

7 część kursu elektroniki

z bloga Forbota. Jest tam parę słów o pracy tranzystora jako klucz.

Jeśli dobrze zrozumiałem poprzednie posty to przy zastosowaniu tego układu musisz zanegować logikę na wyjściu mikrokontrolera lub dodać drugi tranzystor. W tym układzie proponowanym przez Elvisa stan wysoki na wyjściu mikrokontrolera powoduje stan niski na wejściu kontrolera.

Przejrzałem ten artykuł, i wydaje mi się, że po przestawieniu rezystora, układ będzie odpowiadać właśnie temu przedstawionemu w artykule.

I szczerze mówiąc sądziłem, że jak podaje na bazę napięcie 3.3V, to tranzystor przewodzi i mamy stan wysoki, a jak podaję 0V, to tranzystor po prostu nie przewodzi.

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...