Skocz do zawartości

Diabloo24

Użytkownicy
  • Zawartość

    12
  • Rejestracja

  • Ostatnio

Reputacja

0 Neutralna

O Diabloo24

  • Ranga
    2/10

Informacje

  • Płeć
    Mężczyzna
  1. Diabloo24

    Używanie funkcji millis() do odmierzania czasu

    Okej, ale wracając do mojej wątpliwości, rozumiem, że bez obaw mogę korzystać z funkcji millis() i powszechnie jest to też stosowane
  2. Diabloo24

    Używanie funkcji millis() do odmierzania czasu

    Przy testowaniu drugiego programu wygląda to jakby ESP8266 się resetował (?)
  3. Diabloo24

    Używanie funkcji millis() do odmierzania czasu

    Tak właśnie to miałem na myśli, lecz w pośpiechu użyłem nie odpowiedniego słowa. Tak, czytałem. W zasadzie użyłem tego w podobny sposób. Głównie zastanawia mnie wpływ takiego odliczania na poprawność innych operacji. Przykładowo czy przy 45 dniu odliczania czasu w programie nie zaczną występować błędy a urządzenie przestanie pracować stabilnie? Martwię się o to, że w początkowych dniach pracy urządzenia gdy licznik (w którym jest zapisany czas pracy) nie będzie zapełniony nawet do połowy to wszystkie inne operacje, które wykonuje w programie będą działać prawidłowo itp. Natomiast, gdy będzie już blisko przepełnienia licznika to będzie on miał wpływ na inne operacje w programie i będą się pojawiać błędy przez co urządzenie będzie pracować niestabilnie..?
  4. W projekcie z ESP8266 potrzebuje odczytywać dane z czujników co określony czas np. 30 min. Do programowania ESP8266 wykorzystuje środowisko Arduino i znalazłem w dokumentacji funkcję millis(), która odlicza czas od uruchomienia programu/urządzenia. Przy wykorzystaniu tej funkcji można stworzyć proste odmierzanie czasu i wykonywanie pomiaru w określonych przeze mnie odstępach np. co 30min. Funkcja ta byłaby świetnym rozwiązaniem, ale doczytałem, że licznik przepełnia się po 50 dniach i resetuje, a także, że wykorzystanie tej funkcji (gdy już licznik jest w dużej mierze napełniony) może ona wprowadzać błędy w innych operacjach arytmetycznych wykonywanych w tym programie. Niestety martwi mnie to, że mogą się pojawić błędy w innych obliczeniach, ponieważ oprócz samego odmierzania czasu i dokonywaniu pomiarów, wykonuję również trochę operacji matematycznych, a później wysyłam dane na serwer. Tutaj moje pytanie czy stosowanie takiego rozwiązania do odmierzania będzie w ogóle poprawne skoro może ono generować błędy? Czy ta funkcja może działać lepiej w esp8266 skoro ma więcej pamięci niż Arduino? W jaki inny sposób można rozwiązać odmierzanie czasu i cykliczne pomiary przy projektach, w których wykonuje się więcej operacji i obliczeń (odliczanie 30 - 60 min)?
  5. W zasadzie na początku też o tym pomyślałem, że nie potrzebuję pełnego zakresu pracy tego tranzystora tylko sam "dół", ale uznałem, że ktoś z doświadczeniem będzie wiedział lepiej Dziękuję bardzo za pomoc, na prawdę dużo mi rozjaśniłeś. Widzę, że zarówno STP16NF06L i IRL540N są na tę chwilę dostępne w sklepie, więc zakupię i sprawdzę jak to wszystko zachowuje się w rzeczywistości I myślę, że najpierw przetestuję to na tym pierwszym tj. STP16NF06L (jest też tańszy te kilkadziesiąt groszy )
  6. Rozumiem, czyli ten rezystor utrzymuje stan niski i powiedzmy że "wyłącza" tranzystor w czasie, zanim mikrokontroler poustawia wszystkie stany na pinach itp. Z innego źródła dowiedziałem się, że "mój" IRL540N czy ten drugi nie nadaje się do tego układu ponieważ producent gwarantuje pewne jego włączenie dla Vgs≧4V. Dla Vgs=4V Rdson≦63mΩ, a dla wartości Vgs = 3,3V nie jest określone Rdson, więc nie wiadomo jak głęboko otworzy się tranzystor i jakie będzie Ugs i moc strat, a w związku z tym nie wiadomo czy tranzystor będzie działał "w miarę dobrze" czy źle. W związku z tym nie wiem czy powinienem szukać innego tranzystora czy budować układ w oparciu o ten tranzystor, chociaż nie łatwo taki znaleźć, a w szczególności jeżeli chodzi o obudowy do montażu THT. Teraz jeszcze w internecie wyszukałem, że MOSFET STP16NF06L (minimalne Ugs = 1V) dobrze radzi sobie z napięciem 3.3 V więc może jego zastosuje zamiast tego IRL540N, skoro ktoś potwierdza jego poprawną pracę. Chociaż wołałbym przeczytać Twoją opinię na temat tego co napisałem powyżej. Dokumentacja stp16nf06l
  7. Dziękuję bardzo za odpowiedź i rady! W zasadzie to myślałem o MOSFET, ale gdzieś przeczytałem, że do sterowania niskim napięciem lepiej użyć bipolarnego, a nigdzie tego nie sprawdziłem. Z tego co teraz doczytałem MOSFET dużo ułatwia sprawę. Znalazłem tranzystor IRL540N, który maksymalne UGS (Threshold) = 2V, więc problemu ze sterowaniem go napięciem 3.3 V nie powinno być problemu. Nie do końca wiem jak w nim w takim wypadku wyliczyć moc strat i wydzielane ciepło (z napięciem UDS?)? Inny tranzystor to np. IRL3705N, który też ma taki sam Threshold. Kolejne pytanie jak zabezpieczyć wejście modułu ESP8266 w razie uszkodzenia tranzystora, dioda prostownicza 1n4007 czy może jakiś transoptor? Rozumiem, że jeszcze pomiędzy bramka a maska powinien się znaleźć duży rezystor odsprzęgający np. 1MOHM? Dokumentacja IRL3705N IRL540N_InternationalRectifier_elenota.pl.pdf
  8. Witam, chcę zrealizować w swoim projekcie załączanie grzałki PTC zasilanej napięciem +5V poprzez podanie stanu wysokiego na odpowiednim pinie w module ESP8266. Jako, że jestem początkujący prosiłbym o sprawdzenie poprawności przeprowadzonych przeze mnie obliczeń. Sprawa wygląda następująco, baza tranzystora jest podpięta poprzez rezystor Rb (ograniczający prąd) do wyprowadzenia modułu ESP8266, gdzie będzie podawane napięcie 0 lub 3,3 V (wyłączona/włączona grzałka). Grzałka jest zasilana napięciem 5V, która na początku nagrzewania pobiera ok. 500mA, natomiast po nagrzaniu ok. 200-250mA. Do załączania grzałki zamierzam wykorzystać tranzystor bipolarny 2STX1360. Założyłem maksymalny prąd kolektora, który będzie pobierany ICmax = 550mA (dodałem 50mA zapasu do max. wartości natężenia jaka pobiera grzałka). Wzmocnienie prądowe hFE odczytane z wykresu dla natężenia 550mA wynosi ok. 370. Obliczony maksymalny prąd bazy IBmax=ICmax/hFE = 1,49mA. Rezystor ograniczający RB = (3,3-0,7)/1,49m = 1,74k Ohm (Tutaj pewnie zastosuje rezystor 1,8k z typoszeregu E24) Napięcie na tranzystorze w stanie nasycenia dla natężenia 500mA (odczytane z wykresu) wynosi Vcesat = 0,04V Moc strat wydzielana na tranzystorze P=ICmax*Vcesat = 20mW Nie jestem pewien czy dobrze policzyłem moc strat? Z tego wynika, że tranzystor nie powinien się nagrzewać podczas pracy z takim natężeniem. Jest jakiś sposób, aby to określić jak bardzo będzie się nagrzewał podczas pracy, bo zastanawiam się czy nie użyć innego tranzystora tzn w innej obudowie np TO220, bo nie wiem jak sobie radzą TO92 z odprowadzaniem ciepła. Teraz zauważyłem, że tranzystor jest już wycofany z produkcji i na internecie nie można go dostać, a są jeszcze zapasy u mnie w lokalnym sklepie elektronicznym. Zastanawiam się teraz czy wybrać jakiś inny model, który jest obecnie wszędzie dostępny i może w innej obudowie? Chociaż ten ma bardzo przyjemne parametry(niskie napięcie Vcesat oraz wysoka wartość wzmocnienia hFE). Dużo modeli ma wysokie napięcie Vcesat i przy takim natężeniu pewnie będą się bardzo nagrzewać.. Dokumentacja 2STX1360
  9. Na programowym, biblioteka SoftwareSerial Tak właśnie zrobiłem wczoraj i jest lepiej, ale też zdarzają się błędy. Zastanawiam się czy to nie wina Arduino, bo kiedyś jak realizowałem na nim inny projekt z wykorzystaniem UART to doszło do czegoś takiego, że nie mogłem zaprogramować Arduino przez UART tylko wyrzucało błąd w komunikacji, a program który był wgrany nie działał i nic nie dało się zrobić. Próbowałem wgrywać przez SPI i wtedy atmega się programowała, ale nadal nie mogłem zaprogramować Arduino przez UART. Potem wgrywałem od nowa bootloader też nie pomogło, więc stwierdziłem, że pewnie padł uC od komunikacji USB-UART, ale gdy wyjąłem Arduino po kilku miesiącach magicznie ożyło i znowu działa normalnie.. Chociaż teraz się zastanawiam czy to nie przez to te błędy z UARTem...
  10. Witam, połączyłem sobie moduł ESP8266-12E z Arduino Uno poprzez programowy UART na pinach 10 i 11 przy wykorzystaniu bibliotek SoftwareSerial. Problem polega na tym, że gdy wysyłam komendę z Arduino do ESP8266 to w odpowiedzi zwrotnej często dostaje np. OK i jakieś śmiecie typu strzałka albo prostokąt. W załączniku dodaje screen jak to wygląda. Prędkość transmisji mam ustawioną na 115200. Dodam, że podczas komunikacji z ESP8266 przez konwerter UART FT232 nie ma tego problemu i przychodzą "czyste odpowiedzi". Co może być powodem tego, że otrzymywane odpowiedzi z ESP8266 na Arduino są "zakrzaczone" ? Jak widać na poniższym screenie komenda AT+GMR nie zwraca całej informacji o wersji firmware ESP8266.. Edit. Po obniżeniu prędkości transmisji do 9600 wszystko działa dobrze. Maksymalna prędkość, przy której wszystko działa stabilnie to 38400 , wszystkie wyższe prędkości już wprowadzają "krzaki". Czym to może być spowodowane, bo na internecie znalazłem przykłady gdzie ludziom działa wszystko dobrze przy prędkości 115200
  11. ----------------------------------
×