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.