<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://w220.wiki/index.php?action=history&amp;feed=atom&amp;title=Arduino_Controlled_PSE_Pump_Code</id>
	<title>Arduino Controlled PSE Pump Code - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://w220.wiki/index.php?action=history&amp;feed=atom&amp;title=Arduino_Controlled_PSE_Pump_Code"/>
	<link rel="alternate" type="text/html" href="https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;action=history"/>
	<updated>2026-04-27T00:42:13Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.41.0</generator>
	<entry>
		<id>https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=8005&amp;oldid=prev</id>
		<title>Joshuarjs: Joshuarjs moved page Arduino Controlled PSE Code to Arduino Controlled PSE Pump Code</title>
		<link rel="alternate" type="text/html" href="https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=8005&amp;oldid=prev"/>
		<updated>2020-08-17T03:45:02Z</updated>

		<summary type="html">&lt;p&gt;Joshuarjs moved page &lt;a href=&quot;/Arduino_Controlled_PSE_Code&quot; class=&quot;mw-redirect&quot; title=&quot;Arduino Controlled PSE Code&quot;&gt;Arduino Controlled PSE Code&lt;/a&gt; to &lt;a href=&quot;/Arduino_Controlled_PSE_Pump_Code&quot; title=&quot;Arduino Controlled PSE Pump Code&quot;&gt;Arduino Controlled PSE Pump Code&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:45, 17 August 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Joshuarjs</name></author>
	</entry>
	<entry>
		<id>https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=8004&amp;oldid=prev</id>
		<title>Joshuarjs at 03:44, 17 August 2020</title>
		<link rel="alternate" type="text/html" href="https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=8004&amp;oldid=prev"/>
		<updated>2020-08-17T03:44:52Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:44, 17 August 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is the code for the [[Arduino Controlled PSE]] &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;pump&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is the code for the [[Arduino Controlled PSE &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Pump&lt;/ins&gt;]].&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Joshuarjs</name></author>
	</entry>
	<entry>
		<id>https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=8001&amp;oldid=prev</id>
		<title>Joshuarjs at 03:44, 17 August 2020</title>
		<link rel="alternate" type="text/html" href="https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=8001&amp;oldid=prev"/>
		<updated>2020-08-17T03:44:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:44, 17 August 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is the code for the [[Arduino &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Powered &lt;/del&gt;PSE]] pump.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is the code for the [[Arduino &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Controlled &lt;/ins&gt;PSE]] pump.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Joshuarjs</name></author>
	</entry>
	<entry>
		<id>https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=7998&amp;oldid=prev</id>
		<title>Joshuarjs: Joshuarjs moved page Arduino Powered PSE Code to Arduino Controlled PSE Code</title>
		<link rel="alternate" type="text/html" href="https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=7998&amp;oldid=prev"/>
		<updated>2020-08-17T03:43:28Z</updated>

		<summary type="html">&lt;p&gt;Joshuarjs moved page &lt;a href=&quot;/Arduino_Powered_PSE_Code&quot; title=&quot;Arduino Powered PSE Code&quot;&gt;Arduino Powered PSE Code&lt;/a&gt; to &lt;a href=&quot;/Arduino_Controlled_PSE_Code&quot; class=&quot;mw-redirect&quot; title=&quot;Arduino Controlled PSE Code&quot;&gt;Arduino Controlled PSE Code&lt;/a&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;1&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:43, 17 August 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-notice&quot; lang=&quot;en&quot;&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;(No difference)&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Joshuarjs</name></author>
	</entry>
	<entry>
		<id>https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=7997&amp;oldid=prev</id>
		<title>Joshuarjs at 03:35, 17 August 2020</title>
		<link rel="alternate" type="text/html" href="https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=7997&amp;oldid=prev"/>
		<updated>2020-08-17T03:35:51Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 03:35, 17 August 2020&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l1&quot;&gt;Line 1:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 1:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is the code for &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;controlling &lt;/del&gt;the &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;Mercedes W220 &lt;/del&gt;PSE &lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;with an Arduino as described here&lt;/del&gt;.&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;This is the code for the &lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;[[Arduino Powered &lt;/ins&gt;PSE&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;]] pump&lt;/ins&gt;.&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;&amp;lt;pre&amp;gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Joshuarjs</name></author>
	</entry>
	<entry>
		<id>https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=7993&amp;oldid=prev</id>
		<title>Joshuarjs: Created page with &quot;This is the code for controlling the Mercedes W220 PSE with an Arduino as described here.  &lt;pre&gt; /*  Code for controlling the Mercedes W220 PSE with an Arduino */    // Assign...&quot;</title>
		<link rel="alternate" type="text/html" href="https://w220.wiki/index.php?title=Arduino_Controlled_PSE_Pump_Code&amp;diff=7993&amp;oldid=prev"/>
		<updated>2020-08-17T03:25:03Z</updated>

		<summary type="html">&lt;p&gt;Created page with &amp;quot;This is the code for controlling the Mercedes W220 PSE with an Arduino as described here.  &amp;lt;pre&amp;gt; &lt;span dir=&quot;auto&quot;&gt;&lt;span class=&quot;autocomment&quot;&gt;Code for controlling the Mercedes W220 PSE with an Arduino: &lt;/span&gt;    // Assign...&amp;quot;&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;This is the code for controlling the Mercedes W220 PSE with an Arduino as described here.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;pre&amp;gt;&lt;br /&gt;
/*&lt;br /&gt;
 Code for controlling the Mercedes W220 PSE with an Arduino&lt;br /&gt;
*/&lt;br /&gt;
 &lt;br /&gt;
 // Assign Remote Control Pins&lt;br /&gt;
static const int RemA = 10; //A&lt;br /&gt;
static const int RemB = 11; //B&lt;br /&gt;
static const int RemC = 12; //C&lt;br /&gt;
static const int RemD = 13; //D&lt;br /&gt;
&lt;br /&gt;
// Assign PSE Pressure Sensor Pin&lt;br /&gt;
static const int PPin = A0;&lt;br /&gt;
&lt;br /&gt;
// Assign Trunk Lid Switch Pin&lt;br /&gt;
static const int TPin = A1;&lt;br /&gt;
int TrunkPrevState;&lt;br /&gt;
&lt;br /&gt;
// Assign Relay Pins&lt;br /&gt;
static const int RelMotor =  2;&lt;br /&gt;
static const int RelPos =  3;&lt;br /&gt;
static const int RelNeg =  4;&lt;br /&gt;
static const int RelFLDr =  5;&lt;br /&gt;
static const int RelDrs =  6;&lt;br /&gt;
static const int RelTrunk =  8;&lt;br /&gt;
static const int RelHR =  9;&lt;br /&gt;
static const int RelTrunkSol =  7;&lt;br /&gt;
&lt;br /&gt;
// Double Click Variables&lt;br /&gt;
int ButtonAState;&lt;br /&gt;
unsigned long timePress = 0;&lt;br /&gt;
unsigned long timePressLimit = 0;&lt;br /&gt;
int clicks = 0;&lt;br /&gt;
&lt;br /&gt;
// Long Press Variables&lt;br /&gt;
long buttonTimer = 0;&lt;br /&gt;
long longPressTime = 1000;&lt;br /&gt;
boolean buttonActive = false;&lt;br /&gt;
boolean longPressActive = false;&lt;br /&gt;
&lt;br /&gt;
// Assign Arduino Auto Shutdown Relay Pin&lt;br /&gt;
static const int SPin = A2;&lt;br /&gt;
&lt;br /&gt;
// Timer Variable for Auto Shutdown&lt;br /&gt;
unsigned long time;&lt;br /&gt;
unsigned long timeout = 14400000; //4 hours&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
void setup() {&lt;br /&gt;
&lt;br /&gt;
  // Define pin modes&lt;br /&gt;
  pinMode(PPin, INPUT);&lt;br /&gt;
  pinMode(TPin, INPUT_PULLUP);&lt;br /&gt;
  pinMode(SPin, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  pinMode(RelMotor, OUTPUT);&lt;br /&gt;
  pinMode(RelPos, OUTPUT);&lt;br /&gt;
  pinMode(RelNeg, OUTPUT);&lt;br /&gt;
  pinMode(RelFLDr, OUTPUT);&lt;br /&gt;
  pinMode(RelDrs, OUTPUT);&lt;br /&gt;
  pinMode(RelTrunk, OUTPUT);&lt;br /&gt;
  pinMode(RelHR, OUTPUT);&lt;br /&gt;
  pinMode(RelTrunkSol, OUTPUT);&lt;br /&gt;
&lt;br /&gt;
  pinMode(RemA, INPUT);&lt;br /&gt;
  pinMode(RemB, INPUT);&lt;br /&gt;
  pinMode(RemC, INPUT);&lt;br /&gt;
  pinMode(RemD, INPUT);&lt;br /&gt;
&lt;br /&gt;
  // Making sure all relays are OFF&lt;br /&gt;
  digitalWrite(RelMotor, HIGH);&lt;br /&gt;
  digitalWrite(RelPos, HIGH);&lt;br /&gt;
  digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  digitalWrite(RelFLDr, HIGH);&lt;br /&gt;
  digitalWrite(RelDrs, HIGH);&lt;br /&gt;
  digitalWrite(RelTrunk, HIGH);&lt;br /&gt;
  digitalWrite(RelHR, HIGH);&lt;br /&gt;
  digitalWrite(RelTrunkSol, HIGH);&lt;br /&gt;
  digitalWrite(SPin, HIGH);&lt;br /&gt;
&lt;br /&gt;
  // Read trunk's current state&lt;br /&gt;
  TrunkPrevState = digitalRead(TPin);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
void loop() {&lt;br /&gt;
&lt;br /&gt;
// Auto Shutdown Timer--------------------------------------------------------------&lt;br /&gt;
  time = millis(); // Time elapsed since Arduino started&lt;br /&gt;
  if (time &amp;gt; timeout &amp;amp;&amp;amp; digitalRead(TPin) == HIGH)&lt;br /&gt;
  {&lt;br /&gt;
    //Turn off Arduino if trunk is and was closed. Else add 30 seconds to the timer.&lt;br /&gt;
    if (TrunkPrevState == HIGH &amp;amp;&amp;amp; digitalRead(TPin) == HIGH)&lt;br /&gt;
    {&lt;br /&gt;
      digitalWrite(SPin, LOW);&lt;br /&gt;
    }&lt;br /&gt;
    else&lt;br /&gt;
    {&lt;br /&gt;
      timeout = timeout + 30000;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
// Button A pressed --------------------------------------------------------------&lt;br /&gt;
  if (digitalRead(RemA) == HIGH) &lt;br /&gt;
  {&lt;br /&gt;
    LockAll();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
// Button B pressed once or twice-------------------------------------------------&lt;br /&gt;
// Credit - The_Little_Cousin : https://forum.arduino.cc/index.php?topic=425587.msg2932300#msg2932300&lt;br /&gt;
  if (digitalRead(RemB) == HIGH) {&lt;br /&gt;
    delay(100);&lt;br /&gt;
    if (digitalRead(RemB) == LOW) {&lt;br /&gt;
      if (clicks == 0) {&lt;br /&gt;
        timePress = millis();&lt;br /&gt;
        timePressLimit = timePress + 1000;&lt;br /&gt;
        clicks = 1;&lt;br /&gt;
      }&lt;br /&gt;
      else if (clicks == 1 &amp;amp;&amp;amp; millis() &amp;lt; timePressLimit) {&lt;br /&gt;
        //Double press action&lt;br /&gt;
        UnlockAll();&lt;br /&gt;
&lt;br /&gt;
        //Set variables back to 0&lt;br /&gt;
        timePress = 0;&lt;br /&gt;
        timePressLimit = 0;&lt;br /&gt;
        clicks = 0;&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  //Single press&lt;br /&gt;
  if (clicks == 1 &amp;amp;&amp;amp; timePressLimit != 0 &amp;amp;&amp;amp; millis() &amp;gt; timePressLimit)&lt;br /&gt;
  {&lt;br /&gt;
    timePress = 0;&lt;br /&gt;
    timePressLimit = 0;&lt;br /&gt;
    clicks = 0;&lt;br /&gt;
&lt;br /&gt;
    //Single press action&lt;br /&gt;
    UnlockDriver();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Button C long-pressed --------------------------------------------------------------&lt;br /&gt;
// Credit xn1ch1 : https://www.instructables.com/id/Arduino-Dual-Function-Button-Long-PressShort-Press/&lt;br /&gt;
  if (digitalRead(RemC) == HIGH)&lt;br /&gt;
  {&lt;br /&gt;
    if (buttonActive == false) {&lt;br /&gt;
      buttonActive = true;&lt;br /&gt;
      buttonTimer = millis();&lt;br /&gt;
    }&lt;br /&gt;
    if ((millis() - buttonTimer &amp;gt; longPressTime) &amp;amp;&amp;amp; (longPressActive == false)) {&lt;br /&gt;
      longPressActive = true;&lt;br /&gt;
      //Long-press action - Unlock the trunk&lt;br /&gt;
      UnlockTrunk();&lt;br /&gt;
    }&lt;br /&gt;
  } &lt;br /&gt;
  else {&lt;br /&gt;
    if (buttonActive == true) {&lt;br /&gt;
      if (longPressActive == true) {&lt;br /&gt;
        longPressActive = false;&lt;br /&gt;
      } else {&lt;br /&gt;
        //Short-press action - Nothing&lt;br /&gt;
      }&lt;br /&gt;
      buttonActive = false;&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Button D pressed --------------------------------------------------------------&lt;br /&gt;
  if (digitalRead(RemD) == HIGH)&lt;br /&gt;
  {&lt;br /&gt;
    DropHeadRest();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
// Trunk lid closed -----------------------------------------------------------------&lt;br /&gt;
// When the trunk state changes from open(LOW) to closed (HIGH)&lt;br /&gt;
  if (TrunkPrevState == LOW &amp;amp;&amp;amp; digitalRead(TPin) == HIGH)&lt;br /&gt;
  {&lt;br /&gt;
    LockTrunk();&lt;br /&gt;
  }&lt;br /&gt;
&lt;br /&gt;
  // Store current trunk state&lt;br /&gt;
  TrunkPrevState = digitalRead(TPin);&lt;br /&gt;
&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
void LockAll()&lt;br /&gt;
&lt;br /&gt;
/*&lt;br /&gt;
  Lock car with +ve pressure, which pulls the Door Lock Button down, then returns to atmospheric press&lt;br /&gt;
*/&lt;br /&gt;
{&lt;br /&gt;
  // Doors are locked in 2 steps since there's not enough pressure. Possibly due to a small leak.&lt;br /&gt;
  //+ve Pressure&lt;br /&gt;
    digitalWrite(RelPos, LOW);&lt;br /&gt;
    digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  //Driver Door&lt;br /&gt;
    digitalWrite(RelFLDr, LOW);&lt;br /&gt;
      MotorRun(3);&lt;br /&gt;
    digitalWrite(RelFLDr, HIGH);&lt;br /&gt;
  //Remaining Doors&lt;br /&gt;
    digitalWrite(RelDrs, LOW);&lt;br /&gt;
      MotorRun(5);&lt;br /&gt;
    digitalWrite(RelDrs, HIGH);&lt;br /&gt;
  //Release Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  delay (100);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
void UnlockAll()&lt;br /&gt;
/*&lt;br /&gt;
  Unlock car with -ve pressure , which moves Door Lock Button up, then returns to atmospheric pressure.&lt;br /&gt;
*/&lt;br /&gt;
{&lt;br /&gt;
  // Doors are locked in 2 steps since there's not enough pressure. Possibly due to a small leak.&lt;br /&gt;
  //-ve Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, LOW);&lt;br /&gt;
  //Passenger Doors&lt;br /&gt;
    digitalWrite(RelDrs, LOW);&lt;br /&gt;
      MotorRun(6);&lt;br /&gt;
    digitalWrite(RelDrs, HIGH);&lt;br /&gt;
  //Driver Door&lt;br /&gt;
   digitalWrite(RelFLDr, LOW);&lt;br /&gt;
      MotorRun(3);&lt;br /&gt;
    digitalWrite(RelFLDr, HIGH);&lt;br /&gt;
  //Release Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  delay (100);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
void UnlockDriver()&lt;br /&gt;
/*&lt;br /&gt;
  Unlock car with -ve pressure , which moves Driver Door Lock Button up, then returns to atmospheric pressure.&lt;br /&gt;
*/&lt;br /&gt;
{&lt;br /&gt;
  //-ve Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, LOW);&lt;br /&gt;
  //Driver Door&lt;br /&gt;
   digitalWrite(RelFLDr, LOW);&lt;br /&gt;
      MotorRun(3);&lt;br /&gt;
    digitalWrite(RelFLDr, HIGH);&lt;br /&gt;
  //Release Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  delay (100);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
void DropHeadRest()&lt;br /&gt;
/*&lt;br /&gt;
  Drop rear headrests with -ve pressure.&lt;br /&gt;
*/&lt;br /&gt;
{&lt;br /&gt;
  //-ve Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, LOW);&lt;br /&gt;
  //Rear Seat Head Restraints&lt;br /&gt;
    digitalWrite(RelHR, LOW);&lt;br /&gt;
      MotorRun(3);&lt;br /&gt;
    digitalWrite(RelHR, HIGH);&lt;br /&gt;
  //Release Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  delay (100);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
void LockTrunk()&lt;br /&gt;
/*&lt;br /&gt;
   Manually close Boot/Trunk by pulling down on RTG Handle until latch goes click,&lt;br /&gt;
   1) +ve pressure, Boot/Trunk Catch Actuator pulls boot closed,&lt;br /&gt;
   2) –ve pressure, retracts the Retractable Trunklid Grip (RTG) Handle,&lt;br /&gt;
   3) Returns to atmospheric pressure.&lt;br /&gt;
*/&lt;br /&gt;
{&lt;br /&gt;
  // Open PSE Trunk HECK valve&lt;br /&gt;
    digitalWrite(RelTrunk, LOW);&lt;br /&gt;
  //+ve Pressure&lt;br /&gt;
    digitalWrite(RelPos, LOW);&lt;br /&gt;
    digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  //Trunk Catch Actuator pulls boot closed&lt;br /&gt;
    MotorRun(7);&lt;br /&gt;
  //-ve Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, LOW);&lt;br /&gt;
  // Retract RTG Handle&lt;br /&gt;
    MotorRun(4);&lt;br /&gt;
  // Close PSE Trunk HECK valve&lt;br /&gt;
    digitalWrite(RelTrunk, HIGH);&lt;br /&gt;
  //Release Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  delay (100);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
void UnlockTrunk()&lt;br /&gt;
/*&lt;br /&gt;
   Open Boot/Trunk with trunk latch solenoid and +ve pressure, which&lt;br /&gt;
   extends RTG Handle, and unlocks Boot/Trunk latch, releasing lid &lt;br /&gt;
   which fully opens, then returns to atmospheric pressure.&lt;br /&gt;
*/&lt;br /&gt;
{&lt;br /&gt;
  //+ve Pressure&lt;br /&gt;
    digitalWrite(RelPos, LOW);&lt;br /&gt;
    digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  // Open PSE Trunk HECK valve&lt;br /&gt;
    digitalWrite(RelTrunk, LOW);&lt;br /&gt;
  // Open Solenoid Valve in trunk lock&lt;br /&gt;
    digitalWrite(RelTrunkSol, LOW);&lt;br /&gt;
  // Open Boot/Trunk latch&lt;br /&gt;
    MotorRun(1.5);&lt;br /&gt;
  // Close Solenoid Valve in trunk lock&lt;br /&gt;
    digitalWrite(RelTrunkSol, HIGH);&lt;br /&gt;
  // Extend RTG Handle&lt;br /&gt;
    MotorRun(4);&lt;br /&gt;
  // Close PSE Trunk HECK valve&lt;br /&gt;
    digitalWrite(RelTrunk, HIGH);&lt;br /&gt;
  //Release Pressure&lt;br /&gt;
    digitalWrite(RelPos, HIGH);&lt;br /&gt;
    digitalWrite(RelNeg, HIGH);&lt;br /&gt;
  delay (100);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
void MotorRun(float t)&lt;br /&gt;
/* Turns on motor relay for t seconds&lt;br /&gt;
   Checks PPin for pressure extremes every 100ms and turns off motor if out of bounds.&lt;br /&gt;
*/&lt;br /&gt;
{&lt;br /&gt;
  int pressure;&lt;br /&gt;
  delay (100);&lt;br /&gt;
  &lt;br /&gt;
  //Start the motor&lt;br /&gt;
  digitalWrite(RelMotor, LOW);&lt;br /&gt;
&lt;br /&gt;
  for (int i = 0; i &amp;lt;= (t * 10); i++) // t is converted from sec to multiples of 100ms (delay below)&lt;br /&gt;
  {&lt;br /&gt;
    pressure = analogRead(PPin);&lt;br /&gt;
    if (i &amp;gt; 10)  // Only check after 1 sec has passed to ignore spikes at startup&lt;br /&gt;
    {&lt;br /&gt;
      if (pressure &amp;lt; 80 || pressure &amp;gt; 640)&lt;br /&gt;
      {&lt;br /&gt;
        // Immediately stop motor and exit function&lt;br /&gt;
        digitalWrite(RelMotor, HIGH);&lt;br /&gt;
        delay (100);&lt;br /&gt;
        return;&lt;br /&gt;
      }&lt;br /&gt;
      else&lt;br /&gt;
      {&lt;br /&gt;
        delay (100); //Wait and recheck&lt;br /&gt;
      }&lt;br /&gt;
    }&lt;br /&gt;
  }&lt;br /&gt;
  // Stop the motor after t secs have passed&lt;br /&gt;
  digitalWrite(RelMotor, HIGH);&lt;br /&gt;
  delay (100);&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
//--------------------------------------------------------------------------------------------------------&lt;br /&gt;
&lt;br /&gt;
&amp;lt;/pre&amp;gt;&lt;/div&gt;</summary>
		<author><name>Joshuarjs</name></author>
	</entry>
</feed>