26 sij Upravljanje kružnicom
Zadatak
Spojite joystick i easyC OLED ekran na Arduino MKR1000 shield. Izradite program kojim se na easyC OLED ekranu prikazuje kružnica ovisno o položaju (vrijednostima) x i y osi na joysticku.
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
Joystick spojite na shield tako da os X spojite na izvod A0, a os Y na izvod A1.
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; 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 x osi y = analogRead(A1); // Očitaj vrijednost y osi display.clearDisplay(); if(x > 600){ display.drawCircle(64, 12, 10, WHITE); // Crtanje kružnice u gornjem dijelu ekrana display.display(); } if(x < 400){ display.drawCircle(64, 52, 10, WHITE); // Crtanje kružnice u donjem dijelu ekrana display.display(); } if(y > 600){ display.drawCircle(44, 32, 10, WHITE); // Crtanje kružnice u lijevom dijelu ekrana display.display(); } if(y < 400){ display.drawCircle(84, 32, 10, WHITE); // Crtanje kružnice u desnom dijelu ekrana display.display(); } if(x < 600 && x > 400 && y < 600 && y > 400){ display.drawCircle(64, 32, 10, WHITE); // Crtanje kružnice u sredini ekrana display.display(); } delay(100); }