Help with my Generator controller

Yes you need to connect pin 10 to 5vdc for it to "see" that the generator is running along with the 10k resistor on gnd

Here is more programming info. Note: I havent tried it out yet but im confident that itll work thanks to all of yall help

#include <Waveshare_SIM7600.h>
#include <EasyLed.h>
#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);
EasyLed led(LED_BUILTIN, EasyLed::ActiveLevel::Low);
char phone_number[] = "************";
char text_message1[] = "SYSTEM STARTUP";
char text_message2[] = "SYSTEM RUNNING";
char text_message3[] = "FAILED TO START! PLEASE PRESS RESET";
int timer1 = 1000;
int timer2 = 5000;
int timer3 = 10000;
int timer4 = 3000;
const int buttonPin1 = 10;
int buttonState = 0, restarts = 0;
int POWERKEY = 2;
//green wire 5vdc
//black wire com gnd
//white wire 12vdc
byte PrimerPin = 5;        //orange wire
byte StarterPin = 11;       //blue wire
byte OutputPin = 9;        //brown/brown white
byte KillSwPin = 7;        //gray wire
byte GenRunningPin = 10;   //yellow wire
byte RunningLEDPin = 13;   //onboard led
byte LEDPin = 4;          //red wire
byte TransmitPin = 1;      //to rx of sim7600a
byte RecievePin = 0;       //to tx of sim7600a

void setup() {
  Serial.begin(9600);
  display.begin(SSD1306_SWITCHCAPVCC, 0x3C);
  display.clearDisplay();
  digitalWrite(PrimerPin, HIGH);
  digitalWrite(StarterPin, HIGH);
  digitalWrite(OutputPin, HIGH);
  digitalWrite(KillSwPin, HIGH);
  digitalWrite(LEDPin, HIGH);
  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);
  pinMode(RecievePin, INPUT);
  pinMode(TransmitPin, OUTPUT);
  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() {

  printf("Sending Short Message:\n");
  sim7600.SendingShortMessage(phone_number, text_message1);
  display.clearDisplay();
  display.setTextSize(1);
  display.setTextColor(WHITE);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.display();
  display.clearDisplay();
  delay(timer1);
  Serial.println ("KILL SWITCH OFF");
  digitalWrite(KillSwPin, LOW);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("KILL SWITCH OFF");
  display.display();
  display.clearDisplay();
  delay(timer1);
  digitalWrite(PrimerPin, LOW);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  Serial.println ("PRIMING FUEL LINE");
  display.display();
  display.clearDisplay();
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("10");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("9");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("8");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("7");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("6");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("5");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("4");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("3");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("2");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor(1, 20);
  display.print ("1");
  display.display();
  display.clearDisplay();
  delay(timer1);
  digitalWrite(PrimerPin, HIGH);
  display.setCursor(1, 1);
  Serial.println ("DONE PRIMING FUEL LINE");
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("PRIMING FUEL LINE");
  display.setCursor (1, 20);
  display.print("DONE");
  display.display();
  display.clearDisplay();
  delay(timer1);
  digitalWrite(StarterPin, LOW);
  Serial.println ("STARTER ENGAGED");
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("STARTER ENGAGED");
  display.setCursor(1, 20);
  display.print ("5");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("STARTER ENGAGED");
  display.setCursor(1, 20);
  display.print ("4");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("STARTER ENGAGED");
  display.setCursor(1, 20);
  display.print ("3");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("STARTER ENGAGED");
  display.setCursor(1, 20);
  display.print ("2");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("STARTER ENGAGED");
  display.setCursor(1, 20);
  display.print ("1");
  display.display();
  display.clearDisplay();
  delay(timer1);
  digitalWrite(StarterPin, HIGH);
  display.setCursor(1, 1);
  Serial.println ("STARTER DISENGAGED");
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("STARTER DISENGAGED");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("10");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("9");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("8");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("7");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("6");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("5");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("4");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("3");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("2");
  display.display();
  display.clearDisplay();
  delay(timer1);
  display.setCursor(1, 1);
  display.print("SYSTEM STARTUP");
  display.setCursor(1, 10);
  display.print ("VERIFYING IF RUNNING");
  display.setCursor(1, 20);
  display.print ("1");
  display.display();
  display.clearDisplay();
  delay(timer1);
  buttonState = digitalRead(buttonPin1);
  if (buttonState == HIGH) {
    printf("Sending Short Message:\n");
    sim7600.SendingShortMessage(phone_number, text_message2);
  } else if (buttonState == LOW) {
    printf("Sending Short Message:\n");
    sim7600.SendingShortMessage(phone_number, text_message3);
  }
}

void loop() {
  buttonState = digitalRead(buttonPin1);
  if (buttonState == HIGH) {

    display.clearDisplay();
    display.setTextSize(.5);
    display.setTextColor(WHITE);
    display.setCursor(1, 1);
    digitalWrite(OutputPin, LOW);
    digitalWrite(RunningLEDPin, LOW);
    Serial.println ("SYSTEM RUNNING");
    display.print ("   SYSTEM RUNNING");
    delay(timer1);
    display.display();
    display.clearDisplay();
    display.setCursor(1, 1);
    display.print("---SYSTEM RUNNING---");
    delay(timer1);
    display.display();
    display.clearDisplay();
    led.flash();
    delay(timer4);
  }

  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, HIGH);
    delay(timer1);
    digitalWrite(KillSwPin, HIGH);
    SystemStart();
  }

  if (buttonState == LOW) {
    digitalWrite(LEDPin, LOW);
    Serial.println("FAILED TO START!");
    display.setCursor(20, 1);
    display.print("FAILED TO START!");
    display.setCursor(30, 10);
    display.print("PLEASE PRESS");
    display.setCursor(45, 20);
    display.print("RESET");
    display.display();
    display.clearDisplay();
    display.setCursor(20, 1);
    display.print("FAILED TO START");
    display.setCursor(30, 10);
    display.print("PLEASE PRESS");
    display.setCursor(45, 20);
    display.print("RESET");
    display.display();
    display.clearDisplay();
  }
}

Let me know what yall think

This topic was automatically closed 180 days after the last reply. New replies are no longer allowed.