Table of contents
About the author (9)
Thanks (10)
Introduction (11)
- Download examples (12)
- What will I need? (12)
- Use of this book (12)
Chapter 1 Arduino programming (15)
- What is Arduino (15)
- Installation and development environment (17)
- Installation of the development environment (18)
- Blink (18)
- Trip on Arduino tile (21)
- Power supply (21)
- Power connectors (22)
- Analogue inputs (22)
- Digital connectors (22)
- Arduino tiles (23)
- Uno and derivatives (23)
- Large Arduino tiles (24)
- Small Arduino tiles (25)
- LilyPad and LilyPad USB (26)
- Arduino unofficial plates (27)
- Programming language (27)
- Modification of the Blink sketch (27)
- Variables (29)
- If (30)
- Loops (31)
- Functions (32)
- Digital inputs (33)
- Digital outputs (35)
- Serial port monitor (35)
- Boards and mats (37)
- Analogue inputs (38)
- Analogue outputs (40)
- Use of libraries (42)
- Data types supported by Arduino (43)
- Arduino commands (44)
- Summary (46)
Chapter 2 Under the hood (47)
- A short Arduino story (47)
- Anatomy of Arduino (47)
- AVR processors (48)
- ATmega328 (48)
- ATmega32u4 (50)
- ATmega2560 (50)
- AT91SAM3X8E (51)
- Arduino and Wiring (51)
- From sketch to Arduino (55)
- AVR Studio (56)
- Installation of the start-up programme (58)
- Installing the bootloader with AVR Studio and programmer (59)
- Installation of the start-up program using the integrated Arduino development environment and second Arduino board (60)
- Summary (62)
Chapter 3 Breaks and clocks (63)
- Hardware interruptions (63)
- Break pins (66)
- Breakdown modes (67)
- Activation of the built-in pull-up resistor (67)
- Interruption handling procedures (67)
- Fugitive variables (68)
- Summary of messages on interruption handling procedures (69)
- Switch interruption operation on and off (69)
- Clocks and interruptions (70)
- Summary (73)
Chapter 4 Arduino acceleration (75)
- How fast does your Arduino work? (75)
- Comparison of Arduino tiles (76)
- Acceleration of arithmetic operations (77)
- Do you really have to use float values? (77)
- View vs. calculate (78)
- Fast I/O (80)
- Basic code optimization (80)
- Bytes and bits (82)
- ATmega328 ports (82)
- Very fast digital outputs (84)
- High-speed digital inputs (84)
- Acceleration of analogue inputs (86)
- Summary (88)
Chapter 5 Arduino and low power consumption (89)
- Arduino tiles and power consumption (89)
- Current and batteries (91)
- Clock frequency reduction (92)
- Component deactivation (94)
- Sleep (95)
- Narcoleptic Library (95)
- Wake up via external interruptions (97)
- Current limitation by digital outputs (99)
- Summary (101)
Chapter 6 Memory (103)
- Arduino Memory (103)
- Use of minimum RAM (104)
- Use of appropriate data structures (105)
- Be careful when using recurrence (105)
- Flash storage of fixed strings (107)
- Common misconception (108)
- Free memory measurement (108)
- Use of minimum flash memory (108)
- Use the fixed ones (109)
- Remove unnecessary sketch elements (109)
- Skip the start-up program (109)
- Static and dynamic memory allocation (109)
- Chains (111)
- Char type element tables (111)
- Arduino StringObject Library (114)
- Use of EEPROM (115)
- Example of using an EEPROM (116)
- Using the avr/eeprom.h library (118)
- EEPROM memory limits (120)
- Use of Flash memory (120)
- Saving data on SD cards (121)
- Summary (122)
Chapter 7 Use of the I2C bus (123)
- Hardware layer (125)
- I2C bus protocol (126)
- Wire Library (126)
- I2C bus initiation (127)
- Data transmission by master device (127)
- Data reception by master device (127)
- Example of I2C bus operation (128)
- FM Radio TEA5767 (128)
- Data transfer between two Arduino tiles (130)
- LED boards (133)
- Real time clock DS1307 (134)
- Summary (135)
Chapter 8 Working with devices equipped with 1-Wire interface (137)
- Equipment supporting 1-Wire interface (137)
- Protocol 1-Wire (138)
- OneWire Library (139)
- OneWire Library Initialization (139)
- Bus Scanning (139)
- Using DS18B20 (141)
- Summary (143)
Chapter 9 Working with devices equipped with SPI interface (145)
- Bit handling (145)
- Binary and hexadecimal values (146)
- Bit masking (146)
- Bit shifting (148)
- SPI bus operating equipment (150)
- Protocol SPI (151)
- Library SPI (151)
- Example of communication via SPI interface (153)
- Summary (157)
Chapter 10 Serial data transmission via UART (159)
- Serial data transmission equipment (159)
- Protocol supporting serial data transmission (162)
- Commands to handle serial data transmission (162)
- SoftwareSerial Library (164)
- Examples of serial data transmission (165)
- Communication between the computer and Arduino via USB interface (165)
- Communication between two Arduino tiles (167)
- GPS module (169)
- Summary (172)
Chapter 11 USB interface support (173)
- Keyboard and mouse emulation (173)
- Keyboard emulation (174)
- Example of keyboard emulation (175)
- Mouse emulation (175)
- Example of mouse emulation (176)
- USB host programming (176)
- USB Host and Supported Library (177)
- USB host for Arduino Due (180)
- Summary (182)
Chapter 12 Network operation (183)
- Network equipment (183)
- Expansion board equipped with Ethernet controller (183)
- Arduino Ethernet and Arduino EtherTen (184)
- Arduino and Wi-Fi (185)
- Ethernet Library (185)
- Call establishment (185)
- Setting up a web server (188)
- Creating requests (189)
- Example of a sketch using the Ethernet library (189)
- Hardware web server (190)
- Downloading data in JSON format (194)
- WiFi Library (195)
- Connection establishment (195)
- Functions defined in the WiFi library (196)
- Example sketch using Wi-Fi (196)
- Summary (197)
Chapter 13 Digital signal processing (199)
- Introduction to digital signal processing (199)
- Averaging readings (200)
- Filtering introduction (202)
- Simple low-pass filter (203)
- Digital signal processing by Arduino Uno (204)
- Digital signal processing by Arduino Due (205)
- Filter code generation (208)
- Fourier Transformation (210)
- Spectrum analyser (212)
- Frequency measurement (214)
- Summary (214)
Chapter 14 Working with only one process (215)
- Scale change (215)
- Why are the plots superfluous (216)
- Setup and loop functions (216)
- Detect first and then react (216)
- A pause that does not block the microcontroller (217)
- Timer Library (218)
- Summary (220)
Chapter 15 Creating libraries (221)
- When should libraries be created? (221)
- Application of classes and methods (222)
- Sample library TEA5767 Radio (222)
- Specify the programming interface (223)
- Create header file (224)
- Create an implementation file (225)
- Create a keyword file (226)
- Create a folder with examples (226)
- Library testing (227)
- Publication of the library (227)
- Summary (228)
Appendix A. Components (229)
- Arduino tiles (229)
- Expansion plates (229)
- Modules (229)
- Distributors (230)
Scorch (233)
|