Author(s): James Fiore
This text introduces embedded controller systems using the inexpensive and widely available Arduino hardware platform and the C programming language. It is intended for students in Electrical Engineering and Electrical Engineering Technology programs at the Associate and Baccalaureate levels. Unlike many Arduino texts, this text does not rely solely on the Arduino libraries. Rather, it “gets under the hood” and directly accesses I/O ports, pins and DDR, as would be expected in a traditional college level microprocessor/microcontroller course.
The companion laboratory manual introduces embedded controller systems using the Arduino hardware platform and the C programming language. Exercises include usage of seven-segment displays, switches and analog input devices; a reaction timer; PWM; an event counter and an arbitrary waveform generator.
Textbook:
Embedded Controllers using C and Arduino
(PDF 2MB)
Embedded Controllers using C and Arduino
(ODT 3MB)
Laboratory Manual:
1. Course Introduction
2. C Memory Organization
3. C Language Basics
4. C Language Basics II
5. C Storage Types and Scope
6. C Arrays and Strings
7. C Conditionals and Looping
8. C Pointers
9. C Look-Up Tables
10. C Structures
11. C Linked Lists*
12. C Memory*
13. C File I/O*
14. C Command Line Arguments*
15. Embedded Programming
16. Hardware Architecture
17. AVR ATmega 328P Overview**
18. Bits & Pieces: includes and defines
19. Bits & Pieces: Digital Output Circuitry
20. Bits & Pieces: Digital Input Circuitry
21. Bits & Pieces: pinMode
22. Bits & Pieces: digitalWrite
23. Bits & Pieces: delay
24. Bits & Pieces: digitalRead
25. Bits & Pieces: Analog Input Circuitry
26. Bits & Pieces: analogRead
27. Bits & Pieces: analogWrite
28. Bits & Pieces: Timer/Counters
29. Bits & Pieces: Interrupts
Appendices
Index
* Included for more complete language coverage but seldom used for small to medium scale embedded work.
** Including modest comic relief for film noir buffs.