Skocz do zawartości

marek1707

Użytkownicy
  • Zawartość

    5691
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    479

marek1707 wygrał w ostatnim dniu 9 sierpnia

marek1707 ma najbardziej lubianą zawartość!

Reputacja

1823 Mistrz

2 obserwujących

O marek1707

  • Ranga
    9/10
  • Urodziny 17.07.1966

Informacje

  • Płeć
    Mężczyzna
  • Lokalizacja
    WAW
  • Zainteresowania
    modelarstwo, elektronika, rower
  • Zawód
    elektronik

Ostatnio na profilu byli

Blok z ostatnio odwiedzającymi jest wyłączony i nie jest wyświetlany innym użytkownikom.

  1. No i też to, że rejestry 74HC są słabsze niż tranzystory więc driver powinien wyglądać tak, że to elektrody wspólne (cyfry) powinny być sterowane przez tranzystory a rejestr bezpośrednio powinien napędzać tylko pojedyncze segmenty. W Twoim przypadku musiałbyś zmienić tranzystory na pnp i podłączyć je od strony anod wyświetlaczy (od plusa) a segmenty przez oporniki do wyjść rejestru. Wtedy w tym pierwszym rejestrze wybierałbyś konkretną cyfrę stanem niskim i podobnie, segmenty w niej także zapalałbyś stanem niskim w drugim rejestrze. Weź pod uwagę, że prąd chwilowy segmentu w takim multipleksowaniu musi być ok. 4x większy niz statyczny, bo segment świeci tylko przez 1/4 czasu. Dlatego policzone(?) dla stanu ustalonego oporniki 220Ω mogą być sporo za duże już nawet dla niezłych (jasnych) wyświetlaczy. Co więcej, obecnie zmuszasz słabiutkie wyjście układu 74HC.. do zapalenia całej cyfry złożonej być może z 8 segmentów, a to może oznaczać zapotrzebowanie na prąd wypływający z wyjścia rzędu 100mA przy możliwościach tego scalaka na poziomie 5-10mA.. Tak więc do roboty: kupujesz 8 x pnp + mniejsze oporniki i przerabiasz układ na odwrotny bo ten po prostu nie pasuje do wyświetlaczy ze wspólną anodą i raportujesz wyniki. Pamiętaj też o ośmiu opornikach w bazach tranzystorów, bo to co obecnie zrobiłeś to jakaś herezja. Ile prądu wpływa do baz Twoich npn? Ograniczasz go czymś czy płynie "ile fabryka dała"? A na koniec, gdy już zrozumiesz jak to działa (w sumie to proste) to pomyśl o gotowym rozwiązaniu typu MAX7219, bo ten scalak robi to samo co skleciłeś na kolanie, ale dla 8 wyświetlaczy i na dodatek umie sterować jasnością. Niestety - o ile pamiętam - działa tylko z wyświetlaczami ze wspólną katodą: https://botland.com.pl/pl/wyswietlacze-segmentowe-i-matryce-led/2996-modul-8-x-wyswietlacz-8-segmentowy-spi.html lub 4 cyfry na TM1637: https://botland.com.pl/pl/wyswietlacze-segmentowe-i-matryce-led/5973-modul-4x-wyswietlacz-7-segmentowy-interfejs-cyfrowy.html Oba mają interfejs cyfrowy więc procesor nie musi zajmować się samym multipleksowaniem. Wysyłasz dane (numer i wygląd znaku) szeregowo do chipu i zapominasz o sprawie.
  2. A dlaczego miałby ruszyć nawet gdyby cała reszta była poprawna? Moim zdaniem powinien stać pod prądem, dawać ten swój moment moment zatrzymania i czekać na impulsy STEP. Rozwiązanie zasilania opisane tutaj jest chyba najgłupsze o jakim słyszałem. Czy zastanowiłeś się ile prądu próbujesz pobrać z akumulatora? No to spróbujmy oszacować. Zakładając 2A w sumie na silnik przy 12V masz 24W. Do tego sprawność przetwornicy i potrzebujesz powiedzmy 28W. To przy napięciu akumulatora np. 4.0V daje 7A a przy lekko rozładowanym do 3.4V to już potrzeba 8A. Co to za akumulator? Bo mam nadzieję, że jakiś modelarski mocarz a nie zabawkowe 18650 w koszyczku.. Zatem multimetr do ręki mi mierzysz wszystkie napięcia, dobierasz mocniejszy akumulator lub dajesz 4 ogniwa 18650 równolegle, lub po prostu bierzesz taki 3S bez żadnej głupiej przetwornicy. A gdy już uzyskasz 12V na włączonym driverze i zasilanym silniku to pukasz się w głowę i zaczynasz wszystko od początku, bo silnik krokowy 12V potrzebuje do zasilania drivera co najmniej 30V, chyba, że będzie używany głównie do ozdoby biurka jako przycisk do papierów albo robił maks. kilka kroków/s.
  3. Moim zdaniem silnik praktycznie nie widzi prostokątnego napięcia podawanego z mostka, bo przecież karmi się prądem a ten - jak to w indukcyjności jest bardzo "płaski". Typowy silniczek DC, mimo strat na rezystancji uzwojeń ma raczej charakter obciążenia indukcyjnego a wahania prądu (przy PWM idącym w kHz) są rzędu 5-20% wartości średniej prądu. Dlatego dywagacje o tym czy dostaje w impulsie więcej czy mniej napięcia niż jego znamionowe są pozbawione sensu. Dopóki nie przekraczamy możliwości izolacji silnika i jego uzwojeń, zupełnie nie ma znaczenia czy impulsy mają 6V czy 20V. Ważny jest średni prąd. Jeżeli w czasie impulsu nie rośnie on ani nie maleje do zera w czasie przerwy tylko waha się niewiele wokół wartości ustalonej, to sterowanie działa poprawnie. Oczywiście można się zastanawiać nad problemami w przypadku, gdy częstotliwością zjeżdżamy do setek Hz lub nawet poniżej, ale to już jest zupełnie inne zagadanienie. Zmieniają się wtedy ch-ki samego napędu, bo silnik rzeczywiście wtedy dostaje potężne kopy prądu w każdym impulsie, moment drga bardzo i zachowanie szczególnie przy starcie i małych prędkościach jest zupełnie inne. Dopóki jednak prąd jest uśredniany przez indukcyjność możemy spokojnie założyć, że mostek udaje regulowane źródło napięcia stałego - ze wszystkim zaletami i wadami takiego rozwiązania. PS: Jestem w głębokim lesie i moje odpowiedzi mogą być mocno spóźnione albo od czapy. Internet tu chyba jest dostarczany wiadrarmi..
  4. Trochę Kolegę bełkocik rozumiem. Nie chce zrobić niczego głupiego i oczywiście sposób z opornikiem zamiast silnika jest OK. Jednakże w tym przypadku, gdy masz zasilanie co najwyżej 8V, silnik znamionowo na 6V a po drodze jeszcze mostek to nic się nikomu nie stanie. Piszesz o tylu różnych ordzajach mostków że w sumie już nie wiemy z czym będziesz eksperymentował. W tytule był jakiś, teraz piszesz o zabytkowych L-cośtam, to robi sporą różnicę, bo na tytułowym DRV.. mógłbyś spodziewać się straty jakichś setek miliwoltów a na L2xx to i ponad 2V spadną jak go dociążysz. Niezależnie jednak od użytego mostka, w przypadku silnika 6V możesz go wysterować na 100% z 8V i nic mu nie będzie. Dopóki nie zmusisz go do ciężkiej pracy przy takim napięciu albo go nie zatrzymasz, na pewno się nie spali. Podłącz zatem i napisz program np. ustawiający PWM na 0%, potem na 10% i tak dalej aż do 100% np. co 2 sekundy. Zobaczysz kiedy silnik startuje, zdążysz pomierzyć napięcia i zrobisz pierwsze próby. I obowiązkowo napisz jak poszło
  5. Koledze zapewne chodziło o nierówną pojemność ogniw.. Tak, oczywiście możesz łączyć akumulatory szeregowo nawet jeśli są nieidentyczne pod warunkiem, że zadbasz o ich stan (napięcia poszczególnych celi) w czasie wyładowania. W tym konkretnym przypadku, gdy masz pakiety tego samego typu i z tego samej dostawy to w ogóle bym się nie przejmował tylko używał. Ładowanie w postaci rozpiętych, osobnych stosów 2S także jest jak najbardziej poprawne. A jeśli na dodatek ta ładowarka wyrównuje cele to już pełnia szczęścia. Wtedy w systemie wystarczy jedynie zrobić pomiar (ograniczenie) napięcia minimalnego całości 4S, poniżej którego urządzenie odmawia współpracy. Warto ustawić je troszeczkę wyżej niż wynikałoby to z przyjętych napięć minimalnych jednego ogniwa (np. 3.0V) choćby z uwagi na nieuchronne starzenie się akumulatorów i powolny rozjazd ich pojemności. Nie warto jednak tego demonizować, przy takim sposobie używania jak mówisz, spokojnie po roku będą jeszcze praktycznie identyczne. Tak więc ustaw próg odcięcia na powiedzmy 4x3.3V=13.2V i śpij spokojnie. Jeżeli Twoja ładowarka nie pokazuje po zakończeniu pracy wepchniętej pojemności, od czasu do czasu (co kilka cykli ład/rozład) możesz dla pewności zmierzyć napięcie każdej celi po rozładowaniu w urządzeniu. Wtedy ew. różnice będą największe i szybko przekonasz się czy i która sztuka jest słabsza.
  6. Jeżeli skupiamy się na zasilaniu i śmieciach po nim chodzących, to ta 3zł przetwornica jest niezłym kandydatem na kozła ofiarnego. W wypadku takich układów zwykłe elektrolity są bez sensu, a im większe (>100uF) tym sensu jeszcze mniej. Nie dość, że przestają działać już przy częstotliwościach akustycznych (a mają walczyć z dziesiątkami lub setkami kHz) to jeszcze zaburzają działanie pętli sprzężenia zwrotnego. Jeśli nie wstawisz tam ceramicznych 1-10uF to jakbyś nic nie wstawił. Tylko proszę nie mów, że dałeś tam 1000uF i wciąż śpisz spokojnie.. W każdym razie, w celu poprawy zasilania czujnika możesz zrobić tak: zamiast doprowadzać do niego zasilanie (w wersji 3-przewodowej) wprost z Vcc otrzymywanego z przetwornicy, daj szeregowo opornik rzędu 10-22Ω a za nim, od strony czujnika kondensatory 100nF i 10uF do masy. Nawet jeśli będą tuż przy płytce a nie przy czujniku, znacznie poprawi się jakość zasilania po tej stronie i może coś się zmieni na lepsze. Mały pobór prądu przez czujnik (1.5mA) nie spowoduje praktycznie żadnego spadku na oporniku a wszelkie śmiecie zostaną po stronie procesora.
  7. Rzeczywiście, dziwna sprawa. Czyli wiesz już, że problem przenosi się z Twoją tajemniczą płytką, a w zasadzie występuje tylko z nią, czy tak? Jak rozumiem jest to jakiś "mainboard" niosący na sobie płytkę Arduino (jakie?) i pewne otoczenie: zasilanie(?), złącza(?), inne czujniki(?), interfejs użytkownika(?) itd. Zastanawiam się jaki jest model błędu. Jeżeli jest to problem zakłóceń i wpływają one w sposób tendencyjny na wyniki obniżając mniej więcej równomiernie pomiary o ten 1°C, to w dłuższych seriach powinno być średnio to samo. Natomiast jeśli to jakieś przywarcie wymuszające przepływ prądu przez czujnik i grzanie się jego struktury to powinien być widoczny trend. Jakie są wyniki serii 20 czy 100 pomiarów w odstępach np. 1s? Próbowałeś to robić? Czy widać jakiś wzrost i dochodzenie do wartości ustalonej? Acha, czy już wiesz na pewno, że ta feralna płytka+czujnik daje wyniki zmniejszone względem wszystkich innych układów i czujników czy jest odwrotnie: "podejrzany" układ daje więcej niż średnia ze wszystkich "dobrych" zestawów? Bo jeśli mniej, no to dodatkowe grzanie można, wbrew moim/naszym podejrzeniom wykluczyć. Pozostaje wtedy wpływ zakłóceń impulsowych/szumowych lub przynajmniej na tyle szybkich, że nie widzisz ich multimetrem zapiętym na zasilaniu czujnika. Czy w konfiguracji 3-przewodowej próbowałeś blokować zasilanie tuż przy czujniku kondensatorami np. 100nF+10uF? Jak rozumiem kable też można wykluczyć włącznie z zakłóceniami generowanymi przez inne urządzenia i wpływającymi na te przewody, bo mierzyłeś ten sam czujnik w tym samym środowisku na tym samym przewodzie zmieniając tylko płytkę procesora, czy tak?
  8. No jasne, przy 3.3V rezystor powinien być mniejszy Jeśli chcesz wiedzieć ile DS jest w stanie pochłonąć prądu z opornika, to musisz spojrzeć na wiersz "Sink current" i masz tam 4mA. To jest gwarancja producenta, że przy wpychaniu tych 4mA napięcie w stanie niskim na linii DQ nie będzie większe jak 0.4V, co zupełnie spokojnie wystarcza do identyfikacji stanu 0 przez drugą stronę. Niestety to oznacza także, że 4mA*0.4V daje 1.6mW mocy w samym tranzystorze wyjściowym w czujniku. Dlatego prąd ten także powinien być minimalizowany i tylko tak duży jak tego wymaga okablowanie. Opornik podciągający odpowiada za "parkowanie" linii DQ w stanie wysokim. Ponieważ druty mają swoje pojemności tworzy się układ RC: im więszy opornik (a więc im mniejszy prąd ładujący pojemność kabla) tym czas "dojazdu" sygnału DQ z aktywnego zera do pasywnej jedynki jest coraz dłuższy i przy pewnej wartości prądu zaczynają łamać się reguły czasowe protokołu 1-wire. Przy 5V ograniczenie prądu pinu DQ zostaje zachowane aż do wartości 1.2kΩ, ale jeśli te 2m przewody dobrze działają z 4.7k to ja bym zostawił. Ewentulanie zmienił na jakieś 3.3k dla 3.3V. Przy pracy 2-przewodowej, do pojemności kabla dochodzi jeszcze wewnętrzny kondensator samego czujnika - on też "wciąga" ładunek podczas narastania napięcia na linii DQ i dlatego producent rekomenduje tam 4.7k. Teoretycznie w konfiguracji 3-przewodowej i krótkich połączeniach (czujnik na tej samej płytce co procesor?) mógłby wystarczyć sam opornik podciągający pin procesora - jak czasami robi się w I2C. Ew. konwerter musi być dwukierunkowy, ale ja zamiast tego wziąłbym jakąś płytkę typu Nano Pro w wersji 3.3V/8MHz (goły procesor) i zasilił ją "od tyłu" czyli przez pin Vcc raz z 3.3V a raz z 5V. Wtedy masz czystą sytuację. W drugą stronę (procesor 5V/16MHz) będzie trudniej, bo AVR może nie zadziałać z taką prędkością na Vcc obniżonym do 3.3V.
  9. Dobra, widzę, że będziesz sobie już dalej radził. Na pewno wynik pomiaru jest poprawny w tym sensie, że struktura czujnika grzeje się naprawdę. Z jakiego powodu - to musisz odkryć. Pierwszym strzałem jest oczywiście wyższe zasilanie lub.. większy prąd płynący przez rezystor podczas transmisji. Co prawda większość energii wydziela się na nim, ale przecież tranzystor na krzemie nie robi dokładnie 0V w stanie niskim więc trochę ciepła też dostaje. Dlatego żeby było "sprawiedliwie" system pracujący na 3.3V powinien mieć trochę większy rezystor. Niepokoi mnie zdanie: Łyknie gdy sama ma zasilanie 5V. Absolutnie nie możesz jej podawać sygnałów wejściowych wyższych niż jej własne Vcc. Z powodu tego, że podczas komunikacji z DS18B20 pin procesora pracuje w każdym możliwym stanie (wejście, wyjście w stanie 0 i silne wyjście w stanie 1 czyli de facto zwarcie pinu do własnego Vcc) nie możesz mieszać tu napięć. Musisz zrobić środowiska homogeniczne (procesor = czujnik): albo wszystko na 5V albo całość na 3.3V. No i czekamy na wnioski
  10. Chciałbym dobrze zrozumieć co tam ostatnio robiłeś, bo trochę to skrótowo opisane. Wziąłeś więc UNO - tam wyprowadzony jest tylko procesor 5V. Standardy wszystkich sygnałów są 5V a masz tylko dodatkowe wyjście zasilania 3V - czy tak? Podłączałeś do tego czujnik w konfiguracji 2- czy 3-przewodowej? Zmieniałeś tylko zasilanie? Bo jeśli zapodałeś mu 3V na VDD a sygnał z pinu procesora był 5V na DQ to czujnik zasilał się z tego wyższego, bo zawsze tak robi (ma w środku diody od DQ i VDD). Skoro szukasz po omacku, to musisz mierzyć i weryfikować napięcia na pinach czujnika - bez tego możesz wyciągać tzw. ruskie wnioski. Co to konkretnie za płytka? Spróbuj pisać bardziej konkretnie, nie widzimy co masz na biurku a do tej pory o żadnym z układów używanych w eksperymentach (oprócz UNO ale tu też bez schematu można tylko się domyślać co tam namotałeś) nic nie wiemy. Wygląda, że problem leży poza samym DS18B20 i być może dotyczy konfiguracji jego otoczenia. Opisuj całe układy pomiarowe (także z czego je zasilasz) a nie tylko samo podłączenie czujnika.
  11. Być może to jest problem, bo moim zdaniem jest istotna zmiana trybu pracy. Taki czujnik musi mieć w środku jakieś referencje, źródła prądowe zasilające wzmacniacze analogowe itd itp. I teraz to wszystko pracuje dobrze gdy temperatura struktury jest stabilna i nie ma gradientów na samym krzemie. Być może włączając czujnikowi zasilanie tuż przed pomiarem nie dopuszczasz do stabilizacji termicznej chipu a być może są też zjawiska wolniejszego dochodzenia punktów pracy pewnych bloków do stanu stabilnego (takie czysto prądowo-napięciowo-czasowe typu RC). Spróbuj zatem a) nie wyłączać zasilania wcale lub b) załączać np.na 5/10/30s przed wystartowaniem pierwszego pomiaru, c) włączyć zasilanie i wykonać serię powiedzmy 100 pomiarów co 2s logując wyniki. Czy w takich wypadkach widzisz jakąś stopniową poprawę lub choćby dryft wyników? EDIT: A swoją szczękę oszczędzaj, przyda się do innych celów. Tu nie ma żadnej magii, tylko zwykłe pomiary. Prędzej czy później znajdziesz rozwiązanie zagadki. To równie dobrze może być np. znacznie gorsze (w sensie zasyfione) zasilanie w jednym z przypadków, bo jest inny zasilacz, stabilizator czy dochodzi rezystancja wewnętrzna pinu procesora pracującego jako zasilanie.
  12. Czujniki mają rozrzuty produkcyjne więc każdy może pokazywać trochę inną temperaturę w tych samych warunkach. Jak rozumiem to uwzględniłeś albo przez kalibrację albo przez zamiany krzyżowe czujników i to nie jest główny problem. Czujniki pobierają prąd: mało gdy nic nie robią, dużo więcej gdy mierzą. Jeżeli każesz im mierzyć i wysyłać wyniki dość często, moc wydzielana w nich w czasie pracy podgrzewa strukturę i temperatura jedzie w górę. Jeżeli opornik 4.7k jest blisko czujnika to przy 5V i stanie niskim linii danych wydziela się na nim 5mW - to sporo i też jest cieplejszy niż otoczenie. Czujnik zasilany z 5V będzie w czasie pomiaru grzał się bardziej niż ten wiszący na 3V - to chyba jasne? Zajrzyj do danych katalogowych DS18B20 i napisz nam tutaj ile one biorą prądu w obu stanach. Jeśli uwzględnisz rezystancję termiczną obudowy, wyznaczysz sobie średni prąd zasilania i tym samym moc strat przy danym napięciu (sam wiesz jak często każesz im mierzyć i przeczytasz jak długo trwa konwersja) to masz jak na dłoni rezultat: o ile wzrośnie w środku temperatura w czasie takiej pracy.
  13. Nikogo nie wprowadziłeś w błąd. Opisałeś co zrobiłeś i że nie działa a ja tylko zdziwiłem się, że można z tak zerową wiedzą startować do procesorów i radia. No cóż, widocznie można. Sprawdź czy moduły w ogóle są zasilane: zmierz multimetrem napięcie zasilania 5V na ich pinach. Może coś nie dochodzi przez płytkę stykową? Sprawdź, czy nie zamieniłeś programów, tj, czy każde Arduino dostało swój skrypt: nadawcze nadający a odbiorcze odbierający.. Czy dioda LED w nadajniku mruga? Możesz zmierzyć multimetrem napięcie na wejściu danych nadajnika: powinno być trochę większe niż 0V, bo krótkie ramki wysyłane 5 razy na sekundę powinny dawać jakieś widoczne napięcie DC. To samo zrób po stronie odbiornika. O ile pamiętam on odwraca fazę tj. sygnał z nadajnika powoduje wysłanie stanu niskiego do procesora. Zmierz napięcie na pinie procesora na który przychodzą dane odbierane, powinno być delikatnie niższe niż Vcc płytki. Możesz też napisać prosty skrypt odbiornika przepisujący stan pinu 11 na diodkę LED (pin 13) i zobaczyć czy w ogóle coś przychodzi. Generalnie sprawdź kabelki, mierz napięcia a przede wszystkim zrób anteny. Do zabawy na biurku wystarczy jakikolwiek kawałek drutu, na 433MHz idealnie będzie ok 17cm.
  14. To oczywiście kompletna bzdura. "Śrubka" to kondensator którym producent delikatnie dostraja obwód rezonansowy do konkretnej częstotliwości na jaką został wykonany moduł, ale na pewno nie służy do jeżdżenia między odległymi pasmami. Jakiekolwiek samodzielne gmeranie przy tym obwodzie w zasadzie niszczy odbiornik a jego czułość (i tak marna) spada jeszcze bardziej. Trochę śmieszne, trochę straszne.. Aż tak bardzo nie rozumiesz co robisz, czy zwyczajnie liczysz na jakąś magię? Intrygujące. Czy mógłbyś rozwinąć temat dopasowania anten? Jakich anten użyłeś (w sensie rodzaju: dipol, GP, whip itd) i jak je stroiłeś? Ogólnie: te moduły są rzeczywiście słabe, ale z powodzeniem działają na ponad 20 metrów w wolnej przestrzeni, oczywiście z antenami. Z moich doświadczeń wynika, że odbiornik jest bardzo czuły na zakłócenia przychodzące po zasilaniu, choćby z USB komputera. Zasilanie części odbiorczej (Arduino+moduł odbiornika) z baterii (LiPol 2S) dawało kilkukrotne zwiększenie zasięgu w mieszkaniu.
  15. Co znaczy "przycisk cyklu zegarowego"? Chodzi o sygnał zegarowy? W omawianym w tym wątku układzie nie ma mikrokontrolera więc dlaczego narysowałeś "uC"? Scalaki serii 4000 nie mają żadnych rezystorów podciagających, więc wewnątrz obudowy chipu nie ma opornika ciągnącego w stronę zasilania. I właśnie dlatego by zapodawać stan wysoki musisz mieć zewnętrzny opornik R1. Opornik R1 jest także częścią filtra. Kondensator ładuje się stałą czasową C1*(R1+R2) a rozładowuje ze stałą (C1*R2). Oczywiście można ten fragment rozwiązać na wiele sposobów, ale w zasadzie układ który narysowałeś powinien być stosowany tylko do wejść wyposażonych w przerzutnik Schmitta, takich jak RESET mikokrontrolera.
×
×
  • Utwórz nowe...