Skocz do zawartości

Multipleksacja - line follower - Atmega32 - 16x KTIR0711S


electrik_eye

Pomocna odpowiedź

przychylę się do rozwiązania z komparatorami LM339, ale wtedy muszę się pożegnać z kalibracją... :/ ''
Niekoniecznie, jest coś takiego jak elektroniczne potencjometry sterowane np. i2c

Bez przesady... 😉

A co odnośnie moich poprzednich pytań w poście 2@up?

Link do komentarza
Share on other sites

Harnas, dzięki za tak szczegółowy opis. Nie wiem, czy nie zapędzam tematu w OT, w końcu mieliśmy radzić o multipleksowaniu electrik_eye'a ale może ktoś kiedyś napotka na podobne grabie? Rzeczywiście, przypadek ciekawy. Fajnie to zrobiłeś, na poprzednim schemacie wyjścia ENx wyglądały (dla mnie) jakby wprost z procesora. Po wyjaśnieniu - sterowanie MOSFETem tylko w stanie niskim, już naprawdę nie ma się do czego przyczepić. Przychodzą mi do głowy tylko dwie rzeczy:

- Oświetlenie. Jeżeli czujniki były gęsto a diody LED świeciły stale, to czujniki korzystały wzajemnie z LEDów swoich sąsiadów. Te środkowe miały ich z lewej i z prawej ale w miarę przesuwania się do końca łańcuszka było coraz gorzej i skrajne miały już tylko kolegę z jednej strony. Jeżeli zasięg diody LED jest duży (w sensie szerokości świecenia - a chyba jest ponad 60 stopni) to zjawisko się potęgowało, bo każdy korzystał z oświetlenia 2-3 sąsiadów. Trzeba by sprawdzić wyłączając LEDy wszystkich i zostawiając do testu tylko jedną parę, np skrajnych - zmierzyć oba czujniki, potem zapalić kolejną parę i znowu zmierzyć jej tranzystory itd.

- Czasy. To drugi pomysł, choć skrytykowałem go poprzednio. Cóż, tonący chwyta się czego popadnie.. To byłoby łatwe do sprawdzenia gdybyś mógł wydłużać (opóźnienia programowe?) czas między aktywacją danej pary a jej pomiarem. Gdyby dla dłuższych czasów było coraz lepiej, masz rozwiązanie. Szczerze mówiąc, nie podejrzewam, byś tego nie sprawdził ale zapytać warto. A może powodem była jakoś niefortunnie napisana funkcja przełączania/multipleksowania? Może np. kolejne if-y dodawały coraz większe opóźnienie i jedne pary miały po załączeniu dużo więcej czasu niż inne? Albo istniał jakiś czas krytyczny stabilizacji napięcia na wejściu ADC (jasne, że był - to czysta fizyka, pytanie tylko jaki?) i tylko dla jednej pary (skrajnej) był on naruszony a reszta się w nim mieściła?

electrik_eye - Jeżeli chodzi Ci po głowie kalibracja, rób system analogowy. Naprawdę daje dużo więcej radochy i satysfakcji. Będziesz miał pole do popisu dla zabaw z przetwarzaniem liczb a na dzień dobry zawsze możesz "zatkać" to prostą funkcją porównującą z zadanym poziomem i oddającą po prostu 8 czy 16 bitów stanu czujników na podstawie tablicy zgromadzonych pomiarów. Popatrz na problem Harnasia. Gdyby miał komparatory, musiałby wybrać jakiś złoty środek wspólny dla wszystkich czujników a tak mógł się bawić do woli w kalibracje i strojenia czułości. ADC nie gryzie a widok pierwszego przekroju trasy z kilkunastu czujników wysłany nawet i przez RS232 do PC - bezcenny 🙂 Są oczywiście metody pośrednie. Możesz np. zrobić tylko jeden komparator i po kolei podłączać wyjścia czujników do niego, zczytywać stan wyjścia i gromadzić to procesorze. Mając tylko jeden układ porównujący możesz pokusić się o programowe ustawianie mu progu przełaczania np, poprzez uśredniony PWM generowany sprzętowo na jednym z wyjść. To typowe i proste rozwiązanie, choć nie będzie szybsze niż pomiary ADC. Możesz też wiedząc, że czułość czujnika 🙂 zależy od wielkości rezystora wstawionego w kolektor tranzystora, zrobić źródło prądowe i nim sterować poszczególne czujniki. Jeśli prąd bedziesz ustawiał programowo (znów PWM -> napięcie -> prąd) masz kolejną regulację czułości itd itp.. Ty jesteś konstruktorem i to Twoja decyzja co chcesz zrobić. My możemy doradzić jak. Nie ma przepisu mówiącego, że schemat LFa ma składać się z procesora i kilku czujników. Dodawanie kolejnych fragmentów elektroniki daje możliwość wypróbowania różnych fajnych pomysłów a w całkowitym koszcie/czasie prac - praktycznie nie ma znaczenia.

O turbince nie ma co dywagować. Na pewno zakłóca ale widocznie ludzie sobie z tym radzą skoro tyle konstrukcji jeździ i to całkiem fajnie.

  • Lubię! 1
Link do komentarza
Share on other sites

Ja sobie myślę tak - użycie komparatorów o wiele uprościło by mi całą sprawę, ale pewnie tak jak mówisz zabrałoby wiele frajdy 🙂

Nie wykluczam ich zastosowania chociaż bliższy jestem pomysłowi z ADC.

Zaraz rozrysuję ten mój schemat wcześniejszy na przynajmniej 2x2 czujniki i będzie o czym podyskutować 😃

A co do tego...

Powyższe będzie działało choćby z uwagi na odwrotne podłączenie tranzystorów w czujnikach.

Narysuj schemat co najmniej z 4 czujnikami (2x2) bo nie umiem domyślić się idei multiplesowania, która Ci chodzi po głowie. Przy okazji pamiętaj, że musisz zabronić w jakiś sposób zgłoszenia stanu niskiego lub wysokiego (w każdym razie aktywnego - tego ze światłem) do wspólnej linii wszystkim niewybranym w danej chwili czujnikom. Acha i napisz czy zdecydowałeś się na sygnał analogowy czy cyfrowy.

Zapodaj kolejny schemat, spokojnie sam go wymyślisz. Czekamy.

Złe podłączenie tranzystora w czujnikach to mój błąd ale nie (hemm... mentalny, że się tak wyrażę), ale po prostu zwykła pomyłka/niedopatrzenie 🙂

Do paru minut wsadzę tu schemat i wtedy dalej podyskutujemy czy on zadziała czy też nie 🙂

Dzięki wszystkim za zaangażowanie w dyskusję 😉

Link do komentarza
Share on other sites

Pamiętam że dwukrotne zmniejszenie taktowania przetwornika spowodowało spadek odczytów na białym z 850 do około 750.

Teraz mi się przypomniało że diody ir w ktirach nie świeciły ciągle tylko był podłączone do mosfetów sterujących emiterami fototranzystorów.

Może to powodowało taki efekt bo fototranzystory mają ograniczony czas reakcji, chociaż wątpię że jest on aż taki duży, bo Impact nie widział by linii.

Wiem że w Wolverine też jest zastosowana multipleksacja według mojego pomysłu ale z włączonymi na stałe diodami.

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

Nadal nie widzę idei. Gdzie są wyjścia do ADC? Skoro każdy czujnik ma swój opornik w kolektorze a tam właśnie jest sygnał który chcesz zmierzyć to mamy 4 czujniki i 4 sygnały - jak to działa i gdzie jest zysk liczby linii?

Przy okazji: jako klucze od plusa dużo lepiej sprawdzą się pnp w układzie OE niż npn jako wtórniki - nie dość, że z procesora nie dostaniesz 5V tylko np. 4V z hakiem to jeszcze na wtórniku stracisz 0.7V i czujnik zasilisz tylko z ok. 4V. To jednak jest rzecz wtórna. Najpierw musi zadziałać samo multipleksowanie.

Link do komentarza
Share on other sites

Kurczę, ja sobie tak teraz patrzę...patrzę...patrzę i też widzę, że nie ma narysowanych wyjść ADC 🙂 Mają być one w każdym czujniku na wyjściu jego kolektora czyli stykać się albo z TRANZYSTOR1 albo z TRAZNYSTOR2.

Moja idea jest taka, że jak na bazę tranzystora1 damy logiczne "1" z procka to się otworzy, zacznie przewodzić i kolektor czujnika będzie podłączony przez rezystor do +5V i na wyjściu kolektora (tam gdzie jest połączenie do TRANZYSTOR1) pojawi się sygnał, który ma trafić na wejście ADC uC.

Teraz dobrze ? 😃

Link do komentarza
Share on other sites

Muszę to zobaczyć na schemacie. Mam silne podejrzenia graniczące z pewnością, że Ty także. Narysuj, przemyśl i upewnij się, że rozumiesz jak to będzie działać , ew. popraw i dopiero wyślij na Forum.

O poprawieniu kluczy npn już pisałem, to szczegół.

Link do komentarza
Share on other sites

Dobra, myślę, że nie ma sensu (przynajmniej w moim wypadku) odkrywać na nowo Ameryki, więc posłużę się rozwiązaniem od Harnasia. Mam tylko takie pytanko. Mógłbyś mi Harnaś podesłać tu (albo ktoś rozrysować) te podłączenie procka do tego tranzystora IRF7101 i jak był on podłączony do masy i emitera czujnika ? Bo wydaje mi się, że wiem ale WYDAJE się to często o wiele za mało. Także byłbym wdzięczny za schemat z konkretnym podłączeniem od procka do czujnika. 🙂

Link do komentarza
Share on other sites

No i tam jest wszystko tak wytłumaczone jak myślałem czyli, że EN1 i EN2 (albo 0 i 1 już nie pamiętam) są do procka podłączone a tu Harnaś i tranzystorze IRF7101 pisze.

To jak w końcu jest ?

Link do komentarza
Share on other sites

Nie mogę teraz narysować schematu ale spróbuję Ci to opisać.

Najmniej linii portów zużyjesz, gdy 16 czujników ułożysz w matrycę 4x4. Narysuj sobie teraz 16 czujników (wystarczą same fototranzystory) w taki właśnie sposób. Masz przed sobą 4 wiersze i 4 kolumny elementów, tak? No to najtrudniejsze masz już za sobą, dalej jest już prosto:

1. Łączysz kolektory wszystkich tranzystorów pierwszego wiersza ze sobą i pociągasz je wspólnym opornikiem do plusa zasilania. To samo robisz z kolektorami drugiego wiersza (drugi opornik do plusa) trzeciego i czwartego. Masz 4 oporniki.

2. Dolny koniec każdego opornika (ten podłączony do 4 kolektorów) to wyjście do przetwornika A/D - wykorzystasz jego 4 wejścia z 4 wierszy tranzystorów.

3. Emitery tranzystorów łączysz w kolumnach: pierwszy z górnego wiersza z pierwszym drugiego wiersza, pierwszym trzeciego i pierwszym czwartego. To samo z kolejnymi trzema kolumnami.

4. Każdą z 4 kolumn połączonych emiterów podłączasz do drenu jej własnego MOSFETa - razem 4 MOSFETy.

5. Ich źródła dołączasz do masy a bramki przez oporniki 1k dołączasz do 4 linii wyjściowych jakiegoś portu procesora - to będzie wybieranie kolumn. Dla pewności do każdej z tych 4 linii wyjściowych dołączasz opornik 22k do masy, żeby coś się samo nie włączyło.

Teraz już tylko piszesz program w którym wysyłasz jedynkę na jedną z 4 linii wyboru kolumn i po chwili odpalasz przetwornik A/D. Mierzysz wejście dołączone do wiersza pierwszego, potem drugiego itd. Po zrobieniu 4 pomiarów zmieniasz wybór kolumny i znów mierzysz. Składasz gdzieś w tablicy 16 wyników i masz przekrój trasy 🙂

EDIT: Ha, pisaliśmy razem tylko mi jakoś dłużej zeszło 🙂

  • Lubię! 1
Link do komentarza
Share on other sites

Hah, opisałeś to aż za prosto, ale WIELKIE dzięki 🙂

Teraz nie ma już żadnych niejasności 🙂

Tylko takie pytanko -> gdybym na przykład chciał to pogrupować 2x8 to wartości oporników byłyby takie same, prawda?

Pytam się, bo planuję dać więcej czujników niż 16 do testów mojego autorskiego pomysłu na system czujników SOLH.

🙂

Link do komentarza
Share on other sites

Czy może być to dowolny MOSFET ? Na przykład ten http://www.tme.eu/pl/details/irfr2905zpbf/tranzystory-z-kanalem-n-smd/international-rectifier/#

Bo tamten to 2 MOSFET'y zamknięte w jednej obudowie i nie jestem pewien czy dobrze zrozumiałem podłączenie poszczególnych nóżek, a w pojedyńczym MOSFE'cie nie ma co rozumieć.

Bo w tym IRF7101PBF to jest tak, że (o ile dobrze rozumiem) nóżka 2 jest bramą MOSFET'a nr 1, nóżka 1 jest źródłem MOSFET'a nr 1, a nóżki 8 i 7 to dren MOSFET'a nr 1?

Proszę o odpowiedź, bo choć jest to niby oczywiste to chcę się upewnić.

EDIT:

Oczywiście zdaję sobie sprawę z tego, że musi to być MOSFET typu N, żeby zgadzało się to co pisaliście czyli, że źródło ma być podłączone do masy.

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.