Skocz do zawartości

Kurs Arduino - #6 - kontynuacja UART, serwomechanizmy


Pomocna odpowiedź

Napisano
html_mig_img
W tej części zajmiemy się kilkoma tematami. Po pierwsze wrócimy na chwilę do UART, omówimy również nowe instrukcje sterujące. Na koniec praktyczne zastosowanie dla serwa.Przed czytaniem upewnij się, że znasz podstawy opisane w dotychczasowych częściach naszego darmowego kursu Arduino dla każdego!

UWAGA, to tylko wstęp! Dalsza część artykułu dostępna jest na blogu.

Przeczytaj całość »

Poniżej znajdują się komentarze powiązane z tym wpisem.

Zauważyłem nie do końca poprawne stwierdzenie:

...czyli przyjmuje tylko 8 cyfr! Każda kolejna jest błędna, ponieważ wykraczamy poza obszar pamięci, gdzie zapisana jest liczba i trafiamy w losowe cyfry.

Nie bardzo mogę zgodzić się ze stwierdzeniem ilości cyfr (w grę bardziej wchodziłby zakres wartości) dla typu zmiennoprzecinkowego (float). Bardziej pasowałby tutaj zapis o rozmiarze typu = 4B.

Ostatnie zdanie też niestety niezbyt trafione, ponieważ absolutnie nie wykraczamy poza obszar pamięci, a w grę wchodzi jedynie dyskretyzacja wartości tj. zapis wartości niecałkowitych w systemie binarnym. Przedstawiona przybliżona wartość liczby PI jest możliwie najdokładniej reprezentowana dla typu float, przybliżeniem jej do podanej wartości. Nie ma mowy tutaj o "wykraczaniu poza obszar pamięci". Po prostu na 4-bajtach nie da się dokładniej zapisać liczby PI...

Pomocny kalkulator: Klik

3.14159265358979323846264

Most accurate representation = 3.1415927410125732421875E0

atmel21, dzięki za uwagę. Faktycznie mój błąd z reprezentacją Pi, zaraz poprawię. Jednak, co do precyzji float kierowałem się tutaj prostym tłumaczeniem z dokumentacji Arduino: "Floats have only 6-7 decimal digits of precision. That means the total number of digits, not the number to the right of the decimal point."

W tekście 8 na 7 poprawiłem zaraz po publikacji, widocznie wyświetliła Ci się jeszcze stara wersja.

atmel21 co do wychodzenia poza pamięć, masz rację, ale "zakres wartości", to jeszcze gorsze stwierdzenie niż ilość cyfr. W przypadku tylu float, "zakres wartości" jest raczej duży - 2^127. To co stanowi problem to liczba bitów mantysy, czyli raptem 23. Na tylu bitach można zapisać do 7 cyfr dziesiętnych - więc tyle będzie dokładnych, a pozostałe będą obarczone błędem.

W każdym razie na potrzeby kursu dla początkujących wystarczy wiedzieć, że liczby rzeczywiste stwarzają wiele problemów i o ile to możliwe, lepiej używać typów int i pochodnych.

Hej

a jakiej wartosci jest potencjometr w tej części kursu, bo akurat w bortlandzie kupilem inny zestaw startowy z 10k , a ten do kursu nie ma dokładnie opisanej wartosci potencjometru

pozdrawiam

Maciek

Kawał dobrej roboty - naprawdę ciekawy odcinek kursu. Trzy dni podchodziłem do przeczytania tej lekcji, dwa razy mnie uśpił, a dzisiaj- to ja jestem górą i tekst zaliczony 😉

  • 2 tygodnie później...

Chyba najlepszy darmowy kurs. Swoje arduino będę miał dopiero jutro, ale póki co wszystko przeczytane. Swoją drogą jestem trochę zielony w temacie elektroniki (z programowaniem już lepiej bo trochę języków znam).

I tu pytanie o podłączenie serwa. Rozumiem że jak arduino jest zasilane przez gniazdo (zasilacz/ bateria), to serwo podłączone pod Vin czerpie prąd z baterii, a nie z kontrolera? 😉

PiotrekR, tak dokładnie - zasilanie brane jest wtedy z napięcia wejściowego. Dlatego należy pamiętać o stabilizatorze, ponieważ 9V z baterii uszkodziłoby serwomechanizm.

  • Lubię! 1

Bądź aktywny - zaloguj się lub utwórz konto!

Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony

Utwórz konto w ~20 sekund!

Zarejestruj nowe konto, to proste!

Zarejestruj się »

Zaloguj się

Posiadasz własne konto? Użyj go!

Zaloguj się »
×
×
  • Utwórz nowe...