From d5b49742e55271f595815431cbea0062fecf8b28 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Wed, 2 Aug 2017 14:31:35 -0400 Subject: [PATCH 01/13] Update NCD2Relay.h --- firmware/NCD2Relay.h | 2 ++ 1 file changed, 2 insertions(+) diff --git a/firmware/NCD2Relay.h b/firmware/NCD2Relay.h index 6d51358..6b7ada6 100644 --- a/firmware/NCD2Relay.h +++ b/firmware/NCD2Relay.h @@ -28,6 +28,8 @@ class NCD2Relay{ int readInputStatus(int input); //Read status of all inputs int readAllInputs(); + //Set input pull-up resistors on or off + void setPullUp(byte pullup); //User Accessible Variables //Whether or not the controller is ready to accept commands From 03c71cc1e298e7f8bb3efd9ad6dc840365f7d011 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Wed, 2 Aug 2017 14:36:17 -0400 Subject: [PATCH 02/13] Update NCD2Relay.cpp --- firmware/NCD2Relay.cpp | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) diff --git a/firmware/NCD2Relay.cpp b/firmware/NCD2Relay.cpp index e6e3148..51f479c 100644 --- a/firmware/NCD2Relay.cpp +++ b/firmware/NCD2Relay.cpp @@ -449,3 +449,37 @@ int NCD2Relay::readAllInputs(){ byte shifted = inverted >> 2; return shifted; } + +void NCD2Relay::setPullUp(byte pullup){ + // twoRelayMask = 0x03; // becuase this is the two relay board don't touch GPIO 1 and 2 + if((pullup & twoRelayMask) > 0x00){ + skippedPullup = 1; + return; + } + byte registerAddress = 0x06; + setPullUpRetry: + Wire.beginTransmission(address); + Wire.write(registerAddress); + Wire.write(pullup); + byte status = Wire.endTransmission(); + if(status !=0){ + if(retrys < 3){ + #ifdef LOGGING + Serial.println("Retry set pull-up"); + #endif + retrys++; + goto setPullUpRetry; + }else{ + #ifdef LOGGING + Serial.println("Set Pull Up failed"); + #endif + initialized = false; + retrys = 0; + } + + }else{ + initialized = true; + retrys = 0; + readStatus(); + } +} From da3ffda3d15c3c44939df410acf9c44cc2160e7d Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Wed, 2 Aug 2017 20:47:13 -0400 Subject: [PATCH 03/13] Update README.md --- README.md | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 53126e7..882d436 100644 --- a/README.md +++ b/README.md @@ -174,6 +174,15 @@ int readAllInputs(); >the bit in the byte is set to 1, if the input is open the bit in the byte is set to 0. 256 will be >returned if an error has occured(generally due to lack of communciation with controller). +```cpp +byte setPullUp(byte pullup); +``` +>This method accepts one byte. Valid byte arguments 0x00 to 0xFC. A call to this method will set or remove the pull-up +>resistors on the inputs. Setting the bit corresponding to the MCP23008 input pin will internally pull the pin high +>through a 100Kohm resistor. By default the pull-up resistors are all enabled. Bit 7-0 corresponds to PU7:PU0 +>excluding bits 0 and 1 as they are the relay driver pins. +>Example: default setting byte is 0XFC, to turn off the pull-up resistor for input 1 the byte value would be +>0xF8 (remeber that 0 and 1 are for relay control). ###Public accessible variables ```cpp @@ -188,4 +197,4 @@ License ---- GNU -[sparkIncludeLibrary]:https://docs.particle.io/guide/getting-started/build/photon/ \ No newline at end of file +[sparkIncludeLibrary]:https://docs.particle.io/guide/getting-started/build/photon/ From 98946bce940b6385195856fa33419bfe675f651d Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Tue, 8 Aug 2017 19:44:54 -0400 Subject: [PATCH 04/13] Update NCD2Relay.cpp --- firmware/NCD2Relay.cpp | 134 ++++++++++++++++++++++++++++++++++++++--- 1 file changed, 125 insertions(+), 9 deletions(-) diff --git a/firmware/NCD2Relay.cpp b/firmware/NCD2Relay.cpp index 51f479c..c08dca5 100644 --- a/firmware/NCD2Relay.cpp +++ b/firmware/NCD2Relay.cpp @@ -9,7 +9,8 @@ NCD2Relay::NCD2Relay(){ } //Retry added -void NCD2Relay::setAddress(int a0, int a1, int a2){ +void NCD2Relay::setInit(int a0, int a1, int a2, byte direction, byte pullup){ + // Set address address = 0x20; if(a0 == 1){ address = address | 1; @@ -20,20 +21,27 @@ void NCD2Relay::setAddress(int a0, int a1, int a2){ if(a2 == 1){ address = address | 4; } + + // Set GPIO direction + byte directionMasked = (direction & 0xFC); // Mask out the relay control pins + // Set pull-up resistors + byte pullupMasked = (pullup & direction); // Only set pullup on/off for inout pins + //Start I2C port Wire.begin(); //Open connection to specified address retryAddress1: Wire.beginTransmission(address); - //Set all channels to outputs + //Set channels 0 and 1 to outputs Wire.write(0x00); - Wire.write(0xFC); + Wire.write(directionMasked); //Determine if device is present at that address byte status = Wire.endTransmission(); Wire.beginTransmission(address); + // turn off pull-up resistors Wire.write(0x06); - Wire.write(0xFC); + Wire.write(pullupMasked); status = Wire.endTransmission(); if(status != 0){ if(retrys < 3){ @@ -450,17 +458,124 @@ int NCD2Relay::readAllInputs(){ return shifted; } -void NCD2Relay::setPullUp(byte pullup){ - // twoRelayMask = 0x03; // becuase this is the two relay board don't touch GPIO 1 and 2 - if((pullup & twoRelayMask) > 0x00){ - skippedPullup = 1; +void NCD2Relay::setOutputOn(int output){ + if(output > 6 || output < 1){ + return; + } + byte bankValue = bankOneStatus; + byte registerAddress = 0x0A; + switch(output){ + case 1: + bankValue = bankValue | 4; + break; + case 2: + bankValue = bankValue | 8; + break; + case 3: + bankValue = bankValue | 16; + break; + case 4: + bankValue = bankValue | 32; + break; + case 5: + bankValue = bankValue | 64; + break; + case 6: + bankValue = bankValue | 128; + break; + } + turnOutputOnRetry: + Wire.beginTransmission(address); + Wire.write(registerAddress); + Wire.write(bankValue); + byte status = Wire.endTransmission(); + if(status != 0){ + if(retrys < 3){ + #ifdef LOGGING + Serial.println("Retry Turn On Output command"); + #endif + retrys++; + goto turnOutputOnRetry; + }else{ + #ifdef LOGGING + Serial.println("Turn on Relay Failed"); + #endif + initialized = false; + retrys = 0; + } + }else{ + initialized = true; + retrys = 0; + readStatus(); + } + +} + +void NCD2Relay::setOutputOff(int output){ + if(output > 6 || output < 1){ return; } + byte bankValue = bankOneStatus; + byte registerAddress = 0x0A; + switch(output){ + case 1: + bankValue = bankValue | -4; + break; + case 2: + bankValue = bankValue | -8; + break; + case 3: + bankValue = bankValue | -16; + break; + case 4: + bankValue = bankValue | -32; + break; + case 5: + bankValue = bankValue | -64; + break; + case 6: + bankValue = bankValue | -128; + break; + } + turnOutputOffRetry: + Wire.beginTransmission(address); + Wire.write(registerAddress); + Wire.write(bankValue); + byte status = Wire.endTransmission(); + if(status != 0){ + if(retrys < 3){ + #ifdef LOGGING + Serial.println("Retry Turn Off Output command"); + #endif + retrys++; + goto turnOutputOffRetry; + }else{ + #ifdef LOGGING + Serial.println("Turn Off Relay Failed"); + #endif + initialized = false; + retrys = 0; + } + }else{ + initialized = true; + retrys = 0; + readStatus(); + } + +} + +/* void NCD2Relay::setPullUp(byte pullup){ + // twoRelayMask = 0x03; // becuase this is the two relay board don't touch GPIO 1 and 2 +// if((pullup & twoRelayMask) > 0x00){ +// return; +// } + byte pullupMasked = (pullup & 0xFC); // mask out the relay outputs + byte registerAddress = 0x06; setPullUpRetry: Wire.beginTransmission(address); Wire.write(registerAddress); - Wire.write(pullup); + Wire.write(pullupMasked); byte status = Wire.endTransmission(); if(status !=0){ if(retrys < 3){ @@ -483,3 +598,4 @@ void NCD2Relay::setPullUp(byte pullup){ readStatus(); } } +*/ From 31187d0fa7847b315866d2d15941c6018dd6ea37 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Tue, 8 Aug 2017 19:45:26 -0400 Subject: [PATCH 05/13] Update NCD2Relay.h --- firmware/NCD2Relay.h | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/firmware/NCD2Relay.h b/firmware/NCD2Relay.h index 6b7ada6..3f1c711 100644 --- a/firmware/NCD2Relay.h +++ b/firmware/NCD2Relay.h @@ -6,8 +6,10 @@ class NCD2Relay{ public: //Constructor NCD2Relay(void); - //Set Address. Indicate status of jumpers on board. Send 0 for not installed, send 1 for installed - void setAddress(int a0, int a1, int a2); + //Set Init. a0 through a1 Indicate status of jumpers on board. Send 0 for not installed, send 1 for installed. + // Optional: direction set GPIO pin as input or output bitwise, 1 input, 0 output + // Optional: pullup set GPIO internal pull-up resistors on or off bitwise, 1 on, 0 off. + void setInit(int a0, int a1, int a2, byte direction = 0xFC, byte pullup = 0xFC); //Turn on Relay void turnOnRelay(int relay); //Turn off Relay @@ -28,13 +30,17 @@ class NCD2Relay{ int readInputStatus(int input); //Read status of all inputs int readAllInputs(); - //Set input pull-up resistors on or off - void setPullUp(byte pullup); + // Turn on output if enabled + void setOutputOn(int output); + // Turn off output if enabled + void setOutputOff(int output); + // Set input pull-up resistors on or off + //void setPullUp(byte pullup); //User Accessible Variables //Whether or not the controller is ready to accept commands bool initialized; - + private: //internal use method for refreshing bank status variables void readStatus(); From 54026a7d83ae25e623771e18d3dea56e55af1fcb Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Thu, 10 Aug 2017 10:40:20 -0400 Subject: [PATCH 06/13] Update NCD2Relay.cpp --- firmware/NCD2Relay.cpp | 60 +++++++++--------------------------------- 1 file changed, 12 insertions(+), 48 deletions(-) diff --git a/firmware/NCD2Relay.cpp b/firmware/NCD2Relay.cpp index c08dca5..b6d1560 100644 --- a/firmware/NCD2Relay.cpp +++ b/firmware/NCD2Relay.cpp @@ -458,7 +458,7 @@ int NCD2Relay::readAllInputs(){ return shifted; } -void NCD2Relay::setOutputOn(int output){ +void NCD2Relay::setOutputHigh(int output){ if(output > 6 || output < 1){ return; } @@ -484,7 +484,7 @@ void NCD2Relay::setOutputOn(int output){ bankValue = bankValue | 128; break; } - turnOutputOnRetry: + setOutputHighRetry: Wire.beginTransmission(address); Wire.write(registerAddress); Wire.write(bankValue); @@ -495,7 +495,7 @@ void NCD2Relay::setOutputOn(int output){ Serial.println("Retry Turn On Output command"); #endif retrys++; - goto turnOutputOnRetry; + goto setOutputHighRetry; }else{ #ifdef LOGGING Serial.println("Turn on Relay Failed"); @@ -511,7 +511,7 @@ void NCD2Relay::setOutputOn(int output){ } -void NCD2Relay::setOutputOff(int output){ +void NCD2Relay::setOutputLow(int output){ if(output > 6 || output < 1){ return; } @@ -519,25 +519,25 @@ void NCD2Relay::setOutputOff(int output){ byte registerAddress = 0x0A; switch(output){ case 1: - bankValue = bankValue | -4; + bankValue = bankValue & ~4; break; case 2: - bankValue = bankValue | -8; + bankValue = bankValue & ~8; break; case 3: - bankValue = bankValue | -16; + bankValue = bankValue & ~16; break; case 4: - bankValue = bankValue | -32; + bankValue = bankValue & ~32; break; case 5: - bankValue = bankValue | -64; + bankValue = bankValue & ~64; break; case 6: - bankValue = bankValue | -128; + bankValue = bankValue & ~128; break; } - turnOutputOffRetry: + setOutputLowRetry: Wire.beginTransmission(address); Wire.write(registerAddress); Wire.write(bankValue); @@ -548,7 +548,7 @@ void NCD2Relay::setOutputOff(int output){ Serial.println("Retry Turn Off Output command"); #endif retrys++; - goto turnOutputOffRetry; + goto setOutputLowRetry; }else{ #ifdef LOGGING Serial.println("Turn Off Relay Failed"); @@ -563,39 +563,3 @@ void NCD2Relay::setOutputOff(int output){ } } - -/* void NCD2Relay::setPullUp(byte pullup){ - // twoRelayMask = 0x03; // becuase this is the two relay board don't touch GPIO 1 and 2 -// if((pullup & twoRelayMask) > 0x00){ -// return; -// } - byte pullupMasked = (pullup & 0xFC); // mask out the relay outputs - - byte registerAddress = 0x06; - setPullUpRetry: - Wire.beginTransmission(address); - Wire.write(registerAddress); - Wire.write(pullupMasked); - byte status = Wire.endTransmission(); - if(status !=0){ - if(retrys < 3){ - #ifdef LOGGING - Serial.println("Retry set pull-up"); - #endif - retrys++; - goto setPullUpRetry; - }else{ - #ifdef LOGGING - Serial.println("Set Pull Up failed"); - #endif - initialized = false; - retrys = 0; - } - - }else{ - initialized = true; - retrys = 0; - readStatus(); - } -} -*/ From 661819bcbd8be22e9c2b943fb8f8dcf33a868eb4 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Thu, 10 Aug 2017 10:41:57 -0400 Subject: [PATCH 07/13] Update NCD2Relay.h --- firmware/NCD2Relay.h | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/firmware/NCD2Relay.h b/firmware/NCD2Relay.h index 3f1c711..5a984f5 100644 --- a/firmware/NCD2Relay.h +++ b/firmware/NCD2Relay.h @@ -9,6 +9,7 @@ class NCD2Relay{ //Set Init. a0 through a1 Indicate status of jumpers on board. Send 0 for not installed, send 1 for installed. // Optional: direction set GPIO pin as input or output bitwise, 1 input, 0 output // Optional: pullup set GPIO internal pull-up resistors on or off bitwise, 1 on, 0 off. + // Default address: 000; direction: all inputs; pullup: all enabled. void setInit(int a0, int a1, int a2, byte direction = 0xFC, byte pullup = 0xFC); //Turn on Relay void turnOnRelay(int relay); @@ -31,9 +32,9 @@ class NCD2Relay{ //Read status of all inputs int readAllInputs(); // Turn on output if enabled - void setOutputOn(int output); + void setOutputHigh(int output); // Turn off output if enabled - void setOutputOff(int output); + void setOutputLow(int output); // Set input pull-up resistors on or off //void setPullUp(byte pullup); From cb865322608f8a2631f3ed359ad27cbbd972c807 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Thu, 10 Aug 2017 11:00:02 -0400 Subject: [PATCH 08/13] Update README.md --- README.md | 19 ++++++++++++------- 1 file changed, 12 insertions(+), 7 deletions(-) diff --git a/README.md b/README.md index 882d436..5b0549f 100644 --- a/README.md +++ b/README.md @@ -39,7 +39,7 @@ NCD2Relay relayController; void setup() { Serial.begin(115200); - relayController.setAddress(0,0,0); + relayController.setInit(0,0,0); } void loop() { @@ -83,14 +83,19 @@ void loop() { ###Public accessible methods ```cpp -void setAddress(int a0, int a1, int a2); +void setInit(int a0, int a1, int a2, byte direction = 0xFC, byte pullup = 0xFC); ``` >Must be called first before using the object. This method should also be called any time communication with ->the controller is lost or broken to recover communication This method accepts two int arguments. This ->tells the Library what address to direct commands to. a0 and a1 ints are representations of the two ->jumpers on the 4 channel relay controller which are labeled on the board A0, A1, and A2. If the jumper is ->installed then that int in this call should be set to 1. If it is not installed then the int should be set to -So if I have A0, A1, and A2 installed I would call ```relayController.setAddress(1, 1, 1).``` +>the controller is lost or broken to recover communication This method accepts three int arguments and optionally +>two byte arguments. int a0, int a1 and int a2 tell the Library what address to direct commands to. a0, a1 and a2 +>ints are representations of the three jumpers on the 2 channel relay controller which are labeled on the board A0, +>A1, and A2. If the jumper is installed then that int in this call should be set to 1. If it is not installed then +>the int should be set to 0. +>So if I have A0, A1, and A2 installed I would call ```relayController.setAddress(1, 1, 1).``` +>The direction and pullup arguments are optional and default to Input on GP2 through GP7 with pull-up resistors +>enabled. direction can be called without pullup and will enable any inputs pull-up resistor. pullup cannot be called +>without first calling direciton. +>direction and pullup are set bitwise with ```cpp From 7bd56602957d53f8bea0ef3905683d6a389119f0 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Thu, 10 Aug 2017 14:48:59 -0400 Subject: [PATCH 09/13] Update README.md --- README.md | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 5b0549f..d359c67 100644 --- a/README.md +++ b/README.md @@ -81,7 +81,7 @@ void loop() { } ``` -###Public accessible methods +### Public accessible methods ```cpp void setInit(int a0, int a1, int a2, byte direction = 0xFC, byte pullup = 0xFC); ``` @@ -91,7 +91,9 @@ void setInit(int a0, int a1, int a2, byte direction = 0xFC, byte pullup = 0xFC); >ints are representations of the three jumpers on the 2 channel relay controller which are labeled on the board A0, >A1, and A2. If the jumper is installed then that int in this call should be set to 1. If it is not installed then >the int should be set to 0. + >So if I have A0, A1, and A2 installed I would call ```relayController.setAddress(1, 1, 1).``` + >The direction and pullup arguments are optional and default to Input on GP2 through GP7 with pull-up resistors >enabled. direction can be called without pullup and will enable any inputs pull-up resistor. pullup cannot be called >without first calling direciton. From 04f9b82f38527119a211a5588d54c6f1b4d87fd7 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Thu, 10 Aug 2017 15:05:27 -0400 Subject: [PATCH 10/13] Update README.md --- README.md | 20 ++++++++++++-------- 1 file changed, 12 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index d359c67..94da3b2 100644 --- a/README.md +++ b/README.md @@ -6,7 +6,7 @@ The intention of this library is to make use of the NCD 2 channel relay controll ###Developer information NCD has been designing and manufacturing computer control products since 1995. We have specialized in hardware design and manufacturing of Relay controllers for 20 years. We pride ourselves as being the industry leader of computer control relay products. Our products are proven reliable and we are very excited to support Particle. For more information on NCD please visit www.controlanything.com -###Requirements +### Requirements - NCD 2 Channel Particle Core/Photon Compatible Relay board - Particle Core/Photon module - Knowledge base for developing and programming with Particle Core/Photon modules. @@ -91,13 +91,17 @@ void setInit(int a0, int a1, int a2, byte direction = 0xFC, byte pullup = 0xFC); >ints are representations of the three jumpers on the 2 channel relay controller which are labeled on the board A0, >A1, and A2. If the jumper is installed then that int in this call should be set to 1. If it is not installed then >the int should be set to 0. - ->So if I have A0, A1, and A2 installed I would call ```relayController.setAddress(1, 1, 1).``` - ->The direction and pullup arguments are optional and default to Input on GP2 through GP7 with pull-up resistors ->enabled. direction can be called without pullup and will enable any inputs pull-up resistor. pullup cannot be called ->without first calling direciton. ->direction and pullup are set bitwise with +> +>So if I have A0, A1, and A2 installed I would call ```relayController.setInit(1, 1, 1).``` +> +>The direction and pullup arguments are optional and default to Input on GP2 through GP7 (input 1 through 6) with +>pull-up resistors enabled. direction can be called without pullup and will enable all input pull-up resistors. +>pullup cannot be called without first calling direciton. direction and pullup are set bitwise with bit 2 representing +>input/output 1 and bit 7 representing input/output 6. +> +>If I wanted to switch input 6 to an output with the pull-up resistor on I would call ```setInit(0,0,0,0x7C)``` +> +>The same call but turning off the internal pull-up resistor is ```setInit(0,0,0,0x7C,0x7C)``` ```cpp From a170e009c1435711a757c14be581258a350e74a7 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Thu, 10 Aug 2017 15:12:00 -0400 Subject: [PATCH 11/13] Update README.md --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 94da3b2..8a170d2 100644 --- a/README.md +++ b/README.md @@ -99,9 +99,9 @@ void setInit(int a0, int a1, int a2, byte direction = 0xFC, byte pullup = 0xFC); >pullup cannot be called without first calling direciton. direction and pullup are set bitwise with bit 2 representing >input/output 1 and bit 7 representing input/output 6. > ->If I wanted to switch input 6 to an output with the pull-up resistor on I would call ```setInit(0,0,0,0x7C)``` +>If I wanted to switch Input 6 to an output I would call ```setInit(0,0,0,0x7C)``` > ->The same call but turning off the internal pull-up resistor is ```setInit(0,0,0,0x7C,0x7C)``` +>If I wanted to turn off the pull-up resistor on Input 1 I would call ```setInit(0,0,0,0xFC,0xF8)``` ```cpp From 5a7cb2f86e44b24e687859cb438d56e2df7e8962 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Thu, 10 Aug 2017 15:57:21 -0400 Subject: [PATCH 12/13] Update README.md --- README.md | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/README.md b/README.md index 8a170d2..5eb31a6 100644 --- a/README.md +++ b/README.md @@ -186,14 +186,15 @@ int readAllInputs(); >returned if an error has occured(generally due to lack of communciation with controller). ```cpp -byte setPullUp(byte pullup); -``` ->This method accepts one byte. Valid byte arguments 0x00 to 0xFC. A call to this method will set or remove the pull-up ->resistors on the inputs. Setting the bit corresponding to the MCP23008 input pin will internally pull the pin high ->through a 100Kohm resistor. By default the pull-up resistors are all enabled. Bit 7-0 corresponds to PU7:PU0 ->excluding bits 0 and 1 as they are the relay driver pins. ->Example: default setting byte is 0XFC, to turn off the pull-up resistor for input 1 the byte value would be ->0xF8 (remeber that 0 and 1 are for relay control). +void setOutputHigh(int output); +``` +>This method accepts one int. Valid int arguments 1-6. A call to this method will set the open drain output +>to float. + +```cpp +void setOutputLow(int output); +``` +>This method accepts one int. Valid arguments 1-6. A call to this method will set the open drain output to ground. ###Public accessible variables ```cpp From e685c7ca4622cbbe34f6c806458338bdef2f6a80 Mon Sep 17 00:00:00 2001 From: Glenn Hickman Date: Thu, 10 Aug 2017 15:59:17 -0400 Subject: [PATCH 13/13] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5eb31a6..d62674e 100644 --- a/README.md +++ b/README.md @@ -196,7 +196,7 @@ void setOutputLow(int output); ``` >This method accepts one int. Valid arguments 1-6. A call to this method will set the open drain output to ground. -###Public accessible variables +### Public accessible variables ```cpp bool initialized; ```