#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128 // OLED display width, in pixels
#define SCREEN_HEIGHT 64 // OLED display height, in pixels
#define OLED_RESET -1 // Reset pin # (or -1 if sharing Arduino reset pin)
#define SCREEN_ADDRESS 0x3C ///< See datasheet for Address; 0x3D for 128x64, 0x3C for 128x32
Adafruit_SSD1306 display(SCREEN_WIDTH, SCREEN_HEIGHT, &Wire, OLED_RESET);
int x_position=64;
int i;
void setup() {
Serial.begin(9600);
// initialize the OLED display
display.begin(SSD1306_SWITCHCAPVCC, SCREEN_ADDRESS);
display.clearDisplay();
//DRAWING SHAPES///
//ALT SQUARE
display.drawRect(8,10,25,15,WHITE); //
//ALT TEXT
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(8,0);
display.print("ALT");
//UNIT
display.setTextSize(2);
display.setTextColor(WHITE);
display.setCursor(35,8);
display.print("m");
//SECOND SQUARE
display.drawRect(76,10,25,15,WHITE);
//HDG TEXT
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(76,0);
display.print("HDG");
//UNIT
display.setTextSize(1.9);
display.setTextColor(WHITE);
display.setCursor(103,14);
display.print("deg");
//LINES
//display.drawLine(64,36,64,39,WHITE); display.drawLine(96,36,96,39,WHITE); display.drawLine(124,36,124,39,WHITE);
//LINE NUMBERS//
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(6,31);
display.print("-""10");
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(35,31);
display.print("-" "5");
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(62,31);
display.print('0');
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(84,31);
//showing +5
display.print("+""5");
//display.drawLine(82,33,85,33,WHITE);
//display.drawLine(84,32,84,35,WHITE);
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(110,31);
display.print("+""10");
display.drawRect(10,40,118,8,WHITE); //TOP BAR
display.fillCircle(4,44,2,WHITE); //TOP BAR CIRCLE
display.drawRect(10,55,118,8,WHITE); //BOTTOM BAR
display.fillCircle(4,58,2,WHITE);
}
void loop(){
int x_position=60;
int num[]={1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,23,23,23,23,24,354,23,23234,24,23,421,23,23,24,244,34};
for ( byte i=0;i < (sizeof(num) / sizeof(num[0])); i++) {
//
if (i<=12){
x_position=x_position+4;
////////////////////////////////////////////////////////////////////////////////////////////////////
//ALT VALUE
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(12,14);
display.print(x_position);
//HDG VALUE
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(80,14);
display.print(x_position);
display.drawRect(x_position,41,10,6,WHITE); //TOP SCROLER
display.drawRect(x_position,56,10,6,WHITE); // BOTTOM SCROLER
display.display();
delay(200); //we need a display.display and a delay before we blank anything out.
display.fillRect(12,14,18,10,BLACK); //ALT blank
display.fillRect(80,14,18,10,BLACK); //HDG blank
display.drawRect(x_position,41,10,6,BLACK); //TOP scroller blank
display.drawRect(x_position,56,10,6,BLACK); //bOTTOM scroller blank
}
else if (i>=5){
x_position=x_position-4;
//DISPLAY ALT VALUE
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(12,14);
display.print(x_position);
// DISPLAY HDG VALUE
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(80,14);
display.print(x_position);
//DISPLAY SCROLLER MOVING IN RELATION TO THE ALT/DDG CHANGE
display.drawRect(x_position,41,10,6,WHITE); //TOP SCROLER
display.drawRect(x_position,56,10,6,WHITE); // BOTTOM SCROLER
display.display();
delay(200); //we need a display.display and a delay before we blank anything out.
display.fillRect(12,14,18,10,BLACK); //ALT blink
display.fillRect(80,14,18,10,BLACK); //HDG blink
display.drawRect(x_position,41,10,6,BLACK); //TOP scroller blink
display.drawRect(x_position,56,10,6,BLACK); //bOTTOM scroller blink
}
}
}