Control the RGB tape with only one output of the microcontroller
$begingroup$
I need to control the colors of an RGB ribbon. This requires 3 PWMs. But I have only one output of my microcontroller available. So for this I need to find a circuit that stays between the microcontroller and the RGB tape that allows me to change the colors receiving only a signal from the microcontroller (as in the image) I thought of an analog converter for PWM but I do not know how to do it or if it is possible.
simulate this circuit – Schematic created using CircuitLab
microcontroller led pwm rgb
$endgroup$
add a comment |
$begingroup$
I need to control the colors of an RGB ribbon. This requires 3 PWMs. But I have only one output of my microcontroller available. So for this I need to find a circuit that stays between the microcontroller and the RGB tape that allows me to change the colors receiving only a signal from the microcontroller (as in the image) I thought of an analog converter for PWM but I do not know how to do it or if it is possible.
simulate this circuit – Schematic created using CircuitLab
microcontroller led pwm rgb
$endgroup$
3
$begingroup$
(Asynchronous) serial communication will do.
$endgroup$
– Eugene Sh.
1 hour ago
add a comment |
$begingroup$
I need to control the colors of an RGB ribbon. This requires 3 PWMs. But I have only one output of my microcontroller available. So for this I need to find a circuit that stays between the microcontroller and the RGB tape that allows me to change the colors receiving only a signal from the microcontroller (as in the image) I thought of an analog converter for PWM but I do not know how to do it or if it is possible.
simulate this circuit – Schematic created using CircuitLab
microcontroller led pwm rgb
$endgroup$
I need to control the colors of an RGB ribbon. This requires 3 PWMs. But I have only one output of my microcontroller available. So for this I need to find a circuit that stays between the microcontroller and the RGB tape that allows me to change the colors receiving only a signal from the microcontroller (as in the image) I thought of an analog converter for PWM but I do not know how to do it or if it is possible.
simulate this circuit – Schematic created using CircuitLab
microcontroller led pwm rgb
microcontroller led pwm rgb
asked 1 hour ago
Eduardo CardosoEduardo Cardoso
277112
277112
3
$begingroup$
(Asynchronous) serial communication will do.
$endgroup$
– Eugene Sh.
1 hour ago
add a comment |
3
$begingroup$
(Asynchronous) serial communication will do.
$endgroup$
– Eugene Sh.
1 hour ago
3
3
$begingroup$
(Asynchronous) serial communication will do.
$endgroup$
– Eugene Sh.
1 hour ago
$begingroup$
(Asynchronous) serial communication will do.
$endgroup$
– Eugene Sh.
1 hour ago
add a comment |
2 Answers
2
active
oldest
votes
$begingroup$
Use another microcontroller as your "intermediate circuit". Use the TX of a UART on your original microcontroller to send text commands to the RX pin of the new microcontroller. Define commands that set the PWM parameters for each channel. Program the new microcontroller to parse the commands and generate the PWM signals.
$endgroup$
$begingroup$
That's rather excessive and invokes unnecessary development when there are fixed function I2C, SPI, and unique interface solutions for this.
$endgroup$
– Chris Stratton
1 min ago
add a comment |
$begingroup$
Go with led driver like WS2801 with external power switches. With which you will get very fine control over your strip.
$endgroup$
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("mathjaxEditing", function () {
StackExchange.MarkdownEditor.creationCallbacks.add(function (editor, postfix) {
StackExchange.mathjaxEditing.prepareWmdForMathJax(editor, postfix, [["\$", "\$"]]);
});
});
}, "mathjax-editing");
StackExchange.ifUsing("editor", function () {
return StackExchange.using("schematics", function () {
StackExchange.schematics.init();
});
}, "cicuitlab");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "135"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: false,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: null,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f417316%2fcontrol-the-rgb-tape-with-only-one-output-of-the-microcontroller%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
$begingroup$
Use another microcontroller as your "intermediate circuit". Use the TX of a UART on your original microcontroller to send text commands to the RX pin of the new microcontroller. Define commands that set the PWM parameters for each channel. Program the new microcontroller to parse the commands and generate the PWM signals.
$endgroup$
$begingroup$
That's rather excessive and invokes unnecessary development when there are fixed function I2C, SPI, and unique interface solutions for this.
$endgroup$
– Chris Stratton
1 min ago
add a comment |
$begingroup$
Use another microcontroller as your "intermediate circuit". Use the TX of a UART on your original microcontroller to send text commands to the RX pin of the new microcontroller. Define commands that set the PWM parameters for each channel. Program the new microcontroller to parse the commands and generate the PWM signals.
$endgroup$
$begingroup$
That's rather excessive and invokes unnecessary development when there are fixed function I2C, SPI, and unique interface solutions for this.
$endgroup$
– Chris Stratton
1 min ago
add a comment |
$begingroup$
Use another microcontroller as your "intermediate circuit". Use the TX of a UART on your original microcontroller to send text commands to the RX pin of the new microcontroller. Define commands that set the PWM parameters for each channel. Program the new microcontroller to parse the commands and generate the PWM signals.
$endgroup$
Use another microcontroller as your "intermediate circuit". Use the TX of a UART on your original microcontroller to send text commands to the RX pin of the new microcontroller. Define commands that set the PWM parameters for each channel. Program the new microcontroller to parse the commands and generate the PWM signals.
answered 1 hour ago
Elliot AldersonElliot Alderson
5,46111018
5,46111018
$begingroup$
That's rather excessive and invokes unnecessary development when there are fixed function I2C, SPI, and unique interface solutions for this.
$endgroup$
– Chris Stratton
1 min ago
add a comment |
$begingroup$
That's rather excessive and invokes unnecessary development when there are fixed function I2C, SPI, and unique interface solutions for this.
$endgroup$
– Chris Stratton
1 min ago
$begingroup$
That's rather excessive and invokes unnecessary development when there are fixed function I2C, SPI, and unique interface solutions for this.
$endgroup$
– Chris Stratton
1 min ago
$begingroup$
That's rather excessive and invokes unnecessary development when there are fixed function I2C, SPI, and unique interface solutions for this.
$endgroup$
– Chris Stratton
1 min ago
add a comment |
$begingroup$
Go with led driver like WS2801 with external power switches. With which you will get very fine control over your strip.
$endgroup$
add a comment |
$begingroup$
Go with led driver like WS2801 with external power switches. With which you will get very fine control over your strip.
$endgroup$
add a comment |
$begingroup$
Go with led driver like WS2801 with external power switches. With which you will get very fine control over your strip.
$endgroup$
Go with led driver like WS2801 with external power switches. With which you will get very fine control over your strip.
answered 50 mins ago
ElectronElectron
1,180213
1,180213
add a comment |
add a comment |
Thanks for contributing an answer to Electrical Engineering Stack Exchange!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
Use MathJax to format equations. MathJax reference.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2felectronics.stackexchange.com%2fquestions%2f417316%2fcontrol-the-rgb-tape-with-only-one-output-of-the-microcontroller%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
var $window = $(window),
onScroll = function(e) {
var $elem = $('.new-login-left'),
docViewTop = $window.scrollTop(),
docViewBottom = docViewTop + $window.height(),
elemTop = $elem.offset().top,
elemBottom = elemTop + $elem.height();
if ((docViewTop elemBottom)) {
StackExchange.using('gps', function() { StackExchange.gps.track('embedded_signup_form.view', { location: 'question_page' }); });
$window.unbind('scroll', onScroll);
}
};
$window.on('scroll', onScroll);
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
3
$begingroup$
(Asynchronous) serial communication will do.
$endgroup$
– Eugene Sh.
1 hour ago