Skocz do zawartości

szeryf

Użytkownicy
  • Zawartość

    28
  • Rejestracja

  • Ostatnio

Wszystko napisane przez szeryf

  1. @xanes dzięki za przypomnienie, faktycznie to powodowało ten błąd. Co do opóźnień, to testowałem na dwóch kablach usb, dłuższym i krótszym z zestawu. Zrobiłem też tak jak radził @Gieneq, czyli zainstalowałem całe środowisko na dość szybkim laptopie, ale problem opóźnień cały czas występuje. W programie użyłem funkcji is_button_pressed z poprzedniego odcinka, a do pętli while wrzuciłem poniższy kod: if(is_button_pressed()){ printf("zmienna licznik wynosi: %d\n", licznik); if (licznik % 2 == 0){ HAL_GPIO_WritePin(LD2_GPIO_Port, LD2_Pin, GPIO_PIN_SET); } else { HAL_GPIO_WritePi
  2. Super materiał, wszystko przejrzyście wytłumaczone. Przy okazji zadań domowych była mała powtórka z poprzedniej części kursu. Od strony programistycznej wszystko mi działa. Zanim przejdę do następnej części to mam pytania o działanie samej płytki, środowiska i terminala, bo pojawiło mi się kilka uciążliwości przy pracy. 1. Często po wykonaniu debugowania pliku main.c i wciśnięciu przycisku run, pojawia mi się komunikat: No ST-LINK detected! Please connect ST-LINK and restart the debug session. Sprawdzałem w managerze urządzeń i płytka normalnie była widoczna, poza tym diody na programator
  3. Świetny odcinek kursu, w końcu znalazłem czas żeby przysiąść i podziałać. Szczególnie rozwijający od strony programistycznej jak dla mnie, okazał się ten dodatek. Jak do tego jeszcze dołożymy dodatek do dodatku, którym się podzielił Gieneq, to mamy naprawdę super materiał do nauki. Podczas zabawy z przełączaniem portów i pinów zauważyłem, że diody mi nie działają, gdy podłączę je pod PA2 lub PA3. Czy to normalne, czy mogę mieć jakiś problem z płytką?
  4. No tak, chyba nie w pełni dotarł do mnie fakt, że jest płytka i jest programator...
  5. Środowisko zainstalowane, płytka podłączona. Wszystko śmiga. Instalacja przeprowadzona na komputerze z Win10, wszystko odbyło się identycznie, jak zostało pokazane w artykule. Po drodze była wspomniana aktualizacja programatora. Jedyna uwaga, to po wgraniu pustego programu jednak na płytce coś się dzieje, dioda LD1 zaczyna migać na czerwono/zielono, a po wciśnięciu Terminate wraca do świecenia na czerwono.
  6. Dziś dotarła paczuszka z zestawem, więc czas na nową przygodę. Podziękowania dla Forbota i autora kursu za taki fajny prezent w tym trudnym dla wszystkich czasie. Pozdrawiam.
  7. Układ czujnika przeszkód działa z odległości około 10 cm, ale nie wiem czemu przestaje działać, kiedy zbliżam przeszkodę nawet o 2-3 cm. Układ z serwem też działa, przy czym przy zmniejszaniu rezystancji potencjometru poniżej 0,3 kΩ serwo zaczyna kręcić się dookoła. Dołożyłem szeregowo z rezystorem 1 kΩ rezystor 330 Ω i problem kręcenia się dookoła zniknął, ale jest to kosztem zmniejszenia kąta obrotu serwa o jakieś 20-30 stopni. Czy taki efekt to coś normalnego?
  8. Zrobiłem 2 testy, raz dodałem równolegle drugi rezystor 1 MΩ, a potem zamieniłem je na rezystor 100 kΩ. Dodam tylko, że po złożeniu obwodów z kolejnej lekcji kursu też za bardzo histereza nie działa, kiedy np. podgrzewam termistor gorącym powietrzem z suszarki, to układ załącza diodę od razu, ale już przy stygnięciu efekt jest taki, że dioda gaśnie stopniowo.
  9. Do stabilizatora napięcia dochodzi napięcie 12V, a na szynach zasilających układ jest 5,08V. Napięcie na wejściu nieodwracającym jest w przedziale 1,98V – 3,02V, na wejściu odwracającym 2,53V. Na wyjściu komparatora przy 1,98V z wejścia odwracającego jest napięcie 0,4V, a przy 3,02V na wejściu mamy na wyjściu 4,6V. Czyli z pomiarów wychodzi, że wszystko chyba jest dobrze podłączone. Podłączenie dwóch woltomierzy poprawiło nieco działanie układu, bo tylko przy różnicy 0,1V dioda wchodziła w stan pośredni i się w nim utrzymywała, przy czym tylko wtedy, gdy napięcie na wejściu nieodwrac
  10. Wydaje mi się, że złożyłem układ tak jak w artykule, ale sprzężenie zwrotne nie za bardzo u mnie działa (dioda lekko świeci, kiedy potencjometr jest w pozycji środkowej). Nie mogę zlokalizować problemu. Proszę o podpowiedź.
  11. Witam, mam kolejne pytanie. Czy przy podłączeniu kilku wyświetlaczy 7-segmentowych przez ekspandery PCF8574, da się nimi sterować przy użyciu biblioteki SevSeg lub innej? Podłączyłem wyświetlacze 3-cyfrowe FJ5361BH w ten sposób, że diody są podłączone do wyprowadzeń ekspanderów, a anody są sterowane z pinów w Arduino. Nie wiem, czy takie podłączenie jest zgodne ze sztuką, ale nigdzie nie znalazłem przykładów pokazujących, jak to zrobić. Ręcznie sterować się tym da, ale są pewne dziwne zachowania takiego układu, których nie rozumiem. Kiedy pierwsza cyfra coś wyświetla, to pozostałe cyfry świecą
  12. Dzięki za odpowiedź. U mnie niestety problemem okazał się fakt, że tranzystory NPN trafiły do woreczka, gdzie miały być PNP (czyli bałagan albo za dużo zestawów Forbota w domu ), dopiero jak wróciłem do złożenia podstawowego klucza PNP na zwykłej diodzie i nie zadziałał tak jak trzeba zorientowałem się, że coś nie tak z tranzystorem. Później odnalazłem zaginione tranzystory PNP i stała się jasność. Później muszę potestować jeszcze z wykorzystaniem biblioteki...
  13. Podmieniłem tranzystory na PNP te do kursu (emitery podłączyłem do zasilania, bazy przez rezystor 10K do arduino, kolektory do anod). Efekt jest taki, że wczytany program działa, ale diody wyświetlacza świecą bardzo słabo (powiedziałbym 10% tego, co przy konfiguracji z tranzystorem NPN). Próbowałem zmniejszyć rezystory podłączone do diod na 330 Ω, ale poprawa była prawie niezauważalna. To był test z użyciem biblioteki SevSeg, na tym samym przykładzie co poprzednio dla tranzystorów NPN. Próbowałem jeszcze zmiany w hardwareConfig z COMMON_ANODE na P_TRANSISTORS, ale to nic nie pomogło w kwestii
  14. Witam, po wykonaniu wszystkich ćwiczeń w lekcji, podłączyłem w ramach testów poczwórny wyświetlacz 8-segmentowy o wspólnej anodzie (FJ5461BH). Podłączenia do anod zrobiłem przez takie same tranzystory jak w kursie, przy czym kolektory podłączyłem do zasilania, emitery do anod, a bazy przez rezystor 10k do pinów Arduino. Wgrałem pierwszy przykład z biblioteki SevSeg, który odlicza co jedną dziesiątą sekundy do 999 i zadziałało. Mam jednak pytania, w czasie szukania informacji dotyczących wyświetlaczy o wspólnej anodzie, znalazłem artykuły, w których były stwierdzenia, że powinno się d
  15. Dzięki, fajny sposób wykorzystania pętli.
  16. Witam, zadanie 6.3 (zmiana automatyczna, co stały ustalony czas), umieściłem w funkcji loop poniższy kod, for (int i = 0; i < 10; i++) { for (int j = 0; j < 10; j++) { while (millis() - zapamietanyCzas <= 500UL) { digitalWrite(WYSW_1, HIGH); digitalWrite(WYSW_2, LOW); wyswietlacz(i); delay(10); digitalWrite(WYSW_1, LOW); digitalWrite(WYSW_2, HIGH); wyswietlacz(j); delay(10); } zapamietanyCzas = millis(); } } gdzie zmienna zapamietanyCzas została zadeklarow
  17. Witam, mam pytanie w kwestii resetowania centralki. Zauważyłem (o ile nie przeoczyłem jakiegoś posta), że przeplatają się 2 sposoby: z wykorzystaniem przerwania realizowanego na dodatkowym przycisku albo dodania sprawdzenia wciśnięcia jakiegoś przycisku z matrycy w stanie 4, kiedy alarm się już włączy (przy czym to rozwiązanie powoduje, że nie zawsze pierwsze wciśnięcie zadziała, bo możemy trafić w moment realizacji pętli for). I tu pojawia się moje pytanie, czy można zrobić przerwanie, ale z użyciem jednego z przycisków matrycy. Moje próby na razie nie przyniosły efektu.
  18. szeryf

    Odmierzanie czasu w QT

    Dzięki cierpliwej pomocy i wskazówkom kolegi Matthew11 udało się rozwiązać ostatni problem również. Obiekt etimer klasy QElapsedTimer, był zadeklarowany przeze mnie już w pliku mainwindow.h w sekcji public i niepotrzebnie tworzyłem go jeszcze raz lokalnie w procedurze void MainWindow::on_pushButtonLedOn_clicked() , co powodowało te niechciane zachowania timera. Usunięcie lokalnej deklaracji pomogło i teraz wszystko śmiga. Dzięki jeszcze raz za pomoc.
  19. szeryf

    Odmierzanie czasu w QT

    W klasie MainWindow mam obiekt (timer) klasy QTimer, bo wcześniej na nim próbowałem robić odmierzanie czasu, ale wtedy miałem te opóźnienia, które opisałem wcześniej, teraz próbuję z obiektem (etimer) klasy QElapsedTimer, obiekt timer zostawiłem do odświeżania wizualnego interfejsu, może wkleję cały kod, zerknij na voida myfunction, może tam coś namieszałem, w załączniku wrzuciłem screena z interfejsem #include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> #include <QList> #include <QSerialPortInfo> #include <QDateTime> MainWindow::MainWindow(QWidge
  20. szeryf

    Odmierzanie czasu w QT

    Ok. Poradziłem sobie z tą liczbą, poprzez dzielenia całkowite i obliczanie reszt udało mi się oddzielić milisekundy i sekundy w timerze. Mam jeszcze ostatni chyba problem, podpiąłem uruchomienie timera po przycisk, void MainWindow::on_pushButtonLedOn_clicked() { timer->start(17); // tu zrobiłem te 60 Hz oświeżania dla interfejsu QElapsedTimer etimer; etimer.start(); } void MainWindow::on_pushButtonLedOff_clicked() { timer->stop(); etimer.restart(); } ale jak kliknę ten przycisk, to upływ czasu jest liczony we właściwym tempie, ale nie od zera tylko tak jakby t
  21. szeryf

    Odmierzanie czasu w QT

    uruchomiłem QElapsedTimer etimer; etimer.start();
  22. szeryf

    Odmierzanie czasu w QT

    Dzięki za podpowiedź, właśnie próbuje wykorzystać QElapsedTimer, nie mogę tylko rozszyfrować co oznacza zwracana liczba tej wielkości (8583652368141)?
  23. Witam, mam pytanie dotyczące odmierzania czasu w QT. Wykonałem timer według tego tutoriala, później postanowiłem zmodyfikować kod, aby odmierzanie czasu było o zera z dokładnością do milisekundy (jak w stoperze), napisałem sobie poniższy kod: #include "mainwindow.h" #include "ui_mainwindow.h" #include <QDebug> #include <QDateTime> MainWindow::MainWindow(QWidget *parent) : QMainWindow(parent) , ui(new Ui::MainWindow) { ui->setupUi(this); timer = new QTimer(this); connect(timer, SIGNAL(timeout()), this, SLOT(myfunction())); } MainWindow::~MainWindow(
×
×
  • 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.