0.2.1 HC4053

This commit is contained in:
Rob Tillaart 2024-05-28 21:37:06 +02:00
parent b8f33abe9d
commit 1f58227dec
8 changed files with 29 additions and 10 deletions

View File

@ -6,6 +6,12 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/)
and this project adheres to [Semantic Versioning](http://semver.org/). and this project adheres to [Semantic Versioning](http://semver.org/).
## [0.2.1] - 2024-05-28
- change return type of **bool setChannel()**
- verify the channel parameter of **bool setChannel()**
- add parameter to **bool setChannel(channel, disable = true)**
- update readme.md
## [0.2.0] - 2024-04-03 ## [0.2.0] - 2024-04-03
- fix ghost channels when using for OUTPUT - fix ghost channels when using for OUTPUT
- add disable/enable in setChannel() - add disable/enable in setChannel()

View File

@ -3,15 +3,14 @@
// FILE: HC4053.h // FILE: HC4053.h
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// DATE: 2023-01-25 // DATE: 2023-01-25
// VERSION: 0.2.0 // VERSION: 0.2.1
// PURPOSE: Arduino library for CD74HC4053 8 channel multiplexer and compatibles. // PURPOSE: Arduino library for CD74HC4053 8 channel multiplexer and compatibles.
// URL: https://github.com/RobTillaart/HC4053 // URL: https://github.com/RobTillaart/HC4053
#include "Arduino.h" #include "Arduino.h"
#define HC4053_LIB_VERSION (F("0.2.0")) #define HC4053_LIB_VERSION (F("0.2.1"))
class HC4053 class HC4053
@ -42,13 +41,18 @@ public:
} }
void setChannel(uint8_t channel) bool setChannel(uint8_t channel, bool disable = true)
{ {
disable(); if (channel > 1) return false;
if (disable)
{
this->disable();
}
setChannelA(channel); setChannelA(channel);
setChannelB(channel); setChannelB(channel);
setChannelC(channel); setChannelC(channel);
enable(); enable();
return true;
} }

View File

@ -93,10 +93,16 @@ Example multiplexing three times analog in.
- **HC4053(uint8_t A, uint8_t B, uint8_t C, uint8_t enablePin = 255)** constructor. - **HC4053(uint8_t A, uint8_t B, uint8_t C, uint8_t enablePin = 255)** constructor.
Set the three select pins and optional the enable pin. Set the three select pins and optional the enable pin.
If the enablePin == 255 it is considered not used. If the enablePin == 255 it is considered not used.
- **void setChannel(uint8_t channel)** sets A, B and C to channel in one call. - **bool setChannel(uint8_t channel, bool disable = true)** sets A, B and C to channel in one call.
Think of it as a master switch. Think of it as a master switch.
Valid values 0, 1, this value is not checked, only last bit is used. Valid values 0, 1, this value is checked (since 0.2.1).
Note the three channels will not change at the very same moment. Returns false if channel out of range.
Note the three channels will not change at the very same moment,
possibly resulting in an invalid selection for a (very short) time.
The disable flag can be set to false so the device is not disabled during channel switching.
Default the device is disabled during channel switching to prevent (very short) ghost channels.
Note that a call to **setChannel()** will always enable the device again.
Note the device cannot be disabled if there is no enable pin configured.
- **void setChannelA(uint8_t channel)** sets A to channel. - **void setChannelA(uint8_t channel)** sets A to channel.
Valid values 0, 1, this value is not checked, only last bit is used. Valid values 0, 1, this value is not checked, only last bit is used.
- **void setChannelB(uint8_t channel)** sets B to channel. - **void setChannelB(uint8_t channel)** sets B to channel.

View File

@ -2,6 +2,7 @@
// FILE: HC4053_demo.ino // FILE: HC4053_demo.ino
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// PURPOSE: Demo for HC4051 8 channel (simple) multiplexer // PURPOSE: Demo for HC4051 8 channel (simple) multiplexer
// URL: https://github.com/RobTillaart/HC4053
#include "HC4053.h" #include "HC4053.h"

View File

@ -2,6 +2,7 @@
// FILE: HC4053_performance.ino // FILE: HC4053_performance.ino
// AUTHOR: Rob Tillaart // AUTHOR: Rob Tillaart
// PURPOSE: Demo for HC4053 3 x 2 channel (simple) multiplexer // PURPOSE: Demo for HC4053 3 x 2 channel (simple) multiplexer
// URL: https://github.com/RobTillaart/HC4053
#include "HC4053.h" #include "HC4053.h"

View File

@ -6,6 +6,7 @@ HC4053 KEYWORD1
# Methods and Functions (KEYWORD2) # Methods and Functions (KEYWORD2)
setChannel KEYWORD2 setChannel KEYWORD2
getChannel KEYWORD2 getChannel KEYWORD2
enable KEYWORD2 enable KEYWORD2
disable KEYWORD2 disable KEYWORD2
isEnabled KEYWORD2 isEnabled KEYWORD2

View File

@ -15,7 +15,7 @@
"type": "git", "type": "git",
"url": "https://github.com/RobTillaart/HC4053.git" "url": "https://github.com/RobTillaart/HC4053.git"
}, },
"version": "0.2.0", "version": "0.2.1",
"license": "MIT", "license": "MIT",
"frameworks": "*", "frameworks": "*",
"platforms": "*", "platforms": "*",

View File

@ -1,5 +1,5 @@
name=HC4053 name=HC4053
version=0.2.0 version=0.2.1
author=Rob Tillaart <rob.tillaart@gmail.com> author=Rob Tillaart <rob.tillaart@gmail.com>
maintainer=Rob Tillaart <rob.tillaart@gmail.com> maintainer=Rob Tillaart <rob.tillaart@gmail.com>
sentence=Arduino library for a HC4053 3 x 2 channel multiplexer sentence=Arduino library for a HC4053 3 x 2 channel multiplexer