Archiwum kategorii: Arduino

Czołg – zarządzanie zasilaniem

Akumulatory LiPo mają wiele zalet. Przy stosunkowo niewielkich rozmiarach i wadze dają wysokie napięcia i mnóstwo mocy. Nie zapominajcie jednak, że trzeba monitorować poziom napięcia ogniw. Ich nadmierne rozładowanie pod dużym prądem może grozić bardzo nieprzyjemnymi konsekwencjami (uszkodzeniem ogniwa i pożarem). Dodatkowo warto mierzyć prąd pobierany z akumulatora – nadmierny może być sygnałem, że czołg trafił na przeszkodę, której nie może pokonać.

 

Czytaj dalej Czołg – zarządzanie zasilaniem

Czołg – ustawianie prędkości silników

W poprzednim poście o czołgu (zob. CZOŁG (ARDUINO + LM298 + BLUETOOTH) miałem problem z ustawianiem prędkości obrotowej silników. Moduł, który używam z Arduino, posiada 6 wejść sterujących:

  • IN1 i 2 – dla pierwszego silnika, włączające go, zatrzymujące i wymuszające kierunek,
  • IN3 i IN4 – dla drugiego silnika,
  • EN1 i EN2 sterujące prędkościami silników.

Problemy pojawiły się przy wykorzystaniu pinów EN1 i EN2. Dopóki były zwarte do płytki – wszystko było ok. Ale wtedy silniki obracały się z pełną szybkością. Wszelkie próby sterowania PWM kończyły się… dziwnym zachowaniem. Silniki nie obracały się, albo obracały się – ale bardzo nieregularnie.

Czytaj dalej Czołg – ustawianie prędkości silników

Czołg (Arduino + lm298 + Bluetooth)

NIE MA TO JAK CZOŁG. Udało mi się zdobyć taką skorupę:

Zestaw zawiera podwozie i 2 silniki. Podwozie zawieszone jest na wózkach z „amortyzatorami” sprężynowymi. W odróżnieniu do modeli ze sztywnym zawieszeniem, powinno to znacznie poprawić właściwości jezdne – zwłaszcza przy pokonywaniu przeszkód. Silniki napędzają koła przez przekładnię. Wanienka jest całkiem spora – mierzy ponad 30 cm.

Budujemy?!

Czytaj dalej Czołg (Arduino + lm298 + Bluetooth)

LED i wzmacniacz operacyjny (pin d13 w Arduino)

Podłączanie LED do Arduino to jedno z pierwszych ćwiczeń, od którego zaczynają adepci programowania tej płytki. Sprawa jest prosta –  wystarczy wolny port, dioda świecąca i rezystor o odpowiedniej wartości. Manipulując sygnałem z portu można diodę zapalać i gasić. Zabawa na 3 minuty.

Zdarzają się jednak sytuacje, gdy takie proste podłączenie nie jest możliwe. Dioda „wisząca” na porcie pobiera z niego prąd (zależny od rezystora). Czasami takie obciążanie portu nie  jest pożądane. Za przykład mogą tu posłużyć np. diody sygnalizujące transmisję na portach TX/RX.

W związku z tym powstaje problem: czy można zapalać diodę w reakcji na stan wysoki portu – bez pobierania z niego prądu? Tak, a najłatwiej wykorzystać do tego… wzmacniacz operacyjny.

Czytaj dalej LED i wzmacniacz operacyjny (pin d13 w Arduino)

Kolejny zegar czasu rzeczywistego: podłączenie ds1307 do Arduino – i kilka słów o i2c

W poprzednim poście  podłączałem do Arduino zegar PCF8563. Ale PCF8563 to nie jedyny układ, który możecie użyć jako odniesienie czasu. DS1307 to inny popularny czip tego typu. I podobnie jak pcf – podłącza się go do szyny i2c. Przyjrzymy się ds1307 – oraz bibliotekom umożliwiającym korzystanie z niego.

Czytaj dalej Kolejny zegar czasu rzeczywistego: podłączenie ds1307 do Arduino – i kilka słów o i2c

Zegar czasu rzeczywistego: podłączenie PCF8563 do Arduino

Jeżeli kiedykolwiek postanowicie zbudować zegarek, prędzej czy później będziecie potrzebowali układ  odniesienia czasu. Każdy procesor zlicza czas od swojego uruchomienia. Ale po resecie, zaniku napięcia zasilającego lub przepełnieniu odpowiedniego rejestru – zaczyna od zera. W zupełności wystarcza to dla funkcji opóźnienia i wielu innych, które korzystają z czasu – jak PWM czy watchdog. Słabo nadaje się jednak na zegarek.

Dlatego stosuje się układy odniesienia czasu. Są to dodatkowe czipy,  najczęściej niezależnie zasilane (przez baterię lub kondensator). Ich rolą jest zapamiętywanie godziny i daty – i odliczanie jej nawet, gdy cały komputer jest wyłączony. Zawartość takich czipów może być ustawiona przez użytkownika – albo np. synchronizowana z usługą czasu sieciowego NTP.

Podobnych układów jest na rynku kilka np. DS1307, MCP79400. Tutaj zajmę się zegarem firmy NXP: PCF8563.

Czytaj dalej Zegar czasu rzeczywistego: podłączenie PCF8563 do Arduino

Tester rezystancji wewnętrznej ogniw 18650

Ogniwa Li-Ion 18650 są głównym źródłem zasilania moich „zabawek”. Owszem – wymagają odpowiedniej ładowarki, trzeba kontrolować stan ich napięcia, są większe niż „normalne” paluszki. Za to dają duże prądy a nominalne napięcie pojedynczego ogniwa to 3.7 v – naładowanego nawet 4.2v.

Wbrew pozorom, 18650 są łatwo osiągalne. Pozyskuję je z baterii od laptopów czy power banków. Tuż po wyłuskaniu ich z „opakowania” konieczna jest ocena ich jakości. Pierwszy sprawdzian jest łatwy – wystarczy zmierzyć ich napięcie. Jeżeli jest zbyt niskie – nawet nie biorę się za ich ładowanie. Absolutną granicą jest dla mnie 3v. Ładowanie ogniw, które dłużej leżały rozładowane najczęściej nie daje dobrych rezultatów – będzie to trwało wieki (cykle ładowania i rozładowania), wymaga czasami „kopa” napięciowego – a na koniec wepchniecie w nie jedynie kilkaset mAh. Najbardziej lubię takie ogniwa, które mają 3.5v i więcej – dają najwięcej energii.

Napięcie to jednak nie wszystko. Jeszcze bardziej liczy się rezystancja wewnętrzna baterii.

Czytaj dalej Tester rezystancji wewnętrznej ogniw 18650

Pomiar natężenia prądu z użyciem bocznika, wzmaczniacza operacyjnego i Arduino

W kolejnym projekcie będę mierzyć natężenie przepływającego prądu… Napięcie wystarczy wprowadzić na piny analogowe Arduino. Z natężeniem jest trochę problemów. Matematycznie sprawa jest prosta. Pan Ohm jest tu dość konkretny:
 I = {U \over R}

Natężenie prądu I możemy łatwo obliczyć, jeżeli znamy napięcie U i rezystancję R. Trzeba to jednak zrobić tak, żeby nasz miernik nie wpłynął na mierzony układ. Jeżeli R będzie za duże – spadek napięcia (dodatkowe obciążenie) wpłynie na działanie mierzonego urządzenia. Rezystancja R powinna być więc możliwie jak najmniejsza. Jednak  wtedy spadek napięcia na niej będzie niewielki…. i trudno go będzie zmierzyć!

Czytaj dalej Pomiar natężenia prądu z użyciem bocznika, wzmaczniacza operacyjnego i Arduino

Ciekawy przypadek pewnego Nano… (piractwo i „kara” po latach)

Zdarzyło mi się pewne Nano… Wygrzebałem je z dna pudełka (przeleżało tam trochę czasu), podłączyłem do komputera. Niestety – nie odpowiadało na programowanie z Arduino IDE. Pierwsze podejrzenie padło oczywiście na bootloader. Szybkie wgranie nowego (sposób znany i opisany) – co zazwyczaj rozwiązywało problem. A tu niespodzianka – nic to nie dało. Co więcej:

Bricked Counterfeit FT232 Serial (UART) IC? What da hell?!

Czytaj dalej Ciekawy przypadek pewnego Nano… (piractwo i „kara” po latach)