This week's assignment is to program a microcontroller display to show the time and the state of a sensor attached to your controller. 

Because I moved to Shanghai this week, I did not order SSD1306 screens online, I went to the electronics market in Shanghai to try to find a similar one. Under the recommendation of the merchant, I only bought the ST7920 HF12864-16 LCD display. Unfortunately, I did not find a fully compliant datasheet. I tried to use the U8g2 library and control it in Arduino, but it didn’t succeed.Only the screen has light but no fonts appear. 


For the HID part, I try to use a pushbutton to replace the up arrow key.

Arduino code as follows:

* try to replace UP_ARROW key with pushbutton

reference link:

#include <Keyboard.h>
// pushbutton on pin 2 is connected to ground:
const int buttonPin = 2;
// debounce delay for pushbutton:
const int debounceDelay = 4;
// previous state of the button:
int lastButtonState = HIGH;

void setup() {
  // set button input mode:
  pinMode(buttonPin, INPUT_PULLUP);

void loop() {
  // read button:
  int buttonState = digitalRead(buttonPin);
  // if it has changed:
  if (buttonState != lastButtonState) {
    // wait until button state stabilizes:
    // if it's low:
    if (buttonState == LOW) {
      // send keystroke:

    // save current state for next time:
    lastButtonState = buttonState;