Skocz do zawartości

Sygnał 3.3V -> 24V


MasteR_PuppetS

Pomocna odpowiedź

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ć?

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

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ć.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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).

Link do komentarza
Share on other sites

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ć.

Link do komentarza
Share on other sites

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ć.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

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.

Link do komentarza
Share on other sites

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.