Welcome to Week 9
Output Devices
Hey! now we will learn about Output Devices,for this week we have the following group and individual assignments:
- Group assignment:
- Individual assignment:
o Measure the power consumption of an output device. - ✅ Done
o Document your work on the group work page and reflect on your individual page what you learned. - ✅ Done
o Add an output device to a microcontroller board you've designed and program it to do something. - ✅ Done
GROUP ASSIGNMENT
Output devices are components that enable a system to interact with the external environment. Examples include engines, screens, LEDs, and more.
First of all, as a group work, we will use test equipment to measure the voltage and consumption of the electronic component that we will use for this part. This component is a dc power supply UTP1305 of the brand "UNI-T" and you can get it here .
Power is determined by multiplying the voltage across a component by the current passing through it:
P = I * V
I used this formula to calculate the power flowing through a small DC electric motor, I connect the motor to a source, in the image we can see that the voltage is: 4.8 Volts, and the current is 0.02A.
In order to have a more exact measurement of how much voltage was reaching the motor, I placed my multimeter and it read a voltage of 5.24v.
Now let's do tests with free movement and placing resistance on the motor.
In the video, I = 0.07 is observed when the motor rotates freely and a maximum measurement of I = 0.16 when the motor shaft was prevented from moving.
Thus, we can calculate the power of the motor that consumes 5.24 x 0.07 = 0.37 watts in free movement and 0.83 watts with resistance of movement.
Ready! We learned about the power consumption of output devices……
INDIVIDUAL ASSIGNMENT
It is time to experiment a little with these devices and the development board, for which we will do two experiments with the output devices that I will show you in the following image.
Let's hit it! first let's start with the servomotor….
We upload a programming so you can make progressive turnles.
The code is one of test for servomotors that is within the examples and tests of arduino but I still leave them here. And you can get the librarys for this code here.
1 #include <Servo.h>
2 #include <Servo.pio.h>
3 Servo myServo;
4
5 const int servoPin = D1;
6
7 void setup(){
8 myServo.attach(servoPin);
9 }
10
11 void loop(){
12 for (int angle = 0; angle <= 180; angle += 1){
13 myServo.write(angle);
14 delay(15);
15 }
16
17 delay(1000);
18
19 for (int angle = 180; angle >= 0; angle -= 1){
20 myServo.write(angle);
21 delay(15);
22 }
23 delay(1000);
24 }
Let's see how this program works…
Ok, now we continue with the OLED..
We upload a program so that it shows us a phrase on the OLED
The code is a test for OLED screens of own elaboration I leave the code here so that they can copy it. The libraries for this project can be found here and here.
1 #include <Wire.h>
2 #include <Adafruit_GFX.h>
3 #include <Adafruit_SSD1306.h>
4 #define SCREEN_WIDTH 128
5 define SCREEN_HEIGHT 64
6
7 Adafruit_SSD1306 display (SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);
8
9 void setup() {
10 Wire.begin();
11 if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) {
12 Serial.println(F("Error al iniciar la pantalla OLED"));
13 }
14 for(;;);
15
16 display.clearDisplay();
17 display.setTextSize(1);
18 display.setTextColor(SSD1306_WHITE);
19 display.setCursor(0,0);
20 display.println("¡Hagamos la imaginacion una realidad!");
21 display.display();
22 }
Let's see how this program works…
Learning
Well we finished the assignment and we definitely did not take away important learnings:
o Power consumption becomes greater when the actuator is under some pressure or resistance.
o There are libraries which can facilitate the programming of output devices, however not all libraries will be compatible with the XIAO RP2040.
Ready! That was all for today's task, here I leave the files so you can experiment, see you next week with something crazy that comes to mind