Ispis položaja senzora na OLED ekran

Zadatak

Na Arduino MKR1000 shield spojite senzor položaja (akcelerometar) i easyC OLED ekran. Izradite program kojim se na easyC OLED ekranu ispisuju izmjerene vrijednosti položaja akcelerometra (x, y i z os).

Kako bi uspješno napravili program, potrebno je u Library Manager-u (Sketch -> Include Library -> Manage Libraries) instalirati dvije biblioteke:

  • Adafruit_GFX.h
  • Adafruit_SSD1306.h

Prikaz spajanja

Senzor položaja spojite na shield tako da os X spojite na izvod A0, os Y na izvod A1 i os Z na izvod A2.
EasyC OLED ekran spojite na I2C priključak.

Arduino kod
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>

#define SCREEN_WIDTH 128 // sirina OLED ekrana u pikselima
#define SCREEN_HEIGHT 64 // visina OLED ekrana u pikselima

// Deklariranje SSD1306 ekrana spojenog na I2C sabirnicu (SDA i SCL izvodi)
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, -1);

int x, y, z;

void setup() {
  Serial.begin(115200);

  if(!display.begin(SSD1306_SWITCHCAPVCC, 0x3C)) { // Adresa OLED ekrana (0x3C)
    Serial.println(F("SSD1306 allocation failed"));
    for(;;);
  }
  delay(2000);
  display.clearDisplay();

  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(0, 10);
  // Display static text
  display.println("Hello, world!");
  display.display(); 
  delay(2000);
}

void loop() {

  x = analogRead(A0); // Očitaj vrijednost osi X
  y = analogRead(A1); // Očitaj vrijednost osi Y
  z = analogRead(A2); // Očitaj vrijednost osi Z

  display.clearDisplay();

  display.setTextSize(1);
  display.setTextColor(WHITE);
  
  display.setCursor(0, 10);
  display.print("X: ");
  display.println(x);

  display.setCursor(0, 20);
  display.print("Y: ");
  display.println(y);

  display.setCursor(0, 30);
  display.print("Z: ");
  display.println(z);

  display.display();
  delay(500);
  
}