Skocz do zawartości

Lukasz1979

Użytkownicy
  • Zawartość

    14
  • 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. 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).
  2. 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).
  3. 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....
  4. 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?
  5. 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!
  6. 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.
  7. 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.
  8. 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ę
  9. 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!
  10. 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...
  11. 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ć.
  12. Ś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...