Skocz do zawartości

Fałszywy stan pinów INPUT z użyciem ekspandera MCP23017 oraz ESP8266


Pomocna odpowiedź

(edytowany)

Przy tych długościach to należałoby zastosować opto izolację np pc817. Przy konwerterze na nóżkach zasilania kondensator 10u i 100nf to sprawi że układ będzie odporniejszy na szpilki w zasilaniu, rezystory podciągające (i2c) tak jak pisałem lepiej dać niż kombinować czemu nie dziala, poprawiają stabilność linii danych, zwiększają wydajność prądową wyjścia esp, oraz dzięki nim niema stanów nieustalonych gdy esp budzi się po resecie. Z resztą to dotyczy wszystkich układów z i2c na pokładzie. 

Edytowano przez _LM_
Link to post
Share on other sites
(edytowany)

W ogólne jak teraz patrzę że coś tam idzie do bramki więc zakładam że równolegle z innymi przewodami to nad tymi transoptorami bym się nawet nie zastanawiał. W sensie od razu je uwzględnił w projekcie

Edytowano przez _LM_
Link to post
Share on other sites
2 godziny temu, BananWszyscy napisał:

i2c i 7 metrów?

7m to przewód między stykami pinu INPUT, a GND.

Linie I2C są poprowadzone przewodami o długości ~6cm.

Link to post
Share on other sites

A co jest po drugiej stronie tego kabla? Jakiś uczciwy styk? Jakieś wyjście TTL? Bo chyba nie fotokomórka (takie coś ostatnio widziałem jakieś 40 lat temu)

Link to post
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

(edytowany)
1 godzinę temu, ethanak napisał:

A co jest po drugiej stronie tego kabla? Jakiś uczciwy styk? Jakieś wyjście TTL? Bo chyba nie fotokomórka (takie coś ostatnio widziałem jakieś 40 lat temu)

Od pinu INPUT i GND lecą 2 kabelki i stykają się w przekaźniku na fotokomórce 🙂 AleAle też tak jak piszę - na stykach INPUT bezpośrednio w ESP8266 to wszystko działało bez problemu, jednakże chcę rozszerzyć ilość wejść/wyjść 😕 Nie sądziłem, że z tym modułem MCP23017 będzie aż tyle zabawy i problemów.

Edytowano przez MisiekD
Link to post
Share on other sites
(edytowany)

taki układ plus izolowana przetwornica DC/DC i po bólu. Dodatkowo twoje urządzenie stanie się odporne na przepięcia i nawet jak coś pójdzie nie tak to spalisz optoizolatory a nie elektronikę. R1 traktuj jako opcjonalny. Zamiast pojedyńczego pc817 są wersje zespolone w większych obudowach.

EDIT: Pamiętaj też o rezystorach dla diod wejściowych, do obliczenia zależnie od napięcia sterującego.

izo.thumb.JPG.94eb746144e80161b6e79543ea060932.JPG

Edytowano przez _LM_
Link to post
Share on other sites

Jakiej, wciórności, fotokomórce?

Fotokomórka to taka lampa wysokim napięciem zasilana, stosowana ostatnio jako dekoder audio w projektorach kinowych.

Może zacznij wyrażać się ściślej...

A 7m przewodu to też niezła antena. 

Link to post
Share on other sites
7 minut temu, ethanak napisał:

A 7m przewodu to też niezła antena. 

No to radia przy okazji na 43Mhz poslucha...😉 ale to juz chyba nie bedzie nasze...😅  a tak na serio gdyby faktycznie cos ten  przewod zbieral smieci (a moze) to tyle co modelarstwa sie nauczylem to mozna zastosowac pierscienie ferrytowe...kilka zwoi i w wiekszosci przypadkow po problemie..

Link to post
Share on other sites

Dalej pozostaje pytanie co jest po drugiej stronie przewodu.

A przy okazji przypomnę że to forum techniczne i precyzyjne wyrażanie się jest wymagane. Bez tego można dostać odpowiedź typu "szklana kula mi się popsuła".

  • Lubię! 1
Link to post
Share on other sites
57 minut temu, ethanak napisał:

Jakiej, wciórności, fotokomórce?

Fotokomórka to taka lampa wysokim napięciem zasilana, stosowana ostatnio jako dekoder audio w projektorach kinowych.

Może zacznij wyrażać się ściślej...

A 7m przewodu to też niezła antena. 

To fotokomórka do bramy, ma za zadanie sprawdzić czy auto nie stoi na przeszkodzie, przekaźnik typu NC.

Link to post
Share on other sites
2 godziny temu, _LM_ napisał:

taki układ plus izolowana przetwornica DC/DC i po bólu. Dodatkowo twoje urządzenie stanie się odporne na przepięcia i nawet jak coś pójdzie nie tak to spalisz optoizolatory a nie elektronikę. R1 traktuj jako opcjonalny. Zamiast pojedyńczego pc817 są wersje zespolone w większych obudowach.

EDIT: Pamiętaj też o rezystorach dla diod wejściowych, do obliczenia zależnie od napięcia sterującego.

izo.thumb.JPG.94eb746144e80161b6e79543ea060932.JPG

Mhm, czaję cały zamysł. Jedynie nie wiem co z tą przetwornicą (jej nie stosuję). ESP8266 zasilam zwykłym zasilaczem 5V.

Natomiast z PC817 korzystam, nawet właśnie w tym układzie - nim steruję bramę 😉

Link to post
Share on other sites
7 godzin temu, _LM_ napisał:

Przy konwerterze na nóżkach zasilania kondensator 10u i 100nf

Mógłbyś mi to rozjaśnić jak to połączyć? Albo może jakiś schemat jak to połączyć? Z kondensatorami jeszcze się nigdy nie bawiłem (w sensie nie projektowałem nic).

Link to post
Share on other sites
(edytowany)
23 minuty temu, MisiekD napisał:

Mhm, czaję cały zamysł. Jedynie nie wiem co z tą przetwornicą (jej nie stosuję). ESP8266 zasilam zwykłym zasilaczem 5V.

Chodzi o rozdzielenie części sterującej od wykonawczej. Czyli można powiedzieć że ta przetwornica jest takim pc817 tyle że separuje zasilanie, dzięki czemu, na linię zasilania układów cyfrowych nie przedostają się zakłócenia ani przepięcia, od ciebie zależy czy ją zastosujesz. Powiedzmy że nie jest wymagana ale może znacznie poprawić niezawodność działania całości. Ewentualnie zamiast niej można użyć innego dodatkowego zasilacza. 

15 minut temu, MisiekD napisał:

Mógłbyś mi to rozjaśnić jak to połączyć? Albo może jakiś schemat jak to połączyć? Z kondensatorami jeszcze się nigdy nie bawiłem (w sensie nie projektowałem nic).

Po prostu jak najbliżej nóżek vdd i vss dodajesz te kondensatory, tak samo esp powinien mieć jakiś bufor zasilania, tu chodzi o to że układ w króciutkich momentach potrzebuje jakiejś większej energii a ze względu na rezystancje scieżek na pcb, oraz ograniczonej wydajności prądowej zasilacza, w momencie tego największego zapotrzebowania napięcie przysiądzie na kilka uS co może prowadzić do zawieszenia i innych niekorzystnych efektów. Stąd konieczność stosowania kondesatorów -  w skrócie mają zapewnić ciągłość zasilania w momentach zwiększonego poboru prądu. Temat szeroki z pewnością wykracza poza ramy tematu postu, poza tym jest sporo materiałów na ten temat. 

Edytowano przez _LM_
Link to post
Share on other sites

@deshipu @_LM_ @ethanak Dziś trochę sobie nad tym układem posiedziałem, porobiłem różne testy z połączeniami, opornikami i chyba odkryłem, że problemem może być częstotliwość zapytań o stan na pinach INPUT. W kodzie, który wkleiłem na początku wątku nie mam żadnego uruchomionego polecenia opóźniającego kolejne polecenia (np. delay()). Zauważyłem też, że nie ma różnicy czy kabel ma 7m czy 5cm - po 2 - 4 flashowaniach bez delay() stany

fotokomorkaStanSlupekPrzyBramie: 0
fotokomorkaStanNaWyjazdzie:      0
przekaznikStanOdbiornikPilota:   0

zamieniają się na

fotokomorkaStanSlupekPrzyBramie: 1
fotokomorkaStanNaWyjazdzie:      1
przekaznikStanOdbiornikPilota:   1

i nie ma możliwości zmiany żadnego z nich poprzez dodatkowy opornik, połączenie z 3.3V czy GND. Pozostaje tylko reset całego układu (odcięcie zasilania). Po dodaniu delay(200) udaje się flashować ok. 20 - 30 razy (i dłuższy czas pozostawienia mikrokontrolera w trybie działania), później bywa tak samo co wyżej.

Zastanawiam się nad zastosowaniem przerywań, lecz nadal nie wiem czy to coś da. Co Wy o tym sądzicie? Słyszałem, że linia I2C nie jest zbyt wydajna, jednak jak często można te zapytania o stan robić przy użyciu I2C?

Link to post
Share on other sites
(edytowany)
15 minut temu, MisiekD napisał:

Słyszałem, że linia I2C nie jest zbyt wydajna, jednak jak często można te zapytania o stan robić przy użyciu I2C?

Co nie jest? https://pl.wikipedia.org/wiki/I²C 

Cytat

Standard został opracowany na początku lat 80. (określany obecnie jako tryb standardowy pracy) i cechowały go:

prędkość transmisji 100 kbps[2]

7-bitowa przestrzeń adresowa[2]

W 1992 roku została opracowana wersja 1.0 standardu, która wprowadzała następujące zmiany:

dodanie trybu pracy z prędkością transmisji 400 kbps[2] (Fast Mode)

rozszerzenie standardu o możliwość adresowania 10-bitowego[2]

W 1998 roku opracowana została wersja 2.0:

dodanie trybu High Speed Mode, pozwalającego na prędkość transmisji 3,4 Mbps

Zwiększenie zakresu tolerancji napięcia w stanie wysokim: 2,3 – 5,5 V

W 2000 roku powstała wersja 2.1, wprowadzająca drobne zmiany.

A zrobiłeś chociaż minimum tego co pisałem? choćby filtrowanie zasilania? w program nie wnikam bo są tu lepsi fachowcy od C++

Edytowano przez _LM_
Link to post
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.