Skocz do zawartości

Lukasz1979

Użytkownicy
  • Zawartość

    16
  • Rejestracja

  • Ostatnio

Reputacja

7 Neutralna

O Lukasz1979

  • Ranga
    2/10

Ostatnio na profilu byli

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

  1. Dziękuję bardzo za komentarz z wyliczeniami. Generalnie - jedno zastrzeżenie: obliczona moc strat jest moim zdaniem znacznie (ok. dwukrotnie) zawyżona. Pisałem, że przekaźniki nigdy nie pracują równocześnie a maksymalny czas ich pracy nie przekracza 15-20 sekund (uściślam - przybliżony cykl pracy: 1 przekaźnik na 15s, 5s przerwy, drugi przekaźnik na 15s., min. 60s przerwy) . Czy w takim przypadku nadal konieczny jest radiator? Modułu LM2576 używałem wcześniej. Faktycznie, działa OK ale sądziłem, że tutaj wystarczy stabilizator. Jest on po prostu mniejszy i wygodniej go wbudować. W przypadku zasilania bezpośrednio z 230V Twoja propozycja jest faktycznie ciekawa (tania!) ale tu raczej poszedłbym w kierunku innego elementu, które również stosowałem w innym projekcie, ze względu na sposób jego zabudowy (dobrze wlutowuje się go w płytkę, a całość urządzenia umieszczam właśnie na płytce trawionej domowym sposobem) - https://www.piekarz.pl/34729-zasilacz-myrra-48022-5v-dc-600ma/. W takim rozwiązaniu podaję zasilanie na pin 5V w Arduino a cewki przekaźników zasilam bezpośrednio (nie obciążając stabilizatora napięcia w Arduino. Jeszcze raz dziękuję za uwagi i rady!
  2. Witam! Na bazie Arduino NANO buduję układ, który ma być umieszczony w szafie sterującej pewnego urządzenia celem rozszerzenia jego funkcji. Sam układ prototypowy działa mi już bezproblemowo i bardzo się przydaje, chciałbym jednak zmodyfikować sposób jego zasilania. Obecnie wykorzystuję w tym celu zwykły zasilacz stabilizowany 9V zasilany napięciem 230V (jest ono dostępne w szafie) chciałbym jednak przejść na rozwiązanie, które wydaje mi się bardziej "eleganckie" i niewymagające zewnętrznych elementów (możliwe do umieszczenia we wspólnej obudowie z całym modułem). W szafie dysponuję również transformatorem z dużym zapasem mocy, mającym m.in. wyjście 13V (rzecz jasna AC). Projekt zasilam napięciem 9V DC. Czy prawidłowo zaprojektowałem poniższy układ z wykorzystaniem stabilizatora napięcia? W tym układzie miałbym stabilne 9V między wyjściami Vo i GND, które mógłbym wykorzystać do zasilania układu. Główne planowane do użycia elementy: https://botland.com.pl/pl/regulatory-napiecia/1902-stabilizator-9v-l7809cv-tht-to220.html https://botland.com.pl/pl/mostki-prostownicze/5226-mostek-prostowniczy-kbu6m-1000v-6a-plaski-5-szt.html Na wszelki wypadek podaję ogólne informacje o zasilanym układzie: Arduino Nano (oryginalne) z nast. obciążeniem: 6 pinów w trybie INPUT_PULLUP czyli znikome obciążenie (zbieranie sygnałów) 3 piny w trybie OUTPUT do diody LED oraz sterowania 2 przekaźnikami za pośrednictwem tranzystorów NPN i rezystorów 10k. (nadal niewiele) PIN 5V używany do zasilania 2 przekaźników z cewką 5V 0,36W (największe obciążenie układu, przy czym maksymalny czas pracy przekaźników nie przekracza 15-20 sekund i nigdy nie pracują one równocześnie). Przepraszam za dość prymitywny szkic i z góry dziękuję za komentarze.
  3. Można, ale moim zdaniem nie warto . Dopiero po obejrzeniu przebiegów na żywo "poczułem" działanie układu. GORĄCO ZACHĘCAM!!! (dla zaawansowanych użytkowników to żadna nowość ale na etapie nauki to ogromna pomoc). Dzięki artykułowi https://forbot.pl/blog/jak-przystosowac-domowego-pilota-wlasnych-celow-id1223 można mieć "oscyloskop" za grosze. Zrobiłem sonde dwukanałową z wbudowanymi dzielnikami napięcia wykorzystując 2 stare długopisy, kabel od przedłużacza słuchawkowego, spinacz biurowy i rezystory 5,1K oraz 330R (dla napięcia zasilania 6v mamy maksymalne napięcie na sondzie 0,36V i przepływ prądu przez sondę na poziomie 1,1mA). Być może kogoś zainteresują efekty, uzyskane przy badaniu sterownika serwa: (Na powyższym wykresie czas na odciętej pomiędzy pionowymi, czerwonymi liniami wynosi 2ms) (a na tym 1,5ms aby pokazać, że odpowiada to w przybliżeniu środkowemu położeniu serwa). Nie wiem, skąd biorą się narastające przebiegi stanu niskiego - czy jest to efekt niedoskonałości układu pomiarowego czy może wynika w jakiś sposób z działania przerzutnika wbudowanego w NE555? Widać natomiast wyraźnie "niedoskonałość" samego układu, polegającą na zmianie częstotliwości sygnalu PWM przy zmianie wypełnienia (zmieniając czas stanu wysokiego i pozostawiając stały czas stanu niskiego zmieniamy okres sygnału). Ale to już wynika z samej zasadny działania naszego sterownika.... Jeśli ktoś będzie zainteresowany, mogę wrzucić "fotorelację" z budowy sondy z dokładnym opisem krok po kroku (choć jest to naprawde bardzo proste nawet dla początkującego jak ja).
  4. Ja na szczęscie miałem w komplecie 4 MOSFETy. Dwa "udało" mi się zepsuć albo były zepsute.... Dopiero trzeci zadziałał prawidłowo... Moje obserwacje dotyczące zepsutych (?) mosfetów: oporność źródło - dren w obu kierunkach taka sam (ok. 1 k w jednym i 400R w drugim). Zakładam, że oznacza to ich przebicie? Mam jeszcze jedno pytanie - nie wiem czy dobrze rozumuję, ale chyba można wykorzystać MOSFETY do załączania prądu o wyższym napięciu niż napięcie używane do sterowania? Np. do załaczenia zasilania 12V do listwy LED albo silnika za pomocą wyjścia Arduino? Wykonałem symulację online i wygląda na to, że działa: Uprzejmie proszę o komentarz odnośnie takiego zastosowania.... Wolałbym nie spalić Arduino.... (oczywiście w tym wypadku Arduino jest "udawane" przez przełącznik i zasilacz 5V).
  5. Dzięki za odpowiedź. No tak, można to było znaleźć.... Ale z drugiej strony jak się coś samemu wykombinuje to lepiej zapada w pamięć (raczej nie miałem złudzeń, że dokonałem epokowego wynalazku - chciałem tylko potwierdzenia, że nie popełniłem jakiegoś powaznego błędu). I2C oczywiście w planach, ale chcę wykonać jedno urządzenie, które będzie już pracować na stale (mam jeszcze jakiegoś chińskiego klona Arduino, który będzie tym zarządzał) i warto wykorzystać posiadany wyświetlacz zamiast zostawiać go w szufladzie. Do kolejnych projektów podejdę już z I2C. Na razie, przed zakupem elementów do 2 części kursu chcę zrobić już coś praktycznego. A czemu uważasz, że granicą jest 6 przycisków? Jeśli spojrzysz na odczyty ADC (widoczne na gifie) to zapas jest jeszcze duży....
  6. Realizując swój pierwszy samodzielny projekt natknąłem się na problem, który (jak mi się wydaje) można rozwiązać z wykorzystaniem ADC oraz rezystorów połączonych w roli dzielników napięcia. Będę wdzięczny, jeśli ktoś bardziej doświadczony "rzuci okiem" na moje wypociny i potwierdzi, czy można tak postępować (ja nie widzę przeciwskazań, ale być może coś mi umyka). Problem - zbyt mała ilość dostępnych wyjść/wejść cyfrowych w projekcie zawierającym wyświetlacz LCD, serwo, sporo diod sygnalizacyjnych i 5 przycisków. Oczywiście wiem (przynajmniej pobieżnie), że można użyć wyświetlacza I2C, klawiatury matrycowej itp. ale na razie chciałbym oprzeć się na już posiadanych elementach (poza tym klawiatura matrycowa i tak zajmuje sporo pinów). Pomysł (być może naiwny ale taki przyszedł mi do głowy) - zamiast "marnować" piny na przyciski, postanowiłem połączyć przyciski z rezystorami służacymi jako dzielniki napięcia w taki sposób (rysowane w Cuircuits/Tinkercad): Dzięki różnym wartościom rezystorów (stopniowane co ok. 330R) na ADC możemy otrzymać inny odczyt przy każdym przycisku. Rezystor 10k stale "podciąga" wejście A0 d0 5V dla zabezpieczenia przed zakłóceniami, kiedy żaden przycisk nie jest wciśnięty. W celu testowym zbudowałem układ na płytce łączac szeregowo rezystory 1k i 330R: i napisałem krótki program próbny: #include <LiquidCrystal.h> LiquidCrystal lcd(1, 2, 3, 4, 5, 6); int odczyt=0; int odczytzmapowany=0; void setup() { lcd.begin(16, 2); //Deklaracja typu lcd.setCursor(0, 0); //Ustawienie kursora lcd.print("TEST KLAWIATURY"); //Wyświetlenie tekstu lcd.setCursor(0, 1); //Ustawienie kursora lcd.print("1 PINOWEJ"); //Wyświetlenie tekstu delay(2000); lcd.clear(); } void loop() { odczyt=analogRead(A0); while(odczyt>200){odczyt=analogRead(A0);} odczyt=analogRead(A0); odczytzmapowany=map(odczyt,30,145,1,5); lcd.setCursor(0, 0); lcd.print("NACISNIETO ");lcd.print(odczytzmapowany); lcd.setCursor(0, 10); lcd.print("ODCZYT ADC ");lcd.print(odczyt); delay(1000); lcd.clear(); } Poniżej efekt: Być może warto byłoby zwiększyć "rozrzut" rezystorów dla większej pewności, że nie dojdzie do błędów odczytu, ale wydaje mi się, że układ działa poprawnie. Czy są jakieś poważniejsze przeszkody techniczne dla stosowania w praktyce takiego rozwiązania?
  7. Cześć! Mam dokładnie te same wrażenia co Ty, Po pierwsze: Po drugie: kabelki w kursie elektroniki są rzeczywiście kiepskie. Końcówki odpadają i są oblepione klejem, który blokuje przewodzenie. Straciłem do nich cierpliwość po kilku próbach. Na szczęscie mam też DuPonty z kursu Arduino (tamte są bardzo dobre). Pozdrawiam!
  8. Witam, Rozpocząłem budowę swojego pierwszego projektu, ale muszę wrócić do rozdziału o serwomechanizmach. Zaobserwowałem, że serwo, nawet jeśli ustawię je w stałej pozycji (już w sekcji "setup") przez cały czas "pomrukuje" próbując korygować pozycję (chyba, ruch nie jest widoczny). Czasem, jeśli przyłożę do ramienia bardzo niewielką siłę i "pomogę" mu w ten sposób ustawić położenie docelowe to uspokaja się na kilka minut, po czym znowu wraca do korekt. Moje pytanie jest proste - czy to normalne? Czy można to zignorować? Z pewnością przyspiesza to zużycie baterii ale przypuszczam, że wynika to z zasady działania (utrzymywanie pozycji w zależności od współczynnika wypełnienia sygnału.... Z góry dziękuję za komentarze.
  9. Witam, Można prosić o wyjaśnienie, w jakim celu w kodzie znajdują się linijki zaznaczone na czerwono? Wydaje mi się, że jeśli nie zmieniamy stanu wyjść cyfrowych to można je usunąć.... Ale już kilka razy coś mi się wydawało a niekoniecznie miałem rację - stąd prośba o wyjaśnienie. Pozdrawiam, Łukasz.
  10. Tak dla jasności - pisząc "brakowało" w żadnym wypadku nie chciałem umniejszać wartości kursu ani krytykować zawartości. Po prostu nie mogłem przeskoczyć tego zagadnienia (próbowałem eksperymentować z samym Serial.read() ale otrzymane wartości zdecydowanie nie były właściwe.... Dziękuję za link, zapoznam się
  11. Serdeczne dzięki. Serial.parseInt() rozwiązało mój problem na tę chwilę. Kolejne etapy będę realizował sukcesywnie - tu chyba brakowało tej informacji w kursie (niezbędnej do wykonania zadania). Na szczęście jest forum!
  12. Jako "świeżaka" zastanawia mnie jedno.... Jeżeli korzystam z funkcji Serial.readStringUntil('\n') to (jeśli dobrze rozumiem) odczyt mogę przypisać jedynie do zmiennej typu String (tekstowej) - w innym wypadku już na etapie kompilacji pojawia się problem. Jakiej funkcji użyć, żeby odczytać z portu szeregowego wartość cyfrową (int lub byte)? Próbowałem wykonać "zadanie domowe" z grą (zadanie 4.5) i na samym początku "poległem" przy próbie porównywania wartości odczytanej z potencjometru oraz wartości odebranej z terminala (nawet jeśli były takie same program traktował je jako różne - przypuszczam, że wynikało to z różnego typu zmiennych i wartość np. 10 odczytaną z potencjometru (jako int) nie była dla mikrokontrolera tożsama z wartością "10" odczytaną z terminala jako String). Będę wdzięczny za komentarz...
  13. Dzięki za wyjaśnienia. Podane linki rzeczywiście sporo rozjaśniły.... Przyznaję, analizowałem jedynie skrajne stany, bez pośrednich. Już wiem, czemu zagadnienie nie jest takie oczywiste, jak mogłoby się wydawać.
  14. Świetny kurs. Jako ktoś ZUPEŁNIE zielony w temacie jestem w stanie ogarnąć przykłady i tworzyć już pierwsze własne, proste projekty. Drobna uwaga matematyczna (proszę o korektę jeśli się mylę) - jeśli tworzymy nasz pierwszy prosty woltomierz to dzielić powiniśmy nie przez ilość stanów a przez wartość maksymalną. Dzieje się tak, ponieważ przetwornik ADC tak naprawdę przetwarza zakres wartości analogowych na wartość cyfrową (nie może przetwarzać każdego stanu bo jest ich nieskończenie wiele, jak to w świecie analogowym). Jeśli mamy 1024 stany to dysponujemy jedynie 1023 zakresami. Prosty dowód: jeśli dzielimy przez 1024.00 (jak w przykładzie) przy odczycie wartości z potencjometru 1023 (czyli maksymalnym) oraz napięciu 5V otrzymujemy V=5.00*(1023/1024)=4,995 V. Przy dzieleniu przez 1023 wynik wynosi dokładnie 5.00V. Przyznaję, różnica symboliczna ale im słabszy (o mniejszej rozdzielczości) przetwornik tym większe ma to znaczenie. Pozdrowienia i raz jeszcze dziękuję za kurs!
×
×
  • Utwórz nowe...