Helion


Szczegóły ebooka

Wprowadzenie do mikrokontrolerów AVR. Od elektroniki do programowania

Wprowadzenie do mikrokontrolerów AVR. Od elektroniki do programowania


Interesujesz się elektroniką? Marzysz o konstruowaniu zaawansowanych urządzeń, w których migają wyświetlacze, furkoczą serwomechanizmy i silniki krokowe? Dopiero zaczynasz przygodę w tej dziedzinie, a może jesteś weteranem, który chce poszerzyć swoją wiedzę? Ta książka jest właśnie dla Ciebie! Dla kogoś, kto chce się rozwijać, kto zamierza od podstaw, gruntownie poznać i opanować jedną z najważniejszych umiejętności XXI wieku, jaką jest programowanie mikrokontrolerów. Dziś niemal wszystkie urządzenia bazują na układach programowalnych. Należą do nich 8-bitowe mikrokontrolery AVR, które w ostatnich latach zyskały sporą popularność. To o nich opowiadamy w tej książce.

Znajdziesz tu między innymi:

  • Opis podstawowych elementów elektronicznych i ich oznaczeń
  • Porady, jak czytać noty katalogowe i schematy elektroniczne, a także jak rozwiązywać problemy
  • Wskazówki, jak poprawnie wykonywać pomiary multimetrem i oszacować błędy pomiarowe
  • Instrukcje, jak lutować i rozlutowywać elementy, wykonać zasilanie, podłączyć programator i taktować mikrokontroler
  • Charakterystykę środowisk programistycznych
  • Omówienie modułów mikrokontrolera (rejestry, liczniki, magistrale komunikacyjne I2C, SPI, USART, przetwornik analogowo-cyfrowy ADC, obsługa pamięci EEPROM), a także magistrali 1-Wire
  • Podstawy programowania mikrokontrolerów (przesunięcia bitowe, system heksadecymalny, typy danych, kod uzupełnień do dwójki itp.)
  • Kody źródłowe w języku C dla mikrokontrolerów ATmega8/16/32, ATmega48/88/168/328, a czasami nawet dla ATtiny13
  • Podpowiedzi, jak szukać błędów w programie (debugowanie) oraz omówienie komunikatów o błędach
  • 14 gotowych zastosowań wraz z pełnymi kodami źródłowymi (wyświetlacze LCD, 7-segmentowe, silniki krokowe, serwomechanizmy, czujniki gazów, temperatury i wilgotności, zegary czasu rzeczywistego RTC)
  • Techniczny słowniczek angielsko-polski

Zachęcamy również do odwiedzenia prowadzonego przez autorów kanału naukowego Sala Science na platformie YouTube!

Słowo wstępne (9)

1. Wprowadzenie (13)

    • 1.1. Czym są mikrokontrolery AVR? (13)
    • 1.2. Jak to wszystko działa? (14)
    • 1.3. Bezpieczeństwo (16)
    • 1.4. Często zadawane pytania (22)

2. Podstawy elektroniki (26)

  • 2.1. Prawo Ohma (26)
  • 2.2. Pierwsze prawo Kirchhoffa (27)
  • 2.3. Moc (28)
  • 2.4. Elementy elektroniczne (30)
    • 2.4.1. Rezystory (30)
    • 2.4.2. Potencjometry (38)
    • 2.4.3. Elementy indukcyjne (39)
    • 2.4.4. Kondensatory (43)
    • 2.4.5. Diody (57)
    • 2.4.6. Diody świecące (LED) (61)
    • 2.4.7. Tranzystory (64)
    • 2.4.8. Układy scalone (69)
    • 2.4.9. Przekaźniki (74)
    • 2.4.10. Termistory (77)
    • 2.4.11. Silniki krokowe (80)
    • 2.4.12. Przełączniki (88)
    • 2.4.13. Prototypowe płytki uniwersalne (91)
    • 2.4.14. Prototypowe płytki stykowe (92)
    • 2.4.15. Obudowy elementów elektronicznych (94)
  • 2.5. Jak czytać schematy elektroniczne (96)
  • 2.6. Jak czytać noty katalogowe (100)
  • 2.7. Dobór elementów elektronicznych (102)
  • 2.8. Lutowanie i rozlutowywanie (108)
  • 2.9. Podstawowe pomiary multimetrem (117)
    • 2.9.1. Zakres pomiarowy (118)
    • 2.9.2. Podłączenie przewodów (119)
    • 2.9.3. Napięcie (121)
    • 2.9.4. Natężenie (122)
    • 2.9.5. Rezystancja, pojemność, indukcyjność (122)
    • 2.9.6. Pomiar temperatury za pomocą termopary (123)
    • 2.9.7. Pomiar ciągłości obwodu (124)
    • 2.9.8. Odczytywanie wartości (125)
    • 2.9.9. Błędy pomiarowe (129)
  • 2.10. Analizator stanów logicznych (132)
  • 2.11. Oprogramowanie wspomagające projektowanie (133)

3. Elektronika mikrokontrolerów (139)

  • 3.1. Poziomy napięć i wydajność prądowa (139)
  • 3.2. Taktowanie (140)
  • 3.3. Zasilanie (143)
  • 3.4. Podłączenie programatora i zasilania (152)
  • 3.5. Reset (155)
  • 3.6. Płytka testowa (155)
  • 3.7. Porady praktyczne (156)

4. Programowanie (162)

  • 4.1. Środowisko programistyczne (162)
    • 4.1.1. WinAVR i Makefile (163)
    • 4.1.2. Kompilator avr-gcc (166)
    • 4.1.3. Edytory kodu (172)
    • 4.1.4. Atmel Studio (dawniej AVR Studio) (173)
    • 4.1.5. Biblioteki avr-libc (174)
  • 4.2. Programatory (175)
  • 4.3. AVRDUDE (177)
  • 4.4. JTAG (180)
  • 4.5. Fusebity i lockbity (181)
  • 4.6. Typy danych (186)
    • 4.6.1. Typy całkowite (187)
    • 4.6.2. Typy zmiennoprzecinkowe float oraz double (189)
    • 4.6.3. Łańcuchy (strings) (190)
    • 4.6.4. Konwersja typów (194)
  • 4.7. Kod uzupełnień do dwóch (199)
  • 4.8. Obszary pamięci w mikrokontrolerach (201)
    • 4.8.1. Pamięć programu (flash) (202)
    • 4.8.2. Pamięć danych (203)
    • 4.8.3. EEPROM (208)
  • 4.9. System binarny (208)
  • 4.10. System heksadecymalny (209)
  • 4.11. Przesunięcia bitowe (211)
  • 4.12. Operatory logiczne i bitowe. Maskowanie (213)
  • 4.13. Priorytet operatorów w języku C (216)
  • 4.14. Rejestry (218)
  • 4.15. Pierwszy program (226)
  • 4.16. Sterowanie portami wejścia-wyjścia I/O (233)
  • 4.17. Obsługa przycisków. Drgania styków (239)
  • 4.18. Opóźnienia (delay) (254)
  • 4.19. Tworzenie własnych bibliotek (256)
  • 4.20. Nazwy funkcji bibliotek i zmiennych (261)
  • 4.21. Przerwania (264)
  • 4.22. Liczniki (276)
    • 4.22.1. Tryb porównania (CTC) (279)
    • 4.22.2. Modulacja szerokości impulsu (PWM) (285)
    • 4.22.3. Taktowanie licznika źródłem zewnętrznym (294)
  • 4.23. Magistrale komunikacyjne (295)
    • 4.23.1. SPI (297)
    • 4.23.2. TWI/TWSI (I2C) (305)
    • 4.23.3. 1-Wire (314)
    • 4.23.4. USART (321)
  • 4.24. Obsługa pamięci EEPROM (341)
  • 4.25. Przetwornik ADC (346)
  • 4.26. Moduły nadzorujące (358)
  • 4.27. Pisanie programów i poszukiwanie błędów (364)

5. Przykłady zastosowań (376)

  • 5.1. Sterowanie diodami LED (376)
  • 5.2. Sterowanie brzęczykiem (380)
  • 5.3. Czujnik ruchu PIR (382)
  • 5.4. Silnik krokowy (386)
  • 5.5. Serwomechanizmy (392)
  • 5.6. Klawiatury (396)
  • 5.7. Wyświetlacz 7-segmentowy (400)
  • 5.8. Sterownik MAX7219 (matryce LED i wyświetlacze segmentowe) (412 )
  • 5.9. Wyświetlacz LCD (HD44780) (419)
  • 5.10. Czujnik temperatury DS18B20 (442)
  • 5.11. Czujnik temperatury i wilgotności DHT11 (451)
  • 5.12. Termistor jako czujnik temperatury (455)
  • 5.13. Czujniki gazów (461)
  • 5.14. Zegary czasu rzeczywistego DS1307, DS3231, PCF8563 (473)

A. Dodatek (479)

  • A.1. Przedrostki (479)
  • A.2. Konwersja jednostek (480)
  • A.3. Systemy liczbowe (481)
  • A.4. AVRDUDE (parametr -p) (482)
  • A.5. Wyznaczanie współczynników charakterystyki czujników (484)
  • A.6. Słowniczek angielsko-polski (486)

Skorowidz (494)