10. Output Devices¶
Hero Shot !
 
  
Group Assignment¶
For more details, visit our lab site:
Tech Works – Output Devices
My Contribution:
I created a Tinkercad simulation to demonstrate how to measure voltage and current (amperage) for two different motors.

Learning Outcomes:
- Gained an understanding of how different motors behave under the same voltage by comparing their current draw and power consumption.
- Learned how to calculate power usage using the formula P = V × I, enabling evaluation of energy efficiency between output devices.
- Developed skills in using Tinkercad to simulate motor circuits for validation before physical implementation.
- Practiced proper wiring techniques for DC motors with a 12V power supply, ensuring safe and accurate measurements.
Fixing the Board¶
I re-cut the last week’s board due to issues with the traces. I adjusted the trace thickness to 0.4 mm instead of 2.5 mm, and I also used sandpaper to clean them after the cutting process.
Previous board:
 
  
New boad:

  
I encountered an issue while cutting the board’s outline. By mistake, I changed the CNC tool’s X and Y zero positions, which caused a trace at the upper-right edge to get separated. I later fixed this by using a very tiny wire to reconnect the two cut traces.
  
XIAO RP2040 with Servo Motor¶
Wiring
To control a servo motor using the XIAO RP2040, connect the signal pin of the servo motor to one of the PWM-capable pins on the XIAO RP2040. In my setup, the signal pin is connected to pin P0.
 
  
Programming
Below you can find the code I used to program the XIAO RP2040 to control the servo.
#include "Servo.h"
Servo myservo;
#define servoPin 0
void setup() {
  myservo.attach(servoPin);
}
void loop() {
  // Sweep from 0 to 180 degrees:
  for (int angle = 0; angle <= 180; angle += 1) {
    myservo.write(angle);
    delay(15);
  }
  // And back from 180 to 0 degrees:
  for (int angle = 180; angle >= 0; angle -= 1) {
    myservo.write(angle);
    delay(15);
  }
  delay(1000);
}
Files