How can I make my LED flashing while executing the rest of the code?
How can I make my LED flashing while executing the rest of the code?
I want to make some LEDs flash while my program executes the rest of the code.
gpio python rpi.gpio
add a comment |
How can I make my LED flashing while executing the rest of the code?
I want to make some LEDs flash while my program executes the rest of the code.
gpio python rpi.gpio
add a comment |
How can I make my LED flashing while executing the rest of the code?
I want to make some LEDs flash while my program executes the rest of the code.
gpio python rpi.gpio
How can I make my LED flashing while executing the rest of the code?
I want to make some LEDs flash while my program executes the rest of the code.
gpio python rpi.gpio
gpio python rpi.gpio
edited Dec 28 '18 at 18:33
Peter Mortensen
1,81511117
1,81511117
asked Dec 28 '18 at 13:57
Andreas PaxihAndreas Paxih
102
102
add a comment |
add a comment |
4 Answers
4
active
oldest
votes
I assume you are talking about the "on-board", or "built-in" LEDs, and not an "add-on" LED being controlled from a GPIO pin. If that's the case, you might try incorporating the following into your code:
For the PWR (power) LED, you can turn it off like this:
echo 0 | sudo tee /sys/class/leds/led1/brightness
turn it on like this:
echo 1 | sudo tee /sys/class/leds/led1/brightness
I am talking about the add on LEDs from GPIO pins, thank you anyway
– Andreas Paxih
Dec 28 '18 at 14:16
2
@AndreasPaxih: OK, there are lots and lots and lots of examples available that show how to do this. Why not pick one, and try it? If you hit a snag, that's what we're here for - what we're NOT here for is to search for information for you. Please take The Tour, and read how to ask a good question
– Seamus
Dec 28 '18 at 14:22
add a comment |
It seems you are looking to execute two parts of your script at the same time. One part is controlling the flashing of the LEDs, and the other part is executing the rest of the code. This can be done with multi threading or multi processing in Python. Look at Python 3 threading — Thread-based parallelism and Python 3 multiprocessing — Process-based parallelism.
add a comment |
It is possible to do what you want without involving either multi threading or multiple separate processes. There are merits to all these other methods of course.
Ok so how do you do it? Well you need to instrument your code to update the blink. It works a bit like implementing a progress bar or logging. So, imagine you have this code.
for item in some_big_list:
process()
Need to become:
for item in some_big_list:
process()
update_progress()
Now its true that this can become tedious, but its not necessarily all that hard. Obviously update_progress() could check a timer from a wall clock, to blink only x seconds if called more frequently or just let it toggle every time it enters.
The benefit of this scheme is that if your main program hangs so does the flashing.
add a comment |
I STRONGLY suggest you don't do threading unless you're coding often or plan to put a lot of time into learning about the potential pitfalls and how to avoid them ... it's pretty much the fastest way to get a program with unreliable behaviour if you don't know what you're doing.
I would suggest you have a separate script that does the flashing; which you can then control from your other script... It's very much like threading, but because the memory isn't shared you're not going to find yourself having to debug issues you can't reproduce.
1
It's more multiprocessing.
– Ingo
Dec 28 '18 at 18:07
3
How will you become familiar with multithreaded programming if you don't ever try it? I'd give the opposite advice - if you're using a language that supports threading, try spawning a background thread to do the flashing.
– Johnny
Dec 28 '18 at 18:18
1
I would love to start learning new things, but I already have many problems with the export of the program because I want to export it as an apk and the buildozer can't be executed correctly
– Andreas Paxih
Dec 28 '18 at 18:31
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
return StackExchange.using("schematics", function () {
StackExchange.schematics.init();
});
}, "cicuitlab");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "447"
};
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');
});
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%2fraspberrypi.stackexchange.com%2fquestions%2f92343%2fhow-can-i-make-my-led-flashing-while-executing-the-rest-of-the-code%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
4 Answers
4
active
oldest
votes
4 Answers
4
active
oldest
votes
active
oldest
votes
active
oldest
votes
I assume you are talking about the "on-board", or "built-in" LEDs, and not an "add-on" LED being controlled from a GPIO pin. If that's the case, you might try incorporating the following into your code:
For the PWR (power) LED, you can turn it off like this:
echo 0 | sudo tee /sys/class/leds/led1/brightness
turn it on like this:
echo 1 | sudo tee /sys/class/leds/led1/brightness
I am talking about the add on LEDs from GPIO pins, thank you anyway
– Andreas Paxih
Dec 28 '18 at 14:16
2
@AndreasPaxih: OK, there are lots and lots and lots of examples available that show how to do this. Why not pick one, and try it? If you hit a snag, that's what we're here for - what we're NOT here for is to search for information for you. Please take The Tour, and read how to ask a good question
– Seamus
Dec 28 '18 at 14:22
add a comment |
I assume you are talking about the "on-board", or "built-in" LEDs, and not an "add-on" LED being controlled from a GPIO pin. If that's the case, you might try incorporating the following into your code:
For the PWR (power) LED, you can turn it off like this:
echo 0 | sudo tee /sys/class/leds/led1/brightness
turn it on like this:
echo 1 | sudo tee /sys/class/leds/led1/brightness
I am talking about the add on LEDs from GPIO pins, thank you anyway
– Andreas Paxih
Dec 28 '18 at 14:16
2
@AndreasPaxih: OK, there are lots and lots and lots of examples available that show how to do this. Why not pick one, and try it? If you hit a snag, that's what we're here for - what we're NOT here for is to search for information for you. Please take The Tour, and read how to ask a good question
– Seamus
Dec 28 '18 at 14:22
add a comment |
I assume you are talking about the "on-board", or "built-in" LEDs, and not an "add-on" LED being controlled from a GPIO pin. If that's the case, you might try incorporating the following into your code:
For the PWR (power) LED, you can turn it off like this:
echo 0 | sudo tee /sys/class/leds/led1/brightness
turn it on like this:
echo 1 | sudo tee /sys/class/leds/led1/brightness
I assume you are talking about the "on-board", or "built-in" LEDs, and not an "add-on" LED being controlled from a GPIO pin. If that's the case, you might try incorporating the following into your code:
For the PWR (power) LED, you can turn it off like this:
echo 0 | sudo tee /sys/class/leds/led1/brightness
turn it on like this:
echo 1 | sudo tee /sys/class/leds/led1/brightness
answered Dec 28 '18 at 14:14
SeamusSeamus
2,191220
2,191220
I am talking about the add on LEDs from GPIO pins, thank you anyway
– Andreas Paxih
Dec 28 '18 at 14:16
2
@AndreasPaxih: OK, there are lots and lots and lots of examples available that show how to do this. Why not pick one, and try it? If you hit a snag, that's what we're here for - what we're NOT here for is to search for information for you. Please take The Tour, and read how to ask a good question
– Seamus
Dec 28 '18 at 14:22
add a comment |
I am talking about the add on LEDs from GPIO pins, thank you anyway
– Andreas Paxih
Dec 28 '18 at 14:16
2
@AndreasPaxih: OK, there are lots and lots and lots of examples available that show how to do this. Why not pick one, and try it? If you hit a snag, that's what we're here for - what we're NOT here for is to search for information for you. Please take The Tour, and read how to ask a good question
– Seamus
Dec 28 '18 at 14:22
I am talking about the add on LEDs from GPIO pins, thank you anyway
– Andreas Paxih
Dec 28 '18 at 14:16
I am talking about the add on LEDs from GPIO pins, thank you anyway
– Andreas Paxih
Dec 28 '18 at 14:16
2
2
@AndreasPaxih: OK, there are lots and lots and lots of examples available that show how to do this. Why not pick one, and try it? If you hit a snag, that's what we're here for - what we're NOT here for is to search for information for you. Please take The Tour, and read how to ask a good question
– Seamus
Dec 28 '18 at 14:22
@AndreasPaxih: OK, there are lots and lots and lots of examples available that show how to do this. Why not pick one, and try it? If you hit a snag, that's what we're here for - what we're NOT here for is to search for information for you. Please take The Tour, and read how to ask a good question
– Seamus
Dec 28 '18 at 14:22
add a comment |
It seems you are looking to execute two parts of your script at the same time. One part is controlling the flashing of the LEDs, and the other part is executing the rest of the code. This can be done with multi threading or multi processing in Python. Look at Python 3 threading — Thread-based parallelism and Python 3 multiprocessing — Process-based parallelism.
add a comment |
It seems you are looking to execute two parts of your script at the same time. One part is controlling the flashing of the LEDs, and the other part is executing the rest of the code. This can be done with multi threading or multi processing in Python. Look at Python 3 threading — Thread-based parallelism and Python 3 multiprocessing — Process-based parallelism.
add a comment |
It seems you are looking to execute two parts of your script at the same time. One part is controlling the flashing of the LEDs, and the other part is executing the rest of the code. This can be done with multi threading or multi processing in Python. Look at Python 3 threading — Thread-based parallelism and Python 3 multiprocessing — Process-based parallelism.
It seems you are looking to execute two parts of your script at the same time. One part is controlling the flashing of the LEDs, and the other part is executing the rest of the code. This can be done with multi threading or multi processing in Python. Look at Python 3 threading — Thread-based parallelism and Python 3 multiprocessing — Process-based parallelism.
edited Dec 28 '18 at 17:57
Peter Mortensen
1,81511117
1,81511117
answered Dec 28 '18 at 15:05
IngoIngo
6,2372638
6,2372638
add a comment |
add a comment |
It is possible to do what you want without involving either multi threading or multiple separate processes. There are merits to all these other methods of course.
Ok so how do you do it? Well you need to instrument your code to update the blink. It works a bit like implementing a progress bar or logging. So, imagine you have this code.
for item in some_big_list:
process()
Need to become:
for item in some_big_list:
process()
update_progress()
Now its true that this can become tedious, but its not necessarily all that hard. Obviously update_progress() could check a timer from a wall clock, to blink only x seconds if called more frequently or just let it toggle every time it enters.
The benefit of this scheme is that if your main program hangs so does the flashing.
add a comment |
It is possible to do what you want without involving either multi threading or multiple separate processes. There are merits to all these other methods of course.
Ok so how do you do it? Well you need to instrument your code to update the blink. It works a bit like implementing a progress bar or logging. So, imagine you have this code.
for item in some_big_list:
process()
Need to become:
for item in some_big_list:
process()
update_progress()
Now its true that this can become tedious, but its not necessarily all that hard. Obviously update_progress() could check a timer from a wall clock, to blink only x seconds if called more frequently or just let it toggle every time it enters.
The benefit of this scheme is that if your main program hangs so does the flashing.
add a comment |
It is possible to do what you want without involving either multi threading or multiple separate processes. There are merits to all these other methods of course.
Ok so how do you do it? Well you need to instrument your code to update the blink. It works a bit like implementing a progress bar or logging. So, imagine you have this code.
for item in some_big_list:
process()
Need to become:
for item in some_big_list:
process()
update_progress()
Now its true that this can become tedious, but its not necessarily all that hard. Obviously update_progress() could check a timer from a wall clock, to blink only x seconds if called more frequently or just let it toggle every time it enters.
The benefit of this scheme is that if your main program hangs so does the flashing.
It is possible to do what you want without involving either multi threading or multiple separate processes. There are merits to all these other methods of course.
Ok so how do you do it? Well you need to instrument your code to update the blink. It works a bit like implementing a progress bar or logging. So, imagine you have this code.
for item in some_big_list:
process()
Need to become:
for item in some_big_list:
process()
update_progress()
Now its true that this can become tedious, but its not necessarily all that hard. Obviously update_progress() could check a timer from a wall clock, to blink only x seconds if called more frequently or just let it toggle every time it enters.
The benefit of this scheme is that if your main program hangs so does the flashing.
edited Dec 28 '18 at 19:11
answered Dec 28 '18 at 18:53
joojaajoojaa
1113
1113
add a comment |
add a comment |
I STRONGLY suggest you don't do threading unless you're coding often or plan to put a lot of time into learning about the potential pitfalls and how to avoid them ... it's pretty much the fastest way to get a program with unreliable behaviour if you don't know what you're doing.
I would suggest you have a separate script that does the flashing; which you can then control from your other script... It's very much like threading, but because the memory isn't shared you're not going to find yourself having to debug issues you can't reproduce.
1
It's more multiprocessing.
– Ingo
Dec 28 '18 at 18:07
3
How will you become familiar with multithreaded programming if you don't ever try it? I'd give the opposite advice - if you're using a language that supports threading, try spawning a background thread to do the flashing.
– Johnny
Dec 28 '18 at 18:18
1
I would love to start learning new things, but I already have many problems with the export of the program because I want to export it as an apk and the buildozer can't be executed correctly
– Andreas Paxih
Dec 28 '18 at 18:31
add a comment |
I STRONGLY suggest you don't do threading unless you're coding often or plan to put a lot of time into learning about the potential pitfalls and how to avoid them ... it's pretty much the fastest way to get a program with unreliable behaviour if you don't know what you're doing.
I would suggest you have a separate script that does the flashing; which you can then control from your other script... It's very much like threading, but because the memory isn't shared you're not going to find yourself having to debug issues you can't reproduce.
1
It's more multiprocessing.
– Ingo
Dec 28 '18 at 18:07
3
How will you become familiar with multithreaded programming if you don't ever try it? I'd give the opposite advice - if you're using a language that supports threading, try spawning a background thread to do the flashing.
– Johnny
Dec 28 '18 at 18:18
1
I would love to start learning new things, but I already have many problems with the export of the program because I want to export it as an apk and the buildozer can't be executed correctly
– Andreas Paxih
Dec 28 '18 at 18:31
add a comment |
I STRONGLY suggest you don't do threading unless you're coding often or plan to put a lot of time into learning about the potential pitfalls and how to avoid them ... it's pretty much the fastest way to get a program with unreliable behaviour if you don't know what you're doing.
I would suggest you have a separate script that does the flashing; which you can then control from your other script... It's very much like threading, but because the memory isn't shared you're not going to find yourself having to debug issues you can't reproduce.
I STRONGLY suggest you don't do threading unless you're coding often or plan to put a lot of time into learning about the potential pitfalls and how to avoid them ... it's pretty much the fastest way to get a program with unreliable behaviour if you don't know what you're doing.
I would suggest you have a separate script that does the flashing; which you can then control from your other script... It's very much like threading, but because the memory isn't shared you're not going to find yourself having to debug issues you can't reproduce.
answered Dec 28 '18 at 17:31
UKMonkeyUKMonkey
1092
1092
1
It's more multiprocessing.
– Ingo
Dec 28 '18 at 18:07
3
How will you become familiar with multithreaded programming if you don't ever try it? I'd give the opposite advice - if you're using a language that supports threading, try spawning a background thread to do the flashing.
– Johnny
Dec 28 '18 at 18:18
1
I would love to start learning new things, but I already have many problems with the export of the program because I want to export it as an apk and the buildozer can't be executed correctly
– Andreas Paxih
Dec 28 '18 at 18:31
add a comment |
1
It's more multiprocessing.
– Ingo
Dec 28 '18 at 18:07
3
How will you become familiar with multithreaded programming if you don't ever try it? I'd give the opposite advice - if you're using a language that supports threading, try spawning a background thread to do the flashing.
– Johnny
Dec 28 '18 at 18:18
1
I would love to start learning new things, but I already have many problems with the export of the program because I want to export it as an apk and the buildozer can't be executed correctly
– Andreas Paxih
Dec 28 '18 at 18:31
1
1
It's more multiprocessing.
– Ingo
Dec 28 '18 at 18:07
It's more multiprocessing.
– Ingo
Dec 28 '18 at 18:07
3
3
How will you become familiar with multithreaded programming if you don't ever try it? I'd give the opposite advice - if you're using a language that supports threading, try spawning a background thread to do the flashing.
– Johnny
Dec 28 '18 at 18:18
How will you become familiar with multithreaded programming if you don't ever try it? I'd give the opposite advice - if you're using a language that supports threading, try spawning a background thread to do the flashing.
– Johnny
Dec 28 '18 at 18:18
1
1
I would love to start learning new things, but I already have many problems with the export of the program because I want to export it as an apk and the buildozer can't be executed correctly
– Andreas Paxih
Dec 28 '18 at 18:31
I would love to start learning new things, but I already have many problems with the export of the program because I want to export it as an apk and the buildozer can't be executed correctly
– Andreas Paxih
Dec 28 '18 at 18:31
add a comment |
Thanks for contributing an answer to Raspberry Pi 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.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
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%2fraspberrypi.stackexchange.com%2fquestions%2f92343%2fhow-can-i-make-my-led-flashing-while-executing-the-rest-of-the-code%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');
});
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');
});
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');
});
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