Summary of "Embedded Systems and Design & Development - Feb 19, 2026 | Afternoon | VisionAstraa EV Academy"
Context
Hands-on tutorial/demo from VisionAstraa EV Academy using an Arduino Uno (ATmega328) and Tinkercad to develop and integrate motor control and temperature sensing for a basic battery thermal management system (BTMS).
Key technical concepts & components
- Microcontroller
- Arduino Uno (ATmega328). Six PWM pins available; the example uses PWM pin 3.
- Power switch
- N‑channel MOSFET (NMOS). MOSFET terminals: gate (control), drain and source (power).
- Important: gate drive must be referenced to the MOSFET source and share the microcontroller ground.
- PWM motor control
- PWM duty cycle (0–255 value in Arduino
analogWrite) controls average voltage across a DC motor and thus speed. - PWM produces ripple; Tinkercad simulation shows small voltage variation.
- PWM duty cycle (0–255 value in Arduino
- Temperature sensing
- Analog temperature sensor connected to ADC input A0. Program converts ADC reading → voltage → temperature using a characterized formula.
- Indicators and control outputs
- Built-in LED used as a status indicator (on when temperature is within the specified range).
- PWM output used to drive the coolant circulation motor.
- Debugging tools
- Serial monitor (baud 9600) for printing temperature/values.
- Oscilloscope and multimeter for probing signals.
- Software breakpoints to inspect registers.
- Simulation vs. high-fidelity modeling
- Tinkercad: recommended for beginner-level code/circuit logic checks.
- For accurate electrical behavior use SPICE tools (LTSpice, QSpice, PSpice).
- MATLAB/Simulink can be used but is less suited for detailed circuit fidelity.
Safety note: Always tie MOSFET source to the microcontroller ground so the gate voltage reference is correct — otherwise the MOSFET will not behave as expected.
Tutorial — step-by-step points demonstrated
- Wiring sanity
- Tie grounds between the MCU and power switches; otherwise the MOSFET gate reference is wrong.
- Basic PWM test
- Run Arduino code producing PWM on pin 3.
- Observe motor speed and multimeter reading while varying duty cycle (0–255).
- Temperature read test
- Load code into Tinkercad, move the temperature slider, verify ADC value, converted voltage, and temperature on the serial monitor.
- LED status test
- Turn built‑in LED on when sensed temperature is within a safe range (example: 15–35 °C).
- Integration
- Combine temperature sensing and motor control so motor (coolant circulation) speed is adjusted by temperature bands (discrete control via nested if/else).
- Example discrete mapping:
- < 20 °C: motor off (no coolant circulation)
- 20–25 °C: motor at ~1/4 speed
- 25–30 °C: higher speed
-
35 °C: full speed (maximum coolant circulation)
- Safety / additional features (design guidance)
- Battery isolation: open MOSFET switch (disconnect charger/battery) if temperature exceeds a critical threshold (example: 80–90 °C).
- Heater: turn on heater if temp < 5 °C until the temperature reaches a safe minimum (e.g., 15 °C).
- Development approach: prefer modular, top-down requirement decomposition and bottom-up implementation/testing — break system into tasks (read temp, control motor, isolate battery), test separately, then integrate.
Code / resources shared
- Arduino sketches shared via qext.in (downloadable). Session used short retrieval codes (examples in subtitles: “VCk”, “BP GT”, and others) for participants to fetch the example sketches.
- Advice on program structure:
- Set
pinModefor PWM and built‑in LED as outputs; A0 as input. Serial.begin(9600)for debug prints.- Remove duplicate lines noted in circulated code.
- Set
Implementation tips & recommendations
- Use Tinkercad for quick logic and code testing; do not expect perfect electrical behavior — it is for learning/debugging logic.
- For realistic electrical performance, ripple, and analog characteristics, simulate in SPICE (LTSpice, QSpice, PSpice).
- Use serial prints and instrumentation (oscilloscope, DMM) to debug; use software breakpoints to inspect registers during execution.
- Consider using
switch/caseconstructs instead of many nestedif/elsefor clearer multi-condition logic. - For smoother/continuous coolant control, consider moving from discrete bands to a control algorithm (e.g., a P-controller) rather than only on/off or stepped PWM.
Main speakers / sources referenced
- Trainer/instructor from VisionAstraa EV Academy (led demo and code walkthroughs).
- Hardware/software referenced: Arduino Uno (ATmega328), NMOS MOSFET, DC motor, analog temperature sensor, Tinkercad (simulation), qext.in (code sharing), and SPICE tools (LTSpice, QSpice, PSpice).
Category
Technology
Share this summary
Is the summary off?
If you think the summary is inaccurate, you can reprocess it with the latest model.
Preparing reprocess...