Rapid Prototyping of Digital Sensor Systems
Overall Course Objectives
The course introduces the student to the microcontroller with the aim of constructing prototypes of digital measuring systems. An Arduino Uno R3 microcontroller is used to digitize sensor signals, to register user input, and to control motors, displays, and other devices.
See course description in Danish
Learning Objectives
- explain the architecture of the ATmega 328p microcontroller and the purpose of the ALU, registers, program counter as well as the types and use of memories included in the ATmega 328p.
- explain the principles of the binary and hexadecimal number systems and explain the binary representation of the data variable types available in standard C and Arduino C.
- explain and be able to use all data variable types available in standard C and Arduino C and be able to use type casting.
- write programs using Arduino C and standard C, using conditionals (if, case/switch,?: operator), loop structures (for, while, do while), user-defined functions and pointers.
- write programs that can perform simple mathematical calculations using the built-in math functions.
- clear and set bits in registers using bitwise operators in standard C.
- program the Arduino Uno R3 to interface with LCD displays, LEDs, pushbuttons and handle issues like switch bouncing and pull-up/pull-down resistors.
- program the Arduino Uno R3 to communicate with serial peripherals using the I2C protocol.
- explain the principle of the succesive approximation analog-to-digital converter (ADC).
- explain the performance parameters of the ADC and program it to digitize low frequency sensor signals.
- explain the principle of pulse-width modulation (pwm) and use it to control LED light intensity and to control a DC motor.
- comply with the rules for participation in laboratory exercises, including arriving on time, showing consideration for fellow students, avoiding destroying equipment and components and cleaning up the workplace after the exercise.
Course Content
Sensor Technologies: Thermistors, pressure sensors and light dependent resistors.
Digital systems: Arduino Uno R3 system, ATmega 328P microcontroller, push buttons, LCD displays, LEDs, RGB LED, DC motors, digitalization of low frequency signals.
Programming in standard C: Type declaration, mathematical operations, user-defined functions, for and while loops, if blocks, bit manipulation with Arduino C and with plain C. Reading from and writing to the registers of the microcontroller. Introduction to pointers.
Recommended prerequisites
02002/02003, An introductory course in programming. The language is not significant.
Teaching Method
Lectures, exercises, lab work, self-assessment quizzes.
Faculty
Remarks
A mandatory core course in the undergraduate program in Biomedical Engineering.
Participants must buy and bring their own Arduino Starter kit. It is recommended to buy “Elegoo – The most complete starter kit for UNO” several months before semester start. An Arduino Uno R4 cannot be used in the course, as it is completely different from the microcontroller used in the lectures.
Limited number of seats
Minimum: 10, Maximum: 120.
Please be aware that this course has a minimum requirement for the number of participants needed, in order for it to be held. If these requirements are not met, then the course will not be held. Furthermore, there is a limited number of seats available. If there are too many applicants, a pool will be created for the remainder of the qualified applicants, and they will be selected at random. You will be informed 8 days before the start of the course, whether you have been allocated a spot.