Skocz do zawartości

Pomocna odpowiedź

Przy zasilaniu diodek ze źródła napięcia (a stabilizator napięcia taki właśnie jest) opornik jest zawsze konieczny. Nie możesz zakładać, że jedna diodka to 1.25V, bo to zależy od temperatury, materiału, prądu i serii produkcyjnej. Opornik szeregowy "pokrywa" różnicę jaka zostaje po odjęciu od 5V napięć wszystkich diodek w łańcuchu. Ponieważ przy 4 diodkach już nie zostaje miejsca na opornik, sugeruję podłączenie po 3 szeregowo. Wtedy opornik "widzi" 5-(3*1.2V)=1.4V

i żeby płynęło 20mA musi mieć:

1.4V/0.02A=70Ω

Możesz przyjąć najbliższy większy czyli 75Ω.

Przy 5V i 4 diodkach szeregowo zostaje bardzo mało (jeżeli w ogóle) zapasu napięcia, i nie wiesz czy do obliczeń przyjąć napięcie opornika 0.2V, 0.1V czy może 0.05V. A to dużo zmienia. Mógłbyś wykonać eksperyment, połączyć 4 szeregowo do 5V, wstawić potencjometr np. 50Ω i bardzo ostrożnie go zmniejszać od max do min, ale wtedy nie możesz niczego wcześniej policzyć i to nie jest elektronika tylko rzeźba z drutów. Po pierwsze taki potencjometr to rzadkość a po drugie eksperyment jest niebezpieczny o tyle, że typowy stabilizator jest w stanie z siebie wypuścić 1A i manipulacje przy rezystancji rzędu 10Ω mogą bardzo łatwo doprowadzić do jej wyzerowania, puszczenia całego prądu i smutnego pożegnania z czujnikami.

Nie zostawiaj żadnego wejścia licznika w powietrzu. Jeżeli nie używasz któregoś wejścia zegarowego podepnij je do stanu nieaktywnego np. do GND. Wejścia R możesz spiąć razem - układy HC praktycznie nie obciążają nadajników sygnału, w tym przypadku procesora.

Gdzieś musi być opornik podciągający kolektory czujników do plusa. Czy będzie po stronie procesora? Ja sugerowałbym tutaj, zaraz na wyjściu multipleksera.

Jeżeli nie dasz oporników w kolektorach każdego czujnika osobno a tylko jeden wspólny na wyjściu multipleksera, to rezystancja przejścia 4051 (od nóżek Xn do wyjścia X) będzie połączona szeregowo z tranzystorami i zmniejszy zakres napięć. Najlepiej postaraj się kupić multiplekser niskonapięciowy 74HC4051 - on ma dużo mniejszą rezystancję przy 5V niż stary 4051.

Dzięki bardzo za wytłumaczenie ! Po trzy to kiespko się dzieli może dać 4x2 ? Wtedy opornik będzie miał 120Ω czyli akurat wartość z szeregu.

Najlepiej postaraj się kupić multiplekser niskonapięciowy 74HC4051

Jeśli ma taki sam rozkład nóżek to poszukam na razie mam na stanie 4051 więc do testów pójdzie ten.

Coś pokręciłeś z 7493. Ten licznik ma dwie sekcje:

- pierwszą: wejście zegarowe CKA i wyjście QA,
- drugą: wejście zegarowe CKB i wyjścia QB, QC i QD,
- i do tego wspólne zerowanie obu sekcji: R01 & R02, czyli dwie jedynki zerują wszystkie 4 przerzutniki.

Jeżeli chcesz zrobić licznik modulo 8, bierzesz tylko drugą sekcję, czyli:

- zegar podłączasz do CKB,
- wyjścia masz z QB..QD,
- zerowanie to zwarte razem oba R.

Żeby wejście zegara pierwszej sekcji nie wisiało w powietrzu podłączasz CKA do masy.

Wyjścia QA nie używasz i nie podłączasz. Żadne obejścia kabelków dookoła licznika nie są potrzebne.

Opornik 4.7k jest dość mały - CNY będą mało czułe a dodatkowa, duża rezystancja 4051 jeszcze zmniejszy amplitudę napięć przekazywanych do ADC. Wstaw coś w granicach 10-22k.

Łącząc diodki 3+3+2 oszczędzasz prąd, bo masz wtedy tylko 3 łańcuchy po 20mA zamiast 4 łańcuchów w połączeniu 2+2+2+2. Przecież nie musi być po równo, trzeba tylko różne oporniki dobrać. To nie apteka i jeśli wyjdzie z obliczeń coś dziwnego, dobierasz z szeregu E24 najbliższy sensowny. Przecież i tak nie wiesz jakie naprawdę będzie napięcie Uf na diodkach i czy zasilanie będzie 5.000V więc te 20mA to tylko "target" projektowy a nie rzeczywista wartość. Tolerancje mają zarówno oporniki jak i stabilizatory napięcia.

Bardzo zgrabna płytka.

O ile nie chcesz robić dwustronnej, albo babrać się z tymi przelotkami to po prostu zastąp je rezystorami 0R 0805 (albo 1206). Pod nimi spokojnie przeciągniesz ścieżkę.

Dodatkowo przydałoby się dodać kondensator 100nF przy IC1 i jakiś większy 10uF/6.3V do stabilizowania napięcia.

Ta zworka przy liczniku w ogóle nie jest potrzebna, bo przecież możesz inaczej podłączyć wyjścia licznika do multipleksera. Nie muszą być w kolejności (B,C,D)→(A,B,C). Najwyżej multiplekser będzie podawał w innej kolejności (jakiej?) czujniki do procesora, ale od tego procesor ma milion tranzystorów i program, by sobie z tym poradzić.

Kondensator przy multiplekserze nie jest aż taki ważny, choć oczywiście nie zaszkodzi. To bardzo niskomocowy i dość wolny układ kombinacyjny. Sam z siebie praktycznie nie pobiera prądu, wyjście nie jest zasilane z Vcc jak w przypadku typowych układów cyfrowych a przełączenia dokonują się jedynie w kilku bramkach wewnętrznego dekodera. Uznałem, że obecne obowiązkowe 100nF przy liczniku wystarczy.

Wydziergałem coś takiego. Muszę tylko plecionkę kupić i "gluty" pozbierać. A no i oczywiście w całej warszawie nie mają 7493 SMD 😋 Więc trochę lipa trzeba będzie zamawiać. Narazie waga czujnika to 5g w porównaniu do 15g starego to całkiem niezła redukcja 🙂

To teraz trzeba płytę główną zrobić. Tu chyba nie będzie żadnych niespodzianek. Co do wypowiedzi Mirka to wydaje mi się że lepiej jednak będzie jak multiplkser będzie załączał czujniki po kolei 😉 Wydaje mi się to prostsze do ogarnięcia programowo.

PS

Ale kaszana nawet w TME tego układu nie ma i co teraz ?

Za kilka dni będę robił większe zakupy w Farnellu, jeśli nie znajdziesz czegoś wcześniej, mogę Ci wziąć ten licznik. Możemy zrobić "odbiór osobisty" 🙂

Z tym programem to nie przesadzaj. Teraz już mleko się wylało, bo masz gotową płytkę, ale na przyszłość warto pamiętać, że linie adresowe nie muszą iść zawsze wg numeracji i że to czasem bardzo upraszcza płytkę.

Zobacz, np. jeśli miałbyś zamienić QD z QB licznika. Oryginalnie masz sekwencję:

000

001

010

011

100

101

110

111

a po przekoszeniu ścieżek (zamiana dwóch kolumn miejscami) multiplekser widzi to samo jako:

000

100

010

110

001

101

011

111

Musisz mieć gdzieś w kodzie pętlę wczytującą czujniki i tablicę przechowującą ich stan:

zeruj_licznik();
for (n=0; n<8; n++)
{
  czujniki[n] = wczytaj_stan_czujnika();
  popchnij_licznik();
}

Po zamianie ścieżek wystarczy pamiętać, że dostajesz inny czujnik niż wskazuje zawartość licznika, to wszystko. Robisz sobie np. tablicę która pokazuje jak się pozmieniały adresy widziane przez multiplekser. Zauważ, że są w niej te liczby które zawarłem w drugiej sekwencji binarnej. Zamiast zwykłym "n" rosnącym monotonicznie, tablicę czujniki[] adresujesz teraz przez nową tablicę cntr_hash[n]:

uint8_t
  cntr_hash[] = {0, 4, 2, 6, 1, 5, 3, 7};

zeruj_licznik();
for (n=0; n<8; n++)
{
  czujniki[cntr_hash[n]] = wczytaj_stan_czujnika();
  popchnij_licznik();
}

Teraz masz w tablicy czujniki[] stany wszystkich ośmiu dokładnie w takiej samej kolejności jak poprzednio. To chyba nie jest jakaś wielka filozofia, prawda?

mogę Ci wziąć ten licznik. Możemy zrobić "odbiór osobisty"

Problem leży w tym że tam też jest tylko w DIP więc chyba wersja w SMD jest niedostępna najgorsze jest to że ten układ ma nietypowyrozkład nóżek zasilający (gdzieś w środku układu są a nie po przekątnej) więc nawet nie idzie zamiennika znaleźć 🙁

Ale to może dobrze spróbuje zrobić te ścieżki tak jak radzisz

Dobra to już sobie zamówie i tak miałem jeszcze jakieś popierdółki kupić to już nie będę głowy zawracał nawiasem mówiąc to te przelotki to faktycznie był zły pomysł 🙁 Ale przekonałem się to SMD jednak fajnie się to montuje i nie jest aż tak trudno jak myślałem

[ Dodano: 28-01-2015, 17:47 ]

To szukam tego licznika i projektuje płytkę główną ale w między czasie zrobiłem jeszcze jedną

Chodzi o to że zbuduje robota przy użyciu HL149 coś takiego jak mój poprzedni robot https://www.forbot.pl/forum/topics7/line-follower-snab-i-vt9719.htm przetestuje sobie ten sposób działąnia tak żebym miał już zalążek porgramu kiedy dojdzie ten licznik 😉 Więc jutro postaram się to odpalić zobaczymy co wyjdzie...

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