Ok so i got the OLED screen to work but i had to do it like this to make a count down timer to show up on the screen. is there a way to simplify it so its not such a long code?
#include <SPI.h>
#include <Wire.h>
#include <Adafruit_GFX.h>
#include <Adafruit_SSD1306.h>
#define SCREEN_WIDTH 128
#define SCREEN_HEIGHT 64
#define OLED_RESET 4
Adafruit_SSD1306 display(OLED_RESET);
int timer1 = 1000;
int timer2 = 5000;
int timer3 = 10000;
int timer4 = 3000;
const int buttonPin1 = 10;
int buttonState = 0, restarts =0;
//green wire 5vdc
//black wire com gnd
//white wire 12vdc
byte PrimerPin = 3; //orange wire
byte StarterPin = 4; //blue wire
byte OutputPin = 5; //brown/brown white
byte KillSwPin = 7; //gray wire
byte GenRunningPin = 10; //yellow wire
byte RunningLEDPin = 13; //onboard led
byte LEDPin = 11; //red wire
void setup() {
Serial.begin(9600);
display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
display.clearDisplay();
pinMode(PrimerPin, OUTPUT); //Fuel Pump Primer
pinMode(StarterPin, OUTPUT); //Starter Relay
pinMode(OutputPin, OUTPUT); //Output Power From Generator Control Relay
pinMode(KillSwPin, OUTPUT); //Kill Switch Relay
pinMode(GenRunningPin, INPUT); //Generator Running Relay
pinMode(LEDPin, OUTPUT); //On Board LED
pinMode(RunningLEDPin, OUTPUT);
pinMode(buttonPin1, INPUT);
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(1,1);
display.print("HELLO WILD D W5WDI");
display.setCursor(1,10);
display.print("DESIGNED & PROGRAMED");
display.setCursor(1,20);
display.print("BY W5WDI WITH HELP");
display.display();
display.clearDisplay();
delay(timer2);
display.setCursor(1,1);
display.print("FROM THE GOOD PEOPLE");
display.setCursor(1,10);
display.print("FROM THE ARDUINO.CC");
display.setCursor(1,20);
display.print("COMMUNITY FORUM");
display.display();
display.clearDisplay();
delay(timer2);
SystemStart();
}
void SystemStart() {
display.clearDisplay();
display.setTextSize(1);
display.setTextColor(WHITE);
display.setCursor(1,1);
display.print("SYSTEM STARTUP");
display.display();
Serial.println("SYSTEM STARTUP");
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
Serial.println ("KILL SWITCH OFF");
display.print ("KILL SWITCH OFF");
display.display();
display.clearDisplay();
digitalWrite(KillSwPin, HIGH);
delay(timer1);
digitalWrite(PrimerPin, HIGH);
Serial.println ("FUEL LINE PRIMING");
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("10");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("9");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("8");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("7");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("6");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("5");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("4");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("3");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("2");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("FUEL LINE PRIMING");
display.setCursor(1,10);
display.print ("1");
display.display();
display.clearDisplay();
delay(timer1);
digitalWrite(PrimerPin, LOW);
display.setCursor(1,1);
Serial.println ("DONE PRIMING FUEL LINE");
display.print ("PRIMING FUEL LINE DONE");
display.display();
display.clearDisplay();
delay(timer1);
digitalWrite(StarterPin, HIGH);
Serial.println ("STARTER ENGAGED");
display.setCursor(1,1);
display.print ("STARTER ENGAGED");
display.setCursor(1,10);
display.print ("5");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("STARTER ENGAGED");
display.setCursor(1,10);
display.print ("4");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("STARTER ENGAGED");
display.setCursor(1,10);
display.print ("3");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("STARTER ENGAGED");
display.setCursor(1,10);
display.print ("2");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("STARTER ENGAGED");
display.setCursor(1,10);
display.print ("1");
display.display();
display.clearDisplay();
delay(timer1);
digitalWrite(StarterPin, LOW);
display.setCursor(1,1);
Serial.println ("STARTER DISENGAGED");
display.print ("STARTER DISENGAGED");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("10");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("9");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("8");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("7");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("6");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("5");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("4");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("3");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("2");
display.display();
display.clearDisplay();
delay(timer1);
display.setCursor(1,1);
display.print ("VERIFYING IF RUNNING");
display.setCursor(1,10);
display.print ("1");
display.display();
display.clearDisplay();
delay(timer1);
buttonState = digitalRead(buttonPin1);
}
void loop() {
buttonState = digitalRead(buttonPin1);
if (buttonState == HIGH){
display.clearDisplay();
display.setTextSize(.5);
display.setTextColor(WHITE);
display.setCursor(1,1);
digitalWrite(OutputPin, HIGH);
digitalWrite(RunningLEDPin, HIGH);
Serial.println ("SYSTEM RUNNING");
display.print ("SYSTEM RUNNING");
display.display();
display.clearDisplay();
}
if (buttonState == LOW && restarts < 3) {
Serial.print("ERROR DURING STARTUP - SYSTEM RESTARTING ");
display.setCursor(1,1);
display.print("STARTING FAILURE");
display.setCursor(1,10);
display.print("SYSTEM RESTARTING");
display.setCursor(1,20);
display.print( ++restarts, DEC);
Serial.println (" OF 3");
display.print (" OF 3");
display.display();
display.clearDisplay();
delay(timer4);
digitalWrite(OutputPin, LOW);
delay(timer1);
digitalWrite(KillSwPin, LOW);
SystemStart();
}
if (buttonState == LOW){
digitalWrite(LEDPin, HIGH);
Serial.println("FAILED TO START!");
display.setCursor(1,1);
display.print("FAILED TO START!");
display.setCursor(1,10);
display.print("PLEASE CYCLE");
display.setCursor(1,20);
display.print("MAIN POWER");
display.display();
display.clearDisplay();
}
}