Skocz do zawartości

Elvis

Użytkownicy
  • Zawartość

    2426
  • Rejestracja

  • Ostatnio

  • Wygrane dni

    168

Wszystko napisane przez Elvis

  1. if(pomiar<512){ zamień na if(pomiar<128){ W zmiennej pomiar masz 8 wyższych bitów wyniku. A zmienna 8 bitowa nie może przekroczyć 255, więc warunek <512 jest zawsze spełniony.
  2. W zestawie brakuje jednego - kompilatora. Nie wiem w czym będziesz programować, bo wiele książek o PIC-ach dotyczy programowanie w asemblerze. Jest to niewątpliwie cenna umiejętność, ale ciężko zaczynać od asemblera, to wyższa szkoła jazdy. Jeśli mam coś doradzać to nauki chyba lepiej wybrać AVR. Po pierwsze jest duży wybór języków programowania, chociażby Bascom, C, asembler. W internecie jest dużo przykładów i dokumentacji, sporo po polsku.
  3. Kondensator przy reset można dać, ale mniejszy. 100nF wystarczy w zupełności. Przydaje się z dwóch powodów. Po pierwsze filtruje zakłócenia. Po drugie zapewnie odpowiednią długość impulsu resetującego.
  4. Ja kiedyś miałem podobny problem. Rozjechały się schemat i pcb. Pomogło usunięcie wszystkich elementów, do których eagle miał zastrzeżenia, a następnie dodanie ich z powrotem. Od tego czasu nie używam autoroutera nawet na próbę - bo po jego użyciu wystąpił błąd.
  5. Jakby co to ja też jestem za zawodami
  6. Ja myślę, że dałoby się wyszukać problem do rozwiązania w C, niewykonalny w Bascomie. Tak jak można wymyślić program, który da się napisać w asemblerze, a nie da w C. Tyle, że to będzie tak nietypowy i specyficzny problem, że po co sobie głowę zawracać.
  7. Ogólnie, to chyba im większy tym lepiej. W sterownikach widziałem kondensatory po 4700uF. Ale nawet z mniejszymi powinno działać. Pamiętaj też o kondensatorach za stabilizatorem 5V, inaczej procesor może się resetować.
  8. Problem polega na tym, że procesor najczęściej nie jest w stanie w pełni wysterować tranzystorów mostka H. Tranzystor dolny (N-MOS) często wymaga napięcia 7V na bramce, albo więcej aby w pełni przewodzić. Procesor nie jest w stanie takiego napięcia zapewnić. Jeśli wystawi 5V lub 3.3V tranzystor nie będzie w pełni przewodzić. Z tranzystorem górnym (najczęściej P-MOS) jest jeszcze trudniej. Aby nie przewodził, na bramce trzeba podać napięcie zbliżone do napięcia zasilania silnika. Takiego napięcia procesor raczej nie jest w stanie dostarczyć. Można oczywiście samemu dodać odpowiednie układy pośredniczące. Jednak łatwiej jest zastosować gotowy układ, np. wspomniany IR2110.
  9. Daj duży kondensator i będzie działać. Co prawda nie jest zalecany, ale zadziała.
  10. Powinno działać. Ja podobnie sterowałem silnikiem i nie było problemów. Co prawda używałem niższego napięcia i układu ULN2065, ale to nie powinno mieć znaczenia.
  11. Możesz wkleić schemat? Coś mi się nie podoba Podłączyłeś uln2803 między gnd, a silnik, czy 19V, a silnik?
  12. Jeśli układ wytrzyma, to 19V spowoduje tylko zmniejszenie momentu silnika. Silnik powinien działać poprawnie. Inna sprawa, że silniki krokowe raczej zasila się z wyższego napięcia.
  13. Skutkiem będzie ugotowanie uln2803. I to nie przez zły zasilacz, tylko za duży prąd. Gdybyś podłączył 24V byłoby jeszcze gorzej. ULN2803 wytrzyma "tylko" 500mA. Więc jeśli za wolno będziesz sterował silnikiem, układ ulegnie uszkodzeniu. Powinieneś wybrać inny układ.
  14. Jeśli port jest ustawiony jako wejście, to odczytujemy stan linii. Stan ten może być wymuszony, np. przełącznikiem lub innym układem. Jeśli zostawimy go w powietrzu to może być losowy - działa trochę jak antena. Celem autora, jak się domyślam, kursu było uczulenie, wszystkich na to, że niepodłączone wejścia nie muszą dawać odczytu 0. Jako ciekawostkę polecam napisać program, który będzie zapalał diodę, gdy odczyta 1 z niepodłączonego pinu, gasił gdy 0. Wtedy wystarczy dotknąć palcem procesor, aby zapalić diodę - ładunek z palca wystarczy aby zmienić stan linii. To bardzo typowy błąd - zostawić niepodłączone wejścia procesora i zakładać, że odczyty dadzą zero.
  15. źródło: http://pl.wikipedia.org/wiki/Silnik_pr%C4%85du_sta%C5%82ego
  16. Ok, racja, że można, a nawet najlepiej użyć serw. Te enkodery mnie zmyliły, po prostu bardzo ciężko jest enkoderem inkrementalnym wyliczyć położenie (problem pozycjonowania). Z drugiej strony enkodery absolutne są bardzo drogie. Natomiast w przypadku serwo (ograniczony kąt obrotu) o wiele łatwiej zastosować potencjometr.
  17. Jasne, że są różne. Tylko kto będzie przerabiał drogie, cyfrowe serwo. Jak chcesz zobaczyć budowę typowego serwo, tutaj jest fajny filmik: http://serwo.wtx.pl/index.php?dzial=dokumentacja
  18. Jaki enkoder? Może ja mam dziwne serwo, ale zamiast enkodera był zwykły potencjometr. Raczej nie utrzyma nic w miejscu.
  19. Ja nie byłbym taki pewien zalet silnika krokowego w robocie. Ma jak najbardziej sens, ale raczej tam gdzie chcemy precyzyjnie sterować ruchem, np. w manipulatorze. Do napędu to chyba nie najlepszy, a na pewno trudny pomysł. Z tym , to widać, że nie robiłeś nic na silnikach krokowych. Przy mikrokrokach rzeczywiście się, zlewa, ale przy pełno/półkrokowym sterowaniu szarpanie jest i to znaczne. Do tego pojawiają się ciekawe efekty, jak np. rezonanse.
  20. Tylko nie "im grubsza tym lepsza"!!! Jest dokładnie odwrotnie! Kupisz książkę, która ma 1000 stron, z tego połowa to anegdoty z życia autora. Niestety autorzy dostają więcej kasy, jeśli książka jest gruba, a przez to droga. Więc piszą straszne bzdury, byleby strony czymś zapełnić. Ja polecam "Język ANSI C" autorów Kernighan Brian W., Ritchie Dennis M. http://www.wnt.pl/product.php?action=0&prod_id=860&hot=1 Jest to książka o samym języku C, więc nie o gcc, nie o AVR, itd. Warto wiedzieć, że autorzy książki są przy okazji autorami języka C
  21. Dyskusje o wyższości jednego języka nad drugim to temat bez końca. Ja preferuję C z jednego powodu: w tym języku można pisać na właściwie wszystkie procesory. I to nie tylko mikrokontrolery, ale i programy na PC. Bascom jest na początek łatwiejszy, ale w C można pisać na ARM, AVR, PIC, '51, MSP430, i86. Ostatni argument za C jest taki, że kompilator Bascom prawdopodobnie napisany jest w C (lub C++, jak większość obecnie tworzonego oprogramowania).
  22. Co do języków programowania, to na ARM-y na pewno da się pisać w C++. Na ARM9 można uruchomić linux-a, a wtedy już pełna gama programów, nawet serwer www+php. Jednak raczej nie o to w mikrokontrolerach chodzi. Pierwsze pytanie jest trudniejsze. Teoretycznie wszystko co można zrobić na ARM-ie można też zrobić na AVR. ARM9 ma MMU i to jest istotna różnica. ARM7 i cortex raczej nie mają "czegoś", co by je istotnie różniło od AVR. Główna różnica to 32-bitowa architektura, większa pamięć i szybkość. Pamięć można podłączyć (zewnętrzną) i do AVR, programowo można działać na dłuższych danych niż 8-bitów. Więc jedyne w czym AVR niewątpliwie przegrywa to szybkość wykonywania programów. Gdyby porównywać mikrokontrolery do mikroprocesorów, to pytanie byłoby jak: co można zrobić na najnowszym Core Duo, a nie da się na 386. Jeśli zaczynasz przygodę z elektroniką, to AVR w zupełności wystarczą. Są łatwiejsze do nauki i tańsze. ARM to temat raczej dla bardziej zaawansowanych.
×
×
  • Utwórz nowe...