Home

Output Devices

Making data visible in interesting ways.

Assignment:

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

Group Assignment:

Measure the power consumption of an output device.

Overview of the Week

This week, I set out to build an output device: something to make data visible in a manner easily perceptible to an understandable by humans.

I'm not yet 100% sure what my output device(s) will be for my final project, but I loved the screens Neil showed us in class. Because they seem so versatile, I figured I'd start there!

Enter: the OLED screen.

Troubleshooting Suggestions

The board accepts the code, but nothing happens.

Important note!! For reasons unknown to me or any of the TAs, the address for our OLEDs in the lab ended up being was 0x3C instead of 0x3D, even though the instructions in the sketch indicate that it should be 3D for the size we were using. 

So if you can't get your OLED to work (it accepts the program without throwing an error, but nothing happens), try changing the address to 3C instead.

I can't find an "output" pin available on my board.

You don't need an "output pin" that's titled as such. Just SDA (serial data) and SCL (serial clock). Both the SAMD21 and ESP32 board offer these.

What if I want to attach more than one device to SDA and/or SCL at the same time?

You don't need an "output pin" that's titled as such. Just SDA (serial data) and SCL (serial clock). Both the SAMD21 and ESP32 board offer these.

Resources:

  • Useful guide: https://randomnerdtutorials.com/guide-for-oled-display-with-arduino/
  • Scanner to determine I2C device address: https://playground.arduino.cc/Main/I2cScanner/
  • Bitmap converter: https://javl.github.io/image2cpp/