LED avec potentiomètre: 4 étapes

LED avec potentiomètre: 4 étapes

Table des matières:

Anonim

Ici, nous allons créer un projet qui aura 5 LED qui seront contrôlées par un potentiomètre. Nous allons faire plusieurs choses avec cela: par exemple, contrôler les leds activées avec le potentiomètre et faire disparaître les leds.

Les matériaux nécessaires:

  • 1 planche à pain
  • 1 Arduino Uno
  • 5 LED
  • 1 potentiomètre
  • 15 fils

Provisions:

Étape 1: Ajoutez 5 LED

Avant de commencer à ajouter des LED, nous devons nous rappeler de câbler l’Arduino Uno à la carte

  1. Connectez un fil de la broche 5V au côté alimentation (rouge) de la planche à pain
  2. Ensuite, passez un fil de l’une des broches GND au côté négatif (bleu) du rail d’alimentation

Maintenant que nous avons mis la masse à la terre et que notre carte d’alimentation est alimentée, nous pouvons ajouter les DEL

  1. Ajouter 5 LED dans une rangée à l'arrière de la planche à pain
  2. Faites passer un fil de la broche négative (sa plus courte) au rail de mise à la terre de la planche à pain
  3. Placez une extrémité de la résistance 220 juste devant le fil positif. Accrochez l’autre extrémité dans l’un des trous devant. Cela assurera nos LED ne pas frire.
  4. Prenez un fil du trou juste en face de l'extrémité de la résistance et connectez-le à une broche dans l'Arduino. Pour mes 5 LED, j’ai utilisé les broches 11, 10, 9, 6 et 3. C’est pourquoi il est important d’utiliser ces broches car elles sont des broches PWM et seront nécessaires ultérieurement dans l’étape.
  5. Répétez ces étapes pour chacune des LED

Maintenant que j’ai appris la dure méthode pour tester votre code et vos composants au fur et à mesure, nous allons donc écrire le code pour allumer tous les voyants.

int redLED = 13; // Numéros de broche pour les LED

int blueLED = 12; int whiteLED = 11; int yellowLED = 10; int greenLED = 9;

void setup () {// mettez votre code de configuration ici, pour exécuter une fois: pinMode (redLED, OUTPUT); // Reconnaître les LED en tant que OUTPUT pinMode (blueLED, OUTPUT); pinMode (whiteLED, OUTPUT); pinMode (yellowLED, OUTPUT); pinMode (greenLED, OUTPUT); }

void loop () {// place ton code principal ici, pour l'exécuter de manière répétée: digitalWrite (redLED, HIGH); // Allume toutes les LED sur digitalWrite (blueLED, HIGH); digitalWrite (whiteLED, HIGH); digitalWrite (yellowLED, HIGH); digitalWrite (greenLED, HIGH);

Étape 2: Fixez un potentiomètre

Ajoutons maintenant le composant suivant: un potentiomètre.

Placez le potentiomètre sur le côté opposé de la carte comme vos voyants. Cela contribuera à économiser de l'espace et réduira le risque de débranchement accidentel des fils.

  1. À partir de la branche avant gauche du rail d'alimentation, exécutez un fil.
  2. La broche avant droite connecte un fil pour aller au rail de mise à la terre.
  3. Sur la broche unique à l'arrière, dirigez un fil vers une broche analogique. J'ai utilisé A5

Maintenant que le potentiomètre est câblé et connecté, testons-le dans le code.

int redLED = 13; // Numéros de broche pour les LED

int blueLED = 12; int whiteLED = 11; int yellowLED = 10; int greenLED = 9;

int puissant = A5; // Broche pour le potentiomètre int potentNum = 0; // int pour garder une trace des valeurs provenant du potentiomètre

void setup () {// mettez votre code de configuration ici, pour exécuter une fois: pinMode (redLED, OUTPUT); // Reconnaître les LED en tant que OUTPUT pinMode (blueLED, OUTPUT); pinMode (whiteLED, OUTPUT); pinMode (yellowLED, OUTPUT); pinMode (greenLED, OUTPUT);

Serial.begin (9600); // commence le Serial Moniter

pinMode (puissant, INPUT); }

void loop () {// place ton code principal ici, pour l'exécuter de manière répétée: / * digitalWrite (redLED, HIGH); // Allume toutes les LED sur digitalWrite (blueLED, HIGH); digitalWrite (whiteLED, HIGH); digitalWrite (yellowLED, HIGH); digitalWrite (greenLED, HIGH); * / potentNum = analogRead (puissant); // obtient la valeur du capteur Serial.println (potentNum); délai (300);

}

Étape 3: Modifier le code pour faire défiler les voyants

Nous devons maintenant entrer dans notre code et faire en sorte que le potentiomètre contrôle les voyants allumés. Pour mon code, je suis allé avec un code que j'aime bien utiliser. J'ai mis tous les voyants dans un tableau, modifié la fonction map pour renvoyer une valeur comprise entre 0 et 4. J'ai ensuite utilisé cette valeur dans une instruction Switch pour contrôler les voyants allumés et éteints. Il y aurait peut-être des moyens plus faciles de le faire, mais je me suis amusé avec la façon dont je l'ai fait.

Code:

int ledArray = {13, 12, 11, 10, 9}; // Tableau de Leds

int puissant = A5; // Broche pour le potentiomètre int potentNum = 0; // int pour garder une trace des valeurs provenant du potentiomètre

void setup () {// mettez votre code de configuration ici, pour exécuter une fois: for (int i = 0; i <6; i ++) // Définissez toutes les LED comme sorties (OUTPUTS) avec une boucle for {pinMode (ledArray i, SORTIE); }

Serial.begin (9600); // commence le Serial Moniter

pinMode (puissant, INPUT); // Déclaration du potentiomètre comme INPUT}

void loop () {// place ton code principal ici, pour l'exécuter à plusieurs reprises: potentNum = analogRead (puissant); // obtient la valeur du capteur int num = map (potentNum, 0,1023,0,4); // Mappage des données du capteur de potentiomètre avec Map Funtion. Nous notons que les // toLow et toHIGH vont de 0 à 4. Cela nous permet de basculer entre les tableaux Serial.println (potentNum); switch (num) // change les instructions pour allumer / éteindre les LED {cas 0: digitalWrite (ledArray 0, HIGH); digitalWrite (ledArray 1, LOW); digitalWrite (ledArray 2, LOW); digitalWrite (ledArray 3, LOW); digitalWrite (ledArray 4, LOW); Pause;

cas 1: digitalWrite (ledArray 1, HIGH); digitalWrite (ledArray 0, LOW); digitalWrite (ledArray 2, LOW); digitalWrite (ledArray 3, LOW); digitalWrite (ledArray 4, LOW); Pause;

cas 2: digitalWrite (ledArray 2, HIGH); digitalWrite (ledArray 0, LOW); digitalWrite (ledArray 1, LOW); digitalWrite (ledArray 3, LOW); digitalWrite (ledArray 4, LOW); Pause;

cas 3: digitalWrite (ledArray 3, HIGH); digitalWrite (ledArray 0, LOW); digitalWrite (ledArray 1, LOW); digitalWrite (ledArray 2, LOW); digitalWrite (ledArray 4, LOW); Pause;

cas 4: digitalWrite (ledArray 4, HIGH); digitalWrite (ledArray 0, LOW); digitalWrite (ledArray 1, LOW); digitalWrite (ledArray 2, LOW); digitalWrite (ledArray 3, LOW); Pause; } delay (300);

}

Étape 4: Atténuation des LED lorsque le potentiomètre tourne

Maintenant, nous allons atténuer les leds avec le potentiomètre au lieu de simplement les allumer et les éteindre. Nous allons changer le code un peu. Nous sommes en train de changer la configuration des leds de pinMode à analogWrite. Dans les états de commutation, nous allons également permuter DigitalWrite pour AnalogWrite et donner la luminosité souhaitée aux leds. Nous allons également rationaliser les déclarations de cas pour plus de clarté

Code:

int ledArray = {11, 10, 9, 6, 3}; // Tableau de Leds

int puissant = A5; // Broche pour le potentiomètre int potentNum = 0; // int pour garder une trace des valeurs provenant du potentiomètre

void setup () {// mettez votre code de configuration ici, pour exécuter une fois: for (int i = 0; i <6; i ++) // Définissez toutes les LED comme sorties (OUTPUTS) avec une boucle for {analogWrite (ledArray i, 2) }

Serial.begin (9600); // commence le Serial Moniter

pinMode (puissant, INPUT); // Déclaration du potentiomètre comme INPUT}

void loop () {// place ton code principal ici, pour l'exécuter à plusieurs reprises: potentNum = analogRead (puissant); // obtient la valeur du capteur int num = map (potentNum, 0,1023,0,4); // Mappage des données du capteur de potentiomètre avec Map Funtion. Nous notons que les // toLow et toHIGH sont compris entre 0 et 4. Cela nous permet de basculer entre les tableaux.

// int luminosité = carte (potentiel, 0, 1023, 0,255); //Serial.println(brightness); switch (num) // change les instructions pour allumer / éteindre les LED {case 0: analogWrite (ledArray 0, 255); analogWrite (ledArray 1, 10); analogWrite (ledArray 2, 1); analogWrite (ledArray 3, 0); analogWrite (ledArray 4, 0); Pause;

cas 1: analogWrite (ledArray 0, 10); analogWrite (ledArray 0, 255); analogWrite (ledArray 2, 10); analogWrite (ledArray 3, 1); analogWrite (ledArray 4, 0); Pause;

cas 2: analogWrite (ledArray 0, 1); analogWrite (ledArray 1, 10); analogWrite (ledArray 2, 255); analogWrite (ledArray 3, 10); analogWrite (ledArray 4, 1); Pause;

cas 3: analogWrite (ledArray 0, 0); analogWrite (ledArray 1, 1); analogWrite (ledArray 2, 10); analogWrite (ledArray 3, 255); analogWrite (ledArray 4, 10); Pause;

cas 4: analogWrite (ledArray 0, 0); analogWrite (ledArray 1, 0); analogWrite (ledArray 2, 1); analogWrite (ledArray 3, 10); analogWrite (ledArray 4, 255); Pause; } delay (300);

}

Et c'est tout! Merci d'avoir regardé mon Instructable.