Skocz do zawartości

Tablica liderów

Popularna zawartość

Pokazuje zawartość z najwyższą reputacją od 13.01.2022 w Posty

  1. @MR1979 @Zealota obiecany porządny filmik z działania. Wstrzymywałem się z premierą, wybierałem "piecyk" do tego kominka. Kilkoro moich znajomych kojarzy mój kanał na YT (tak ktoś z tych 12 subskrybcji...), a wymyśliłem sobie, że zrobię oficjalne otwarcie połączone ze spotkankiem. Offtop: zdaję sobie sprawę, że kolumny powinny mieć na około więcej przestrzeni. Największa porażka tego projektu to nieprzemyślenie połączeń pomiędzy urządzeniami - przecież żaden przyzwoity wzmacniacz nie ma na wyjściu jacka tylko cinche... na ostatnią chwilę robiłem "na taśmę klejącą" połączenie p
    6 punktów
  2. Cześć, szkoda, że nikt nie może podzielić się swoimi doświadczeniami w zakresie korzystania z "IP Cores" Xilinx'a i Vivado. To może ja zamieszczę trochę linków (do tutoriali wideo) dotyczących magistrali AXI (punkt wyjściowy do korzystania z IP Cores Xilinx'a) i zagadnień związanych z "Block design", HLS i bardziej zawansowanego/świadomego korzystania z możliwości Vivado. 1) Bardzo przystępne wprowadzenie do magistrali AXI (z diagramami czasowymi transakcji burst dla AXI Memory Mapped):
    5 punktów
  3. @Bartek2000 witam na forum a taki: https://forbot.pl/blog/jak-dobrac-rezystor-do-diody-rozne-metody-zasilania-led-id14482
    4 punkty
  4. Cześć! Przedstawiam praktyczną tablicę wyników do gier planszowych na pilota IR. Od dłuższego czasu codziennie grywam w Scrabble, zwykle w składzie dwuosobowym. Spisywanie wyników na papierze i ręczne liczenie było irytujące, a arkusz kalkulacyjny w smartfonie mało praktyczny, dlatego zbudowałem prostą tablicę wyników na ATMega328. Budowa: Z tyłu mamy baterię 9V, która poza zasilaniem pełni funkcję podpórki. Od frontu mamy przejrzysty układ składający się z trzech sekcji: Pierwsza sekcja (od lewej) to zasilanie, czyli 7805 "w swoim naturalnym środowisku",
    4 punkty
  5. BTW: jeśli ktoś szuka dobrego i szczegółowego kursu języka Verilog, to polecam serię 41 wykładów z "NPTEL Gate portal" (Indie) https://gate.nptel.ac.in/aboutus.html Tutaj linki do kursu języka Verilog: ... tutaj dalsze linki do kursu, których nie wklejam do postu... i tutaj ostatni część do tego kursu: Zainteresowanym życzę owocnej nauki i dużo samozaparcia. Pozdrawiam
    4 punkty
  6. Od razu przepraszam za anglojęzyczne nazwy, ale większość materiałów jest po angielsku, i nawet nie wiem jak poprawnie przetłumaczyć te nazwy na polski. Załóżmy że mamy projekt który wyświetla dane na ekran/monitor z częstotliwością odświeżania 30Hz. Czyli mamy nową klatkę co 1/30s (33ms). Załóżmy też że sam obraz jest przesyłany (linijka po linijce) do monitora przez 23ms, a przez pozostałe 10ms jest tzw blanking interval - czyli czas w którym transmisja z pamięci do wyświetlacza się nie odbywa. = JEDEN BUFOR = W takiej sytuacji wyświetlasz obraz i renderujesz kolejną klatkę w
    3 punkty
  7. Postępy z placu boju Zmiany w bibliotece graficznej: - Możliwość użycie trzech buforów ramki na warstwę - dzięki temu renderowanie i wyświetlanie grafiki odbywa się niezależnie => wyższy FPS - Wiele optymalizacji kodu, wykorzystanie DMA2D w trybie przerwań Konfiguracja sprzętu: - Zmiana CAS SDRAM z 3 na 2, oraz przeliczenie pozostałych parametrów kontrolera FMC zgodnie z notą katalogową pamięci (wcześniej było copy/paste z konfiguracji płytki discovery STM32F429) - Dostrojenie parametrów horizontal/vertical frontporch w LTCS aby uzyskać odświeżanie dokładnie 30 klatek/s
    3 punkty
  8. Nie brałbym tego do siebie... Maksymalny prąd na przewodzie zależy od kilku czynników: długości przewodu - przewód ma rezystancję, więc im dłuższy przewód tym większy spadek napięcia przy tym samym natężeniu napięcia rodzaju izolacji - przewód się nagrzewa w wyniku przepływu prądu P = U*I = ~Q Cw = Q / (m*dT) => dT = Q / (m * Cw) => dT = (U * I) / (m * Cw), gdzie m to masa izolacji, Cw to ciepło właściwe izolatora, dT to wzrost temperatury (pisane z pamięci, więc polecam sprawdzić) // Masę izolacji możesz policzyć odejmując od masy p
    3 punkty
  9. Zastanawialiście się kiedyś jak robi się wyświetlacze z diod LED, takie jak na przykład na micro:bit albo na niektórych badge-ach? Najbardziej naiwny sposób, to znaczy podłączenie każdej diody do osobnej nóżki mikrokontrolera szybko wyczerpałby nasze zasoby — nawet przy wyświetlaczu 5×5 byłoby to przecież 25 nóżek! Możemy wykorzystać fakt, że diody nie muszą się świecić cały czas aby patrzącemu człowiekowi wydawało się, że są jasne — podzielimy wówczas nasz wyświetlacz na rzędy i kolumny i będziemy wyświetlać po jednym rzędzie na raz, przełączając się bardzo szybko — to daje nam 5+5=10 nóżek —
    3 punkty
  10. @int ciekawy projekt, miło widzieć coś co rozwiązuje jakiś konkretny problem Wygląda bardzo kompaktowo
    2 punkty
  11. Tak z ciekawości - a gdyby zmienić: *p = (menu_t*)mn->menuNav[navi]; *id = mn->id; na: *p = (menu_t*)mn->menuNav[navi]; *id = (*p)->id; ?
    2 punkty
  12. Daleki byłbym od jakiegoś wydumanego "podziału". Zresztą gdy ktoś coś takiego twierdzi zawsze przypomina mi się cytat ze "Świata Studni: Nie użalasz się, tylko jęczysz że "nie dasz rady". Jeśli wyjdziesz z tego założenia to faktycznie nie dasz rady, bo nawet nie będziesz próbować (bo po co, przecież nie dasz rady, prawda?) I nikomu się tu żadna wiedza wiadrami do głowy nie wlewała - kiedy ja zaczynałem nie było internetu, kupienie jakiejś konkretnej książki graniczyło z cudem. Pojawienie się domowych ośmiobitowców to była bajeczka... cóż z tego, gdy jedyne wartościowe czasopism
    2 punkty
  13. W układzie z dwoma diodami - rezystancja diody dla 2V wynosi powiedzmy 100R wyliczone z wykresu (20mA@2V) (będzie łatwiej). W związku z tym rezystancja dwóch diód wynosi 200R. Przy 4V zasilania uzyskasz prąd o wartości 20mA. Ale jeżeli twoje zasilanie wzrośnie do 4.1V to... Odczytując z wykresu ID (2.05V) = ~25mA. Więc prąd w układzie przy zasilaniu 4.1V będzie wynosił... 25mA zakładając, że masz dwie diody spięte szeregowo i są względnie identyczne pod względem parametrów. To jest dużo bardziej skomplikowane... Bardziej coś ok. 2.8mA, gdyż napięcie na diodzie nie będzie wynosił
    2 punkty
  14. no nie chciałem wam przeszkadzać w dyskusji dla was merytorycznej a dla mnie ciemnej masy nic nie zrozumiałej, i w zasadzie tak bardziej już dla rozrywki żeby odejść na chwilę od tego problemu to stworzyłem na if-ach i switch/case, twór rodem z prehistorii komputerowej hahahaha oczywiście wszystko w ramach żartu. #include <Wire.h> #include <Adafruit_GFX.h> #include <Adafruit_SSD1306.h> #define SCREEN_WIDTH 128 // OLED szerokość #define SCREEN_HEIGHT 64 // OLED wysokość #define OLED_RESET 4 #define SCREEN_ADDRESS 0x3c //adres fizyczny wyswietlacza Adafruit_SSD130
    2 punkty
  15. Jezeli zwracasz cos z funkcji za pomoca return to typem funkcji musi byc zwracany typ...jesli zwracasz int to bedzie "int funkcja()" jesli float to "float funkcja()" itp...poprostu funkcja musi wiedziec co zwraca..void nie zwraca nic..
    2 punkty
  16. A ja uważam za sprzeczne z wszelkimi zasadami badanie stanu przycisków w fafnastu miejscach w programie zamiast w jednym dobrze określonym. BTW. funkcja nie zwraca sporo wyników a dokładnie jeden - numer przycisku który został wciśnięty. Potem wszystko się upraszcza, czyli: case 1: if (key == DOWN) { //zmiana_na_kolejną pozycję } break; Poza tym uważam za przedwczesne rzucanie się na bardziej skomplikowany program jeśli się nie zna podstaw - jakaś kolejność musi istnieć. Na razie proponuję : if (key) Serial.println(key)
    2 punkty
  17. Cześć, Mam na imię Wojtek, staż pracy 4 lata jako elektryk w dziale UR, pozniej 2 lata jako automatyk, obecnie pracuję jako specjalista ds sterowników oźe (m.in zwiększanie poziomu autokonsumpcji z instalacji pv). Z wykształcenia jestem technikiem elektronikiem, obecnie na ostatnim semestrze studiów inż automatyka i robotyka. Bardzo interesuje mnie temat coraz bardziej popularnego IoT. Chciałbym na tym forum przyjrzeć się temu zagadnieniu. W mojej głowie pojawił się ciekawy projekt, w związku którym mam kilka pytań Jednak najpierw poszukam podobnych wątków, pozbieram informacje. Z
    2 punkty
  18. Jak coś jest głupie i działa to wcale nie jest takie głupie.
    2 punkty
  19. Żeby było na razie prosto i zrozumiale, skasuj if-y sprawdzające przyciski sprzed switch-a i wstaw je do case-ów, (wszystkich). Zrób to z głową, pomyśl które ify do którego case. To pomysł toporny ale prosty.
    2 punkty
  20. Masz zly nawias klamrowy przy menusilnik1...dlatego blad Ci wywala
    2 punkty
  21. Oto wersja 1.2: Vref ustawiony na 1.5V. DAC ustawiony na maksa, a wyjście z DAC jest podłączone jako wejście odwracające do komparatora oraz jest też napięciem odniesienia dla aktywnej masy. Histereza jest ustawiona na 50mV. Kod umieszczę wkrótce, jak tylko go troszkę ogarnę. Całość zaczęła działać zgodnie z oczekiwaniami. Niebieski sygnał to wyjście z MCP6002 i wejście do komparatora, a żółty sygnał to wyjście komparatora. Wygląda na to, że wszystko działa zgodnie z oczekiwaniami. Wydaje mi się, że główny cel edukacyjny tego projektu został osiągnięty. Część an
    2 punkty
  22. Pomijając fakt, że puszczenie 3A przez płytkę stykową to niezbyt dobry pomysł... przy projektowaniu instalacji przyjmuje się o ile pamiętam 4A/mm² dla przewodu luzem lub 2.5A/mm² dla zwiniętego (np. przedłużacz bębnowy). Oczywiście przy krótkich odcinkach może być więcej. Osobiście podłączałem żarówkę 1 kW na przewodzie 1 mm² (zrobiłem sobie taki wielożyłowy przedłużacz z kabla od windy) i nic strasznego się nie działo, ale się grzał.
    2 punkty
  23. Sam ich używam i raczej problemów z nimi nie było (Oczywiście do wyższych prądów mam 1.5mm2 i 2.5mm2, ale to inna para kaloszy).
    2 punkty
  24. Witajcie. Mam na imię Eryk, mam 17 lat, jestem na kierunku technik mechanizacji i Agrotroniki rolnictwa i mieszkam w Wielkopolsce. Elektronika inspirowała mnie ale nie było okazji aby ja zrozumieć. Moją pasją jest lotnictwo i nauki ścisłe. Mam nadzieję że wraz z kursami zrozumiem ją jak najlepiej. Życzę wszystkim nie tylko miłej nauki ale też wspaniałej zabawy.
    2 punkty
  25. Ciekawe, temat toczy się dalej, tym razem coś od słynnego redaktora naczelnego Piotra Góreckiego:
    1 punkt
  26. @Norbert7630 No to jesteśmy w domu! break; // 50,) czas wykonania kodu 0.00001, czas od startu 0.00016, następna wykonywana istrukcja linia 52 Błąd! Instrukcja break powoduje przerwanie wykonywania instrukcji nadrzędnej. Linia 65 jest końcem instrukcji switch, czyli następną wykonywaną linią jest pierwsza linia po instrukcji switch linia 66 czyli koniec procedury menuGlowne, program zamyka procedurę i idzie do linii 30 czyli końca procedury loop. Ponieważ procedura loop wykonywana jest w pętli (dlatego nazwano ją loop), i natychmiast zostaje ponownie uruchomiona i przechodzi do lin
    1 punkt
  27. Norbert działasz coś? Kod sprawdzający przyciski polecony przez ethanaka? Pętla while w drugim switchu? Millis potrzebne do odliczania czasu?
    1 punkt
  28. Dzięki za odpowiedź Już w sumie zdołałem uruchomić program na moim ESP, kompiluje mi się bez zająknięcia - musiałem tylko wrzucić "ręcznie" biblioteki do folderu libraries bo coś mu jeszcze nie pasowało ale ruszyło. Teraz mam jeszcze jakieś problemy komunikacją między Modbus RTU a TCP, ale mam nadzieję, że sobie poradzę we własnym zakresie Pozdrawiam
    1 punkt
  29. tak, jest podstawowym programem CAD
    1 punkt
  30. @Norbert7630 program wykonuje w menuSilnik1 cały kod z case1, po czym ma komendę break, więc wychodzi z tego switcha i rozpoczyna pętlę od nowa. Musisz go zmusić żeby się zatrzymał w tym miejscu w którym chcesz, albo żeby pomijał wtedy kiedy chcesz odpowiedniego switcha.
    1 punkt
  31. Wczoraj usiałem znów do tego projektu. Jakie było moje zdziwienie, gdy się okazało, że zegar z kwarcu zegarkowego nie da się przekierować na żaden licznik oprócz RTC. Myślałem aby wykorzystać system eventów, ale wtedy zegar jest jeszcze dodatkowo dzielony i dokładność będzie mizerna. Pomyślałem, żeby może zegar zewnętrzny podpiąć. Ale trudno znaleźć coś skompensowanego temperaturowego w rozsądnej cenie. Znalazłem coś takiego: tcxo-16-368mhz-0-5ppm . Tylko wtedy musiałbym zasilać ATTiny 5V, a zegar 3.3V. Do tego jeszcze jakiś konwerter napięcia na MOSFETcie... Strasznie skomplikowane się z
    1 punkt
  32. Witam Wszystkich Forumowiczów ładnie Mam na imię Tomek, z wykształcenia elektryk, ale od lat niepraktykujący (życie wymyśliło inne scenariusze ). Ostatnio wracam do starych zainteresowań techniką, przede wszystkim elektroniką audio. Parę projektów z gotowych kitów DIY już popełniłem, przyszedł czas trochę się rozwinąć i dopracować wiedzę podstawową. Na studiach z programowaniem szło mi w miarę nieźle, postawiłem więc zacząć od Arduino, potem pewnie przerobię Podstawy elektroniki. Na razie chyba nie bardzo mam się czym dzielić; będę raczej pytał i słuchał innych.
    1 punkt
  33. Nic dziwnego...musisz wyswietlic co chcesz...i przejsc do kolejnego case w ktorym bedziesz sprawdzal czy guzik wcisniety...jesli tak to znow cos wyswietlasz i przechodzisz do kolejnego case w ktorym sprawdzasz guzik
    1 punkt
  34. @Norbert7630 bo nie kod działa, ale jest sporo do poprawy. Na początek powinieneś zrobić tak jak wcześniej pisałem, każdy poziom menu to osobna funkcja, menuGlowne osobna(tylko 2 case w środku), menu silnik1 osobna, i menu silnik2 też osobna. Jeśli w menuGlowne klikniesz enter to wywołujesz funkcję z osobnym switchem dla konkretnego silnika. Pisałem o tym na samym początku. Kolejna zmiana to włączanie i wyłączanie silnika dopiero po kliknięciu enter na pozycji on lub off. Popracuj nad tym i pisz jakby co.
    1 punkt
  35. Wstawiam swój program wraz z filmem dla osób które będą szukały pomocy przy nauce sterowania silnikami krokowymi #include <Stepper.h> // Biblioteka do sterowania silnikiem #define STEPS 32 // Liczba kroków silnika Stepper stepper (STEPS, 8, 10, 9, 11); // tworzenie instancji klasy steppera za pomocą kroków i pinów int val = 0; // dodanie zmiennej void setup () { Serial.begin (9600); //hcemy odczytywać kroki na ekranie komputera stepper.setSpeed (800); // prędkość silnika (1 - 1000) pinMode(4, INPUT_PULLUP); // pin 4 obrót w lewo pinMode(5, INPUT_PULLUP); // p
    1 punkt
  36. https://forbot.pl/blog/kurs-arduino-uart-komunikacja-z-komputerem-pc-zmienne-id3836
    1 punkt
  37. @Norbert7630 dokładnie tak. Możesz na razie pominąć drgania styków, tym się zajmiemy później. To akurat dość dobre ćwiczenie, warto przerobić do końca (razem z debouncingiem).
    1 punkt
  38. Odpowiedź na to pytanie jest bardzo prosta: prąd będzie taki sam jak z jedną diodą. Dlatego że w połączeniach szeregowych prąd jest ten sam dla wszystkich elementów.
    1 punkt
  39. Norbert pamiętasz jak Ci wkleiłem na drugiej stronie tego tematu linka do wiedzy o funkcjach z kursu arduino? Miałeś się zapoznać. Tam jest napisane o tym, że funkcja może zwracać wynik i co to ten return...
    1 punkt
  40. Panowie Szlachta ja nawet nie wiem o czym wy teraz piszecie. @ethanak ja nawet nie wiem jak się za to zabrać z tym return, readkey dla mnie to już czarna magia
    1 punkt
  41. Nie znam się na tych wyświetlaczach który stosujesz, ale tak na szybko, to raczej sprawa funkcji samego wyświetlacza który być może "pamięta" ostatni ekran przed shutdownem. Co do tego pytania: To program dokładnie robi to co mu każesz, przeanalizuj to jak deklarujesz zmienne menuEkran, co to oznacza dla programu szczególnie dla case1, popatrz też co w nim wyświetlasz(case1), popatrz też jakie masz if w tym case.
    1 punkt
  42. Dokładnie, policz i sprawdź nawiasy klamrowe w tej funkcji.
    1 punkt
  43. Dobrze to widzisz. Wklej cały kod z menu_glownym i menu_silnik1 i 2. Będziemy poprawiać po kolei.
    1 punkt
  44. @farmaceutasorki ale twojej podpowiedzi też nie rozumiem, w ogóle to już nic nie wiem pomieszało mi się totalnie. @SOYER na początku widziałem to tak że miały być 3 funkcje każdy ze switch/case przejście z pierwszej do drugiej potem powrót i przejście z pierwszej do trzeciej czyli menuGlowne > silnik1 > back do menuGlownego > silnik2 back do menuGlownego w menuGlownym w którymś if-ie powinno być przekierowanie do menu silnik1 w menu silnik1 powinno być przekierowanie do menuGlowne i znowu z menuGlownego do menu silnik2 i back do głównego. ale okazuje się że tak banalną sprawę
    1 punkt
  45. No i właśnie tu zaczynają się schody nie mogę poradzić sobie z tym przejściem z jednej funkcji do drugiej void loop() { menuGlowne(); } int menuEkran = 1; void menuGlowne(){ if (digitalRead(przyciskGora)== LOW){ //jesli przycisk wcisniety menuEkran = 1;} if (digitalRead(przyciskDol)== LOW){ //jesli przycisk wcisniety menuEkran = 2;} switch(menuEkran){ //instrukcja sterująca głównym menu na wyswietlaczu case 1: display.clearDisplay(); display.setTextSize(2); display.setTextColor(SSD1306_WHITE); display.setCursor(0,10);
    1 punkt
  46. Ostatnio używałem TPS70933, ale on ma za wysoki dropout votage do zasilania z baterii 1S. Za to ma takie bajery: - Stałe napięcie (nie potrzeba dodatkowych rezystorów na feedback) - Zabezpieczenie przed zwarciem - Zabezpieczenie przed przeciążeniem - Zabezpieczenie przed odwróconą polaryzacją - Zabezpieczenie termiczne Więc w sumie rozwiązuje dużo problemów jeżeli chodzi o zasilanie.
    1 punkt
  47. @Zaworov przepraszam, że dopiero odpisuję (urlop), ale może i dobrze, był czas na ochłonięcie Wierzymy że kursanci Forbota są bardzo zdolni i sobie poradzą ze wszystkimi wyzwaniami a tak poważnie, to mogą być niewielkie rozbieżności, jest to odświeżona wersja kursu i w porównaniu z tym co było kiedyś jest to spory przeskok, ale nie wszystko jest idealne. Kurs tż uczy tego co jest połową sukcesu w tej dziedzinie - umiejętności kombinowania. W nieco starszych czasach cz 1 kursu zachęcałaby do wizyty w serwisie AGD w celu zdobycia płyt elektronicznych z podzespołami, a około cz.4 b
    1 punkt
Tablica liderów jest ustawiona na Warszawa/GMT+01:00
×
×
  • 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.