Skip to content

10-Output devices

Assignments

Group assignment:

  • Measure the power consumption of an output device.
  • Document your work on the group work page and reflect on your individual page what you learned.

Individual assignment:

  • Add an output device to a microcontroller board you’ve designed and program it to do something.

Learning outcomes - Demonstrate workflows used in controlling an output

The road map i made for this week can be accesed here

Group Assignment

You can access our group assignment here

Reflection

Individual Assignments

step1

This was the Scematic for my first board

Oled

While working with the oled, since I needed to use the esp32 library for the xaio board, heres how I downloaded it.

Firstly, go to tools- boards- Board manager

step

It should bring you too this. Then type esp32 and install it

install

Once it is installed, to access it you need to go back to tools- boards- esp32. Then look for the esp32 microcontroller you’ll be using.

xaio

This is the code I used while testing it with an an arduino and the xaio

/*
 Light meter
 Oled interfacing with Seeeduino XIAO
 Download Libraries:
 https://www.electroniclinic.com/arduino-libraries-download-and-projects-they-are-used-in-project-codes/

 */
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 32 // OLED display height, in pixels

// Declaration for an SSD1306 display connected to I2C (SDA, SCL pins)
#define OLED_RESET     -1 // Reset pin # (or -1 if sharing Arduino reset pin)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);


// int LDR = A0; 
// int LDR_DATA; 

// int F_value; // LDR sensor final value

void setup() {

  Serial.begin(57600);
  // pinMode(LDR, INPUT); 
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  delay(2000);
  display.clearDisplay();
  display.setTextColor(WHITE);

}

void loop() {


//  F_value = readSensor();

  display.clearDisplay();

  // display R G B Values
  display.setTextSize(2);
  display.setCursor(0,0);
  display.print("L Meter:");


  // display.setTextSize(3);
  // display.setCursor(0, 28);
  // display.print(F_value);

  display.setTextSize(1);
  display.setCursor(0, 56);
  display.print("www.electroniclinic.com");

display.display(); 
}


// int readSensor()
// {
//   LDR_DATA = analogRead(LDR);
//   LDR_DATA = map(LDR_DATA,0,1023,0,100);
//   return(LDR_DATA);
//   delay(1000);  
// }

code uploaded

Afterwards, It worked with bothe the arduino and xaio, but it didnt work with my microcontroller, so I decided to make it again

working

Errors

1- The first error I faced was checking the power with a multimeter. The first few times the connection wa sjust not done right, but afterwards, even if i got the connection correct, it turned out that it just short circuited, so i needed to make a new microcontroller.

connection

2- During the connection process, i also, like i mentioned made quite a few wrong connections, so i burned up the oled.It didn’t exactly burn, it just heated up but i felt liek i should mention it in my errors.

3-


Last update: April 29, 2025