Comment Programmer Un Bandeau Led / Led Strip Programmable Via Tinkercad
by MyDmoov in Circuits > Arduino
2557 Views, 5 Favorites, 0 Comments
Comment Programmer Un Bandeau Led / Led Strip Programmable Via Tinkercad
Comment programmer une bande de strip led pour en faire une décoration , des leds pour le gaming et encore pleins d'autres choses !
How to program a strip of led strips to make it a decoration, leds for gaming and many other things!
Supplies
Il vous suffit juste d'un ordinateur avec une connexion internet pour ce tutoriel.
All you need is a computer with an internet connection for this tutorial.
Pour cela une fois connectée à internet rendez vous sur le site de Tinkercad . Une fois dessus rendez vous sur votre tableau de bords !
Cliquer sur +Création
Ensuite choisissez circuit
Suivez les photos si vous avez la version anglaise. Les boutons sont au même endroit !
To do this, once connected to the internet, go to the Tinkercad site. Once on it, go to your dashboard!
Click on +Create
Then choose circuit
Follow the pictures if you have the English version. The buttons are in the same place!
Une fois cliquez vous atterrissez sur le tableau de bord de création d'électronique !
Nous allons voir ce qu'il faut utiliser comme matériels. :)
Once clicked you land on the electronics creation dashboard!
We will see what to use as materials. :)
Nous allons d'abord ajouter une Arduino Uno R3
Pour ajouter des composant vous avez un panneau de composant à droite de l'écran. En sélectionnant tous , vous avez accès à plus de composants !
First we will add an Arduino Uno R3
To add components you have a component panel on the right side of the screen. By selecting all, you have access to more components!
Ensuite nous ajoutons la bande de strip led que nous voulons programmer ! J'en ai pris une droit mais vous pouvez prendre celle qui vous plait pour le faire ! Celle ronde ? ou encore les en lignes comme moi ! Le nombre importe peu je vais vous montrer comment les contrôler par la programmation !
Then we add the led strip strip that we want to program! I took one right but you can take whichever you like to do it! The round one? or the online ones like me! The number does not matter I will show you how to control them by programming!
Avant de s'attaquer à la programmation nous allons faire ce qu'on appelle le montage électronique : Relier les composant les uns au autres.
Pour brancher la bande de strip led , respecter le code couleur au début en électronique ca aide à bien comprendre.
- Relier le 5v de la bande au 5v de l'arduino Uno R3
- Relier le GND de la bande à un des GND de l'arduino Uno R3
- Relier le DIN ( information ) de la bande au pin de votre choix sur l'arduino Uno R3. J'ai choisis le pin 2 dans mon cas.
Before tackling the programming we will do what is called electronic assembly: Connecting the components to each other.
To connect the led strip strip, respect the color code at the beginning in electronics, it helps to understand.
- Connect the 5v from the strip to the 5v from the Arduino Uno R3
- Connect the GND of the strip to one of the GNDs of the Arduino Uno R3
- Connect the DIN (information) of the strip to the pin of your choice on the Arduino Uno R3. I chose pin 2 in my case.
Un fois la bande strip led relier à l'arduino , nous allons passer à la partie code ! Celle que je préfère <3 !
Pour cela rendez vous dans l'onglet à droite de votre code ( suivez les photos si besoins ) !
Une fois cliez vous avez une fenêtre qui s'ouvre , nous allons sélectionner le code Texte . Le site vous demander si vous êtes sur de vouloir passer en mode texte brute n'hésitez pas à répondre oui ! La programmation va être la partie la plus simple je vous assure ! :p
A droite enlever tout ce qui est écris pour avoir un espace de traitement de texte vide !
Once the strip led strip is connected to the arduino, we will move on to the code part! My favorite <3!
To do this, go to the tab to the right of your code (follow the photos if necessary)!
Once clicked you have a window that opens, we will select the Text code. The site will ask you if you are sure you want to switch to plain text mode, do not hesitate to answer yes! The programming is going to be the easiest part I assure you! :p
On the right remove everything that is written to have an empty word processing space!
L'explication du code partie par partie .
Pour écrire un code pour les strip led nous avons besoins de quelques fonctions , paramètres et autres . Rentrons dans le vif du sujets !
The explanation of the code part by part.
To write code for strip leds we need some functions, parameters and others. Let's get to the heart of the matter!
Etape 1 Code :
Déclarer la bibliothéque utilisée :
Qu'est ce qu'une bibliothèque : Une bibliothèque est un ensemble de fonctions utilitaires, regroupées et mises à disposition des utilisateurs de l'environnement Arduino afin de ne pas avoir à réécrire des programmes parfois complexes. Les fonctions sont regroupées selon leur appartenance à un même domaine conceptuel (mathématique, graphique, tris, etc.).
Quand je met des // cela signifie que tout ce qui se trouve derrière est un commentaire. Il sert à mieux comprendre le code et se faire des notes de rappel.
Pour inclure une librairie on va utiliser la fonction "include" en mettant entre <...> le nom de la bibliothéque utilisée.
#include <Adafruit_NeoPixel.h> // appel de la bibliothèque
Step 1 Code:
Declare the library used:
What is a library: A library is a set of utility functions, grouped together and made available to users of the Arduino environment so that they do not have to rewrite sometimes complex programs. The functions are grouped according to their belonging to the same conceptual domain (mathematics, graphics, sorting, etc.).
When I put // it means that whatever is behind it is a comment. It is used to better understand the code and to make reminder notes.
To include a library we will use the "include" function by putting between <...> the name of the library used.
#include <Adafruit_NeoPixel.h> // appel de la bibliothèque
Etape 2 Code :
Déclarer le pin utilisée :
Qu'est ce qu'un pin : C'est le numéro sur lequel vous allez brancher votre câble d'information le ( DIN ) sur l'arduino Uno R3
Pour définir le pin branché nous utilisons la fonction "define" on peut la nommer comme on veut, c'est une variable.
J'ai décider de la nommer 'sortie' dans mon cas ! et j'ai mis un '2' juste après pour assigner le nom 'sortie' au numéro '2' de la carte Arduino Uno R3.
#define sortie 2 // affectation du pin
Si vous aviez choisie de le brancher sur le numéro 5 et de l'appeler Led_Exit il aurais fallu écrire :
Vous pouvez les nommer comme vous voulez il faut juste respecter les majuscules ou minuscule ! Et pas de nom avec espace !
#define Led_Exit 5 // affectation du pin
Step 2 Code:
Declare the pin used:
What is a pin: This is the number on which you will connect your information cable (DIN) on the Arduino Uno R3
To define the connected pin we use the "define" function we can name it as we want, it is a variable.
I decided to call it 'exit' in my case! and I put a '2' right after it to assign the 'output' name to the number '2' of the Arduino Uno R3 board.
#define sortie 2 // affectation du pin
If you had chosen to plug it into number 5 and call it Led_Exit you would have had to write:
You can name them whatever you want, just respect the upper or lower case letters! And no name with space!
#define Led_Exit 5 // affectation du pin
Etape 3 Code :
Déclarer le nombre de led utilisée :
Votre bande led peut avoir un nombre de led par mètre définis ! Dans mon cas j'ai choisis le composant à 6 leds mais vous pouvez choisir celui de votre choix ! 6 ? 8 ? 12 ? Etc !
Pour définir le nombre de led nous utilisons la fonction "define" encore une fois, mais cette fois ci nommer la autrement. Par exemple dans mon cas j'ai mis 'nb_led' ( qui signifie nombre de led pour moi )
Ensuite j'ai mis le chiffre '6' car ma bande à 6 leds !
#define nb_led 6 // Nombre de leds
Step 3 Code:
Declare the number of LEDs used:
Your led strip can have a defined number of leds per meter! In my case I chose the component with 6 leds but you can choose the one of your choice! 6? 8? 12? Etc !
To define the number of leds we use the "define" function again, but this time name it differently. For example in my case I put 'nb_led' (which means number of leds for me)
Then I put the number '6' because my strip has 6 leds!
#define nb_led 6 // Nombre de leds
Etape 4 Code :
Déclarer l'objet utilisé :
Qu'est ce qu'un objet : Un objet est assimilé à une variable qui va prendre plusieurs paramètres.
Qu'est ce qu'une variable : Élément qui peut prendre des valeurs différentes à l'intérieur d'un ensemble, d'un système, d'une relation.
Pour définir l'objet . Nous allons déjà lui trouvez un nom dans mon cas ce sera le nom : 'module' .
Une fois le nom trouver nous allons juste respecter la norme d'objet de la librairie et y changer nos informations importante déjà crée !
Adafruit_NeoPixel Nom_choisis = Adafruit_NeoPixel(nombre_de_led, Sortie, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel module = Adafruit_NeoPixel(nb_led, sortie, NEO_GRB + NEO_KHZ800); // Création de l'objet module
Step 4 Code:
Declare the object used:
What is an object: An object is assimilated to a variable which will take several parameters.
What is a variable: Element that can take on different values within a set, a system, a relationship.
To define the object. We are already going to find a name for it in my case it will be the name: 'module' .
Once the name is found we will just respect the object standard of the library and change our important information already created!
Adafruit_NeoPixel Name_chosen = Adafruit_NeoPixel(number_of_led, Output, NEO_GRB + NEO_KHZ800);
Adafruit_NeoPixel module = Adafruit_NeoPixel(nb_led, sortie, NEO_GRB + NEO_KHZ800); // Création de l'objet module
Uns fois tout ça fait ! Nous allons rentrer dans les deux grosses partie d'un programme Arduino !
Etape 5 Code :
L'arduino ( le programme logiciel ) est souvent constituer de deux grosse partie. On peut rajouter des paramètres avant ces deux partie comme on vient de le voir. Mais nos deux grosse partie reste toujours présente avec ou sans paramètres au-dessus!
Nous avons la première partie qui est :
Le Setup explication :
Les accolades indiquent le début et la fin de la fonction.
Toutes les commandes doivent donc être placées entre elles.
Si vous supprimez ou placez accidentellement une accolade supplémentaire, vous obtiendrez une erreur lors de la compilation.
La procédure void setup n’est appelée qu’une seule fois et sert à affecter le mode aux broches ou aux commandes qui doivent être exécutées uniquement au moment du chargement du programme.
void setup() { }
Once all done! We are going to get into the two big parts of an Arduino program!
Step 5 Code:
The arduino (the software program) is often made up of two big parts. We can add parameters before these two parts as we have just seen. But our two big parts are always present with or without parameters above!
We have the first part which is:
Setup explanation:
Braces indicate the start and end of the function.
All commands must therefore be placed between them.
If you accidentally remove or place an extra brace, you'll get an error when compiling.
The void setup procedure is only called once and is used to assign the mode to pins or commands that should be executed only at program load time.
void setup() { }
Etape 6 Code :
Dans notre void setup nous allons initialiser notre objet.
Initialiser l'objet utilisé :
qu'est ce que l'initialisation : Lancer le bon démarrage de l'objet crée.
Pour initialiser l'objet utiliser nous allons nous servir de la fonction ".begin" .
module.begin();// initialisation de module
Ce qui donne avec le void setup :
void setup() { module.begin();// initialisation de module }
Step 6 Code:
In our void setup we will initialize our object.
Initialize the object used:
what is the initialization: Launch the good start of the created object.
To initialize the object to use, we will use the ".begin" function.
module.begin();// initialisation de module
Which gives with the void setup:
void setup() { module.begin();// initialisation de module }
Etape 7 Code :
Nous allons entamer la deuxième partie ( des deux grandes parties ) qui est :
Le void loop explication :
Après avoir exécuté le cycle de configuration, le programme entre dans une boucle ( loop) , qui se répète tant que la carte est sous tension.
Si la boucle contient une seule instruction, elle sera exécutée des milliers de fois par seconde.
void loop() { }
Step 7 Code:
We are going to start the second part (of the two main parts) which is:
The void loop explanation
After executing the configuration cycle, the program enters a loop, which repeats as long as the board is powered on.
If the loop contains a single instruction, it will be executed thousands of times per second.
void loop() { }
Etape 8 Code :
Dans notre void loop nous allons en premier lieu utiliser une boucle 'for'
Qu'est ce qu'une boucle for :
La boucle for est une structure de contrôle de programmation qui permet de répéter l'exécution d'une séquence d'instructions.
Pour vous expliquer dans l'exemple qui suit :
for(int i=0;i<6;i++) //boucle for { }
Nous commençons par la boucle "for" ensuite nous allons utiliser le paramètre 'int' qui sert à déclarer une variable que nous allons appeler 'i' . Ici 'i' représente les leds. On va dire que i=0 de la led numéro 0 , la première sur notre bande. i<6 donc jusqu'à la led numéro 5 vu qu'on à utiliser le terme inferieur à 6 donc 5. , la sixième led de la bande . et i++ nous allons allumer chaque led , led par led avec le i++.
Si vous avez du mal à comprendre qu'elle led sont viser par le 0 ou le 6 regarder le schéma en image !
Une fois led led sur lesquels ont veut travailler définis. On va mettre entre les crochets les actions qu'elles vont effectuer !
Step 8 Code:
In our void loop we will first use a 'for' loop
What is a for loop:
The for loop is a programming control structure that allows the execution of a sequence of instructions to be repeated.
To explain in the following example:
for(int i=0;i<6;i++) //boucle for { }
We start with the "for" loop then we will use the 'int' parameter which is used to declare a variable that we will call 'i' . Here 'i' represents the leds. We will say that i=0 of led number 0 , the first on our strip. i<6 so up to led number 5 since we use the term lower than 6 so 5. , the sixth led of the strip. and i++ we will light each led , led by led with the i++.
If you have trouble understanding that the LEDs are aimed at 0 or 6, look at the picture diagram!
Once led led on which we want to work defined. We will put between the brackets the actions they will perform!
Etape 9 Code :
Première chose à mettre dans notre accolade. La fonction qui va nous permettre de définir la couleur !
En l'occurrence dans l'exemple ci dessous j'ai choisis le bleu !
module.setPixelColor(i,0,0,255); //bleu
Pour ce faire en vous expliquant il faut dans un premier temps reprendre notre objet crée donc module dans notre cas . mettre un " . " pour lui assigner la fonction qui va suivre. Et là utiliser la fonction déjà crée dans la bibliothéque qu'on à importer.
La fonction setPixelColor . Attitrés une color au pixel donc au led ! dans cette fonction nous reprenons le " i" pour dire qu'on parle de nos led et pour choisir les couleurs nous allons avoir trois paramètres 0 , 0 , 0 - R , G , B .
chaque nombre entre virgule va avoir des chiffres compris entres 1 et 255 pour dire a quel point on veut la couleur .
Si vous cherche une couleur précise vous pouvez utiliser des sites de référencement pour avoir vos couleurs choisis : site exemple de couleur :
Pour le bleu tout simple je met R , G , B - le rouge à 0 , le vert à 0 et le bleu à 255 . ce qui donne 0, 0 , 255 comme dans l'exemple.
Step 9 Code:
First thing to put in our hug. The function that will allow us to define the color!
In this case in the example below I chose blue!
module.setPixelColor(i,0,0,255); //blue
To do this by explaining to you, we must first resume our object created, so module in our case. put a ". " to assign it the function that will follow. And then use the function already created in the library that you want to import.
The setPixelColor function. Assigned a color to the pixel so to the led! in this function we use the "i" to say that we are talking about our leds and to choose the colors we will have three parameters 0, 0, 0 - R, G, B.
each number between commas will have digits between 1 and 255 to say how much we want the color.
If you are looking for a specific color you can use referencing sites to have your colors chosen: site example of color:
For simple blue I set R , G , B - red to 0 , green to 0 and blue to 255 . which gives 0, 0, 255 as in the example.
Etape 10 Code :
Suite à notre choix de couleurs nous allons maintenant dire à notre programme que nous voulons afficher notre choix de couleur. La fonction show() sert à afficher ce qu'on a demander une ligne au-dessus. Ca permet de visualiser vraiment ce qu'on a écris dans notre programme.
Encore une fois nous penon notre objet ( module ) pour lui assigner la fonction d'affichage !
module.show(); // affichage
Une fois l'affichage mis il nous reste plus qu'a rajouter un délais !
Step 10 Code:
Following our choice of colors we will now tell our program that we want to display our color choice. The show() function is used to display what we asked for a line above. It allows us to really visualize what we have written in our program.
Once again we penon our object ( module ) to assign the display function to it!
module.show(); // affichage
Once the display is on, all we have to do is add a delay!
Etape 11 Code :
Pour mettre un délais nous utilisons la fonction delay qui va prendre comme paramètre dans les parenthèse le temps en millisecondes. donc notre exemple 1000 ms qui représente 1 secondes.
delay (1000); // délais
En finalité nous aurons donc avec notre boucle for ce code là :
for(int i=0;i<6;i++) { module.setPixelColor(i,0,0,255); //bleu module.show(); // affichage delay (100); // delais }
Step 11 Code:
To put a delay we use the delay function which will take as a parameter in the brackets the time in milliseconds. so our example 1000 ms which represents 1 seconds.
delay (1000); // délais
In the end, we will therefore have this code with our for loop:
for(int i=0;i<6;i++) { module.setPixelColor(i,0,0,255); //bleu module.show(); // affichage delay (100); // delais }
Etape 12 Code :
Une couleur n'est pas suffisante ! Pour notre exemple nous allons faire deux couleur qui se suivent j'ai choisis le bleu et le vert . Pour le bleu on a vu comment faire :
for(int i=0;i<6;i++) { module.setPixelColor(i,0,0,255); //bleu module.show(); delay (100); }
Pour mettre une autre boucle qui va nous afficher le vert à la suite nous allons d'abord mettre un delay entre les deux nous avons vu comment faire !
delay(100);
Ensuite nous mettons la boucle avec le vert de mon exemple :
for(int i=0;i<6;i++) { module.setPixelColor(i,0, 255,0); //vert module.show(); delay (100); }
Si on met tous ensemble dans notre void loop ca donne :
void loop() { for(int i=0;i<6;i++) { module.setPixelColor(i,0,0,255); module.show(); delay (100); } delay(100); for(int i=0;i<6;i++) { module.setPixelColor(i,255, 0,0); module.show(); delay (100); } }
Step 12 Code:
One color is not enough! For our example we are going to make two colors that follow each other I have chosen blue and green. For blue we have seen how to do:
for(int i=0;i<6;i++) { module.setPixelColor(i,0,0,255); //bleu module.show(); delay (100); }
To put another loop that will show us the green next we will first put a delay between the two we have seen how to do!
delay(100);
Then we put the loop with the green of my example:
for(int i=0;i<6;i++) { module.setPixelColor(i,0, 255,0); //vert module.show(); delay (100); }
If we put all together in our void loop it gives:
void loop() { for(int i=0;i<6;i++) { module.setPixelColor(i,0,0,255); module.show(); delay (100); } delay(100); for(int i=0;i<6;i++) { module.setPixelColor(i,255, 0,0); module.show(); delay (100); } }
Et voilà nous avons finis notre code et surtout nous l'avons compris ! Voici le code complet une fois qu'on a suivie toutes les étapes :
#include <Adafruit_NeoPixel.h> // appel de la bibliothèque #define sortie 2 // affectation du pin #define nb_led 6 // Nombre Adafruit_NeoPixel module = Adafruit_NeoPixel(nb_led, sortie, NEO_GRB + NEO_KHZ800); // création de l'objet module void setup() { module.begin();// initialisation de module } void loop() { for(int i=0;i<6;i++) //boucle for { module.setPixelColor(i,0,0,255); //bleu module.show(); // affichage delay (100); //delais } delay(100); for(int i=0;i<6;i++) { module.setPixelColor(i,255, 0,0); //vert module.show(); delay (100); } }
And here we have finished our code and above all we have understood it! Here is the complete code once we have followed all the steps:
#include <Adafruit_NeoPixel.h> // appel de la bibliothèque #define sortie 2 // affectation du pin #define nb_led 6 // Nombre Adafruit_NeoPixel module = Adafruit_NeoPixel(nb_led, sortie, NEO_GRB + NEO_KHZ800); // création de l'objet module void setup() { module.begin();// initialisation de module } void loop() { for(int i=0;i<6;i++) //boucle for { module.setPixelColor(i,0,0,255); //bleu module.show(); // affichage delay (100); //delais } delay(100); for(int i=0;i<6;i++) { module.setPixelColor(i,255, 0,0); //vert module.show(); delay (100); } }
Vidéo du résultat disponible ici !
Maintenant vous pouvez programmer toutes les bandes leds pour vos décorations , utilisations ! Envie de faire une superbe décoration led derrière vos ordinateurs pour votre chambre ou autres ! Vous saurez le faire !
Video of the result available here!
Now you can program all led strips for your decorations, uses! Want to make a superb LED decoration behind your computer for your room or others! You will know how to do it!