Activity 4.2.7 — Unit 4 Integration & Assessment
Learning Objectives
By the end of this lesson, students will be able to:
- Explain how sensors, logic circuits, and microcontrollers work together in complete systems
- Apply concepts from Units 1-3 to design integrated solutions
- Analyze real-world applications of digital electronics
- Demonstrate mastery through a comprehensive design problem
Vocabulary
Vocabulary (click to expand)
| Term | Definition |
|---|---|
| Integration | Combining multiple subsystems into a complete working system |
| Sensor Fusion | Combining data from multiple sensors |
| Voltage Divider | Circuit that divides voltage using resistors |
| H-Bridge | Circuit that controls DC motor direction |
| Closed-Loop Control | System that uses feedback to maintain desired state |
Part 1: Connecting the Dots
Throughout this course, you’ve learned building blocks of digital electronics. Now let’s see how they fit together into complete systems.
From Components to Systems
Unit 1: Foundations
- Basic circuit concepts
- Boolean logic and gates
Unit 2: Combinational Logic
- Designing with gates
- Multiplexers, decoders, adders
Unit 3: Sequential Logic
- Flip-flops and registers
- Counters and state machines
Unit 4: Integration
- Sensors (inputs)
- Microcontrollers (processing)
- Actuators (outputs)
- Complete systems
Key insight: Any complex digital system can be broken into these three parts: INPUTS (sensors) → PROCESSING (logic/code) → OUTPUTS (actuators)
How Each Unit Contributes
| Unit | Role in System |
|---|---|
| Unit 1 | Understanding voltage, current, power |
| Unit 2 | Signal processing, data encoding, selection |
| Unit 3 | Timing, memory, state management |
| Unit 4 | System integration, sensors, microcontrollers |
Part 2: Topic Review
Sensors: Digital vs Analog
Digital Sensors: Output HIGH or LOW (on/off)
- IR sensor (object detection)
- Pushbutton/switch
- Hall effect sensor (magnetic field)
Analog Sensors: Output continuous voltage
- Photoresistor (light level)
- Thermistor (temperature)
- Potentiometer (position)
- Force Sensitive Resistor (pressure)
Voltage Dividers
Many sensors are essentially variable resistors. A voltage divider converts resistance to voltage:
Vout = Vin × (R2 / (R1 + R2))
+5V
|
R1 (fixed, e.g., 10k)
|
+----> Vout to Arduino A0
|
R2 (sensor, varies)
|
GND
Motor Types and Drivers
| Motor Type | Control | Driver Needed |
|---|---|---|
| DC Motor | Speed, direction | H-Bridge (L293D) |
| Servo Motor | Position (angle) | Servo library |
| Stepper Motor | Precise steps | Stepper library or H-Bridge |
H-Bridge Logic (L293D):
| Input 1 | Input 2 | Motor |
|---|---|---|
| 0 | 0 | Off (coast) |
| 1 | 0 | Forward |
| 0 | 1 | Reverse |
| 1 | 1 | Off (brake) |
State Machines
Moore Machine: Outputs depend only on current state
- State diagram shows outputs in each state
Mealy Machine: Outputs depend on current state AND inputs
- More complex, can react to inputs faster
State Table Format:
| Current State | Inputs | Next State | Outputs |
|---|---|---|---|
| WAITING | vehicle=1 | COUNTING | red LED |
| COUNTING | coin=1 | GATE_OPEN | green LED |
Microcontroller Concepts
Arduino Digital I/O:
- pinMode(pin, INPUT/OUTPUT)
- digitalWrite(pin, HIGH/LOW)
- digitalRead(pin)
Arduino Analog I/O:
- analogRead(pin) → 0-1023
- analogWrite(pin, value) → PWM (0-255)
Timing:
- millis() returns milliseconds since startup
- Use for non-blocking delays
- Never use delay() in state machine code
PWM (Pulse Width Modulation)
PWM simulates analog output using digital signals:
- Duty cycle = time HIGH / total time
- 0% duty = always off (0V)
- 50% duty = half on (2.5V average)
- 100% duty = always on (5V)
Applications:
- LED brightness control
- Motor speed control
- Audio generation (tone)
Part 3: The Tollbooth — Full System Analysis
Let’s analyze a complete integrated system: the tollbooth from Lessons 4.1.3 and 4.2.4.
System Breakdown
INPUTS PROCESSING OUTPUTS
──────────────────────────────────────────────────────────────────
IR Sensor ──────────┐ ┌─────────────────┐ Servo Motor
(pin 2) │ │ State Machine │ ───────── (pin 9)
│ │ │
Coin Button ────────┼──────────→│ WAITING │ Red LED
(pin 3) │ │ COUNTING │ ───────── (pin 4)
│ │ GATE_OPEN │ Green LED
│ │ GATE_CLOSED │ ───────── (pin 5)
│ └─────────────────┘ Buzzer
│ │ (pin 6)
└────────────────────┘
Hardware/Software Split
What the Logic ICs Did (Unit 3):
- Store current state (flip-flops)
- Determine next state (combinational logic)
- Generate reset signals
What Arduino Does (Unit 4):
- Store current state (variable)
- Determine next state (if/else or switch/case)
- Control timing (millis())
- Control outputs (digitalWrite, servo)
Trade-offs
| Aspect | Discrete Logic | Arduino |
|---|---|---|
| Component count | Many ICs | One board |
| Design time | Complex | Simpler |
| Modification | Requires rewiring | Change code |
| Speed | Very fast | Limited by clock |
| Timing | External components | Programmable |
| Cost (small runs) | Higher | Lower |
Part 4: Real-World Applications
Digital electronics is everywhere. Here’s how the concepts apply:
Automation
- Warehouse robots: Sensors detect objects → microcontroller calculates path → motors move robot
- Automated checkout: Barcode scanner (digital input) → processor calculates price → display shows total
Robotics
- Line-following robot: IR sensors detect line → microcontroller adjusts motor speeds → robot follows line
- Robot arm: Potentiometers at joints → microcontroller reads positions → servo motors move to target angles
IoT (Internet of Things)
- Smart thermostat: Temperature sensor → microcontroller decides heating/cooling → wireless module sends data to phone
- Smart lighting: Light sensor detects day/night → microcontroller controls LEDs → scheduled on/off times
Key insight: The concepts you’ve learned form the foundation for careers in robotics, automation, embedded systems, and IoT.
Part 5: Comprehensive Design Problem
Scenario
A parking garage needs a vehicle counting system. The system should:
- Count vehicles as they enter (IR sensor)
- Display the current count (two 7-segment displays, 00-99)
- Show “FULL” when at 50 vehicles (both displays flash)
- Have a manual reset button
Design Requirements
- Use at least one logic IC (74LS90 or 74LS47)
- Use Arduino for main control
- Include proper state machine
- Document your design
Questions to Answer
- What sensors are needed? How do they connect to Arduino?
- What logic ICs are needed? What do they do?
- How do the displays connect? What decoder is needed?
- What is the state machine? Draw it.
- Write the Arduino code.
Show Solution
DESIGN SOLUTION:
1. Sensors:
- IR sensor on pin 2 (enter detection)
- Pushbutton on pin 3 (reset)
- Both use INPUT_PULLUP
2. Logic ICs:
- 74LS90 for decade counters (cascaded for 00-99)
- 74LS47 for BCD-to-7-segment decoding
3. Display Connection:
- 74LS90 #1 (ones): pins QA-QD to 74LS47 #1
- 74LS90 #2 (tens): pins QA-QD to 74LS47 #2
- Carry from #1 to clock of #2
4. State Machine:
- COUNTING: Normal operation, count vehicles
- FULL: At 50+ vehicles, flash displays
- Reset: Return to 00
5. Arduino Code (key sections):
// In loop():
if (vehicleDetected && !counting) {
// Debounce - wait between counts
}
// Check for FULL
if (totalCount >= 50) {
state = FULL;
}
// In FULL state - flash display
if (millis() - flashTimer > 500) {
toggleDisplays(); // Flash on/off
}
Key insight: The 74LS90 handles the actual counting
(checks for 50 via Arduino reading), Arduino handles
state logic and display enable/disable.
Part 6: Self-Assessment Checklist
Before the Engineering Showcase, make sure you can do these:
Concepts
- Explain how sensors convert physical quantities to electrical signals
- Describe the difference between digital and analog inputs
- Draw a block diagram of a complete digital system
- Explain what PWM is and why it’s useful
- Describe the difference between Moore and Mealy state machines
Skills
- Read analog sensors with analogRead()
- Use map() to convert sensor values to useful ranges
- Use millis() for non-blocking timing
- Write code using switch/case for state machines
- Use the Servo library to control a servo motor
- Debug using Serial.print()
Projects
- Built and tested the tollbooth project
- Created a working Christmas display project
- Documented all projects with code comments
Best Practices
- Comment code thoroughly
- Use functions to organize code
- Test components individually before integrating
- Keep backup copies of working code
Part 7: Preparation for Engineering Showcase
Your final project should be polished and ready to demonstrate.
Presentation Checklist
Project:
- Works reliably (runs without errors)
- Has clear purpose/mission
- Includes both hardware and software
Documentation:
- Code is commented
- Circuit diagram is accurate
- Block diagram shows system architecture
Demonstration:
- Can explain how it works
- Can show different features/modes
- Can answer questions about design choices
Common Issues and Fixes
| Issue | Fix |
|---|---|
| Arduino not responding | Check USB connection, select correct port |
| Sensors not working | Verify wiring, check pull-up/down resistors |
| Code not loading | Check for syntax errors, verify board selection |
| Unstable readings | Add smoothing (averaging), check power supply |
| Servo jittering | Check servo power (may need external supply) |
Key insight: Start your presentation with a 30-second explanation of what your project does, then demonstrate. Practice this before the showcase!
Summary
- Complete systems have three parts: INPUTS → PROCESSING → OUTPUTS
- Unit 1 provides foundation, Unit 2 handles combinational logic, Unit 3 handles sequential logic, Unit 4 integrates everything
- Sensors convert physical phenomena to electrical signals
- Microcontrollers provide programmable intelligence
- PWM enables analog control from digital pins
- State machines are the key to handling complex behavior
- The Engineering Showcase demonstrates your learning
Key Reminders
- Break problems into input/processing/output parts
- Test each component before integrating
- Use Serial.println() for debugging
- Keep backup copies of working code
- Comment your code for others (and future you!)
- Be ready to explain your project at the showcase
📝 Unit 4 Reflection
After completing this unit, answer these questions:
-
What was the most challenging concept in this unit? How did you overcome it?
-
Which project were you most proud of? What made it successful?
-
How has your understanding of “how computers work” changed?
-
What topic would you like to learn more about?
Custom activity — adapted from PLTW Digital Electronics