Table des matières:

Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85 : 3 étapes
Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85 : 3 étapes

Vidéo: Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85 : 3 étapes

Vidéo: Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85 : 3 étapes
Vidéo: Bande de LEDs setup | Programmer Attiny85 avec Arduino | WS2812B 2024, Juillet
Anonim
Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85
Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85
Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85
Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85
Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85
Changer les couleurs des LED à l'aide d'un POT et d'ATTINY85

Dans ce projet, nous utilisons un potentiomètre (POT) pour changer les couleurs d'une LED à l'aide d'un ATTINY85.

Quelques définitions -

Un potentiomètre est un appareil avec un petit mécanisme à vis/tournant qui, lorsqu'il est tourné, produit différentes résistances électriques. Vous pouvez voir sur l'image annotée ci-dessus que le POT a 3 broches, à savoir +, - et sortie. Le POT est alimenté en connectant les broches + et - à vcc et à la masse respectivement sur une alimentation. Lorsque la vis POT est tournée, la résistance de sortie change et la LED diminue ou augmente en intensité.. En d'autres termes, c'est une résistance variable. Ils sont utilisés dans des choses telles que les gradateurs d'éclairage domestique.

LED - Il s'agit d'une petite lumière qui s'allume lorsque le courant électrique la traverse. Dans ce cas, nous utiliserons une LED multicolore qui a 3 broches, une masse (au milieu) et deux broches qui affichent respectivement le vert et le rouge lorsqu'elles sont déclenchées.

ATTINY85 - il s'agit d'une petite puce à faible coût que vous pouvez programmer comme un Arduino.

Vue d'ensemble - La sortie du POT est connectée à l'ATTINY85. Lorsque la vis POT est tournée, une résistance différentielle est émise sous la forme d'un nombre compris entre 0 et 255. L'ATTINY peut mesurer cela et effectuer différentes actions en fonction de la valeur de la résistance POT. Dans ce cas, nous l'avons programmé pour se connecter à la LED comme suit.

Si le nombre est supérieur à 170, passez la LED au VERT.

Si le nombre est inférieur à 170 mais supérieur à 85, passez la LED au ROUGE.

si le nombre est inférieur à 85 allumer les LED VERT ET ROUGE qui se traduit par ORANGE.

Nomenclature

1 x LED 3 broches1 x ATTINY 85

1 pot (B100K)

1 x planche à pain et câbles

1 alimentation.

Étape 1: Programmation de l'ATTINY85

En termes de programmation de l'ATTINY85, veuillez vous référer à mon précédent instructable -

Le code est indiqué ci-dessous. Certains points à noter sont que deux broches ATTINY, PB3, broche physique 2, PB2, broche physique 7 sont connectées, en mode numérique, à la LED pour effectuer un changement de couleur. La broche ATTINY PB4, la broche physique 3, est connectée au POT en mode analogique, ce qui signifie qu'elle peut lire des valeurs comprises entre 0 et 254. J'ai personnalisé le code que j'ai trouvé sur internet donc je reconnais que cela fonctionne. -

void initADC(){ // *** // *** Brochage ATtiny25/45/85: // *** PDIP/SOIC/TSSOP // *** ============= ================================================== ============================== // *** // *** (PCINT5/RESET/ADC0/dW) PB5 [1]* [8] VCC // *** (PCINT3/XTAL1/CLKI/OC1B/ADC3) PB3 [2] [7] PB2 (SCK/USCK/SCL/ADC1/T0/INT0/PCINT2) // * ** (PCINT4/XTAL2/CLKO/OC1B/ADC2) PB4 [3] [6] PB1 (MISO/DO/AIN1/OC0B/OC1A/PCINT1) // *** GND [4] [5] PB0 (MOSI/ DI/SDA/AIN0/OC0A/OC1A/AREF/PCINT0) // *** //pb4 - entrée pour POT //pb3 led broche 1 //pb2 led broche 3 // fréquence ATTINY 85 réglée sur 8 MHz interne /* cette fonction initialise l'ADC

Remarques sur le préscaler ADC:

ADC Prescaler doit être réglé de sorte que la fréquence d'entrée ADC soit comprise entre 50 et 200 kHz.

Pour plus d'informations, reportez-vous au tableau 17.5 "Sélections du préscaler ADC" au chapitre 17.13.2 "ADCSRA - ADC Control and Status Register A" (pages 140 et 141 sur la fiche technique complète ATtiny25/45/85, Rev. 2586M–AVR-07/ dix)

Valeurs de prédimensionnement valides pour différentes vitesses d'horloge

Horloge Valeurs de pré-échelonnage disponibles ---------------------------------------------------- 1 MHz 8 (125kHz), 16 (62,5 kHz) 4 MHz 32 (125 kHz), 64 (62,5 kHz) 8 MHz 64 (125 kHz), 128 (62,5 kHz) 16 MHz 128 (125 kHz)

L'exemple ci-dessous définit le préscaler sur 128 pour un mcu fonctionnant à 8 MHz

(vérifiez la fiche technique pour les valeurs de bits appropriées pour régler le pré-échelonneur) */

// résolution 8 bits

// mettre ADLAR à 1 pour activer le résultat de décalage à gauche (seuls les bits ADC9.. ADC2 sont disponibles) // alors, seule la lecture d'ADCH est suffisante pour des résultats 8 bits (256 valeurs) DDRB |= (1 << PB3); //Pin est défini comme une sortie. DDRB |= (1 << PB2); //Pin est défini comme une sortie. ADMUX = (1 << ADLAR) | // résultat du décalage à gauche (0 << REFS1) | // Définit la réf. tension à VCC, bit 1 (0 << REFS0) | // Définit la réf. tension à VCC, bit 0 (0 << MUX3) | // utilise ADC2 pour l'entrée (PB4), MUX bit 3 (0 << MUX2) | // utilise ADC2 pour l'entrée (PB4), MUX bit 2 (1 << MUX1) | // utilise ADC2 pour l'entrée (PB4), MUX bit 1 (0 << MUX0); // utiliser ADC2 pour l'entrée (PB4), MUX bit 0

ADCSRA =

(1 << ADEN) | // Activer l'ADC (1 << ADPS2) | // définit le pré-échelonneur sur 64, bit 2 (1 << ADPS1) | // définit le pré-échelonneur sur 64, bit 1 (0 << ADPS0); // définit le préscaler sur 64, bit 0 }

int main(void)

{ initADC();

tandis que(1)

{

ADCSRA |= (1 << ADSC); // démarrer la mesure ADC pendant (ADCSRA & (1 << ADSC)); // attendre la fin de la conversion

si (ADCH > 170)

{ PORTB |= (1 << PB3); //Broche définie sur HAUT. PORTB |= (1 << PB2); //Broche définie sur HAUT. } else if (ADCH 85) { PORTB |= (1 << PB3); //Broche définie sur HAUT. PORTB &= ~(1 << PB2); //Broche définie sur FAIBLE

} autre {

PORTB |= (1 << PB2); //Broche définie sur HAUT. PORTB &= ~(1 << PB3); //Broche définie sur FAIBLE

}

}

renvoie 0;

}

Étape 2: Circuit

Circuit
Circuit

épingles ATTINY

PB3, broche physique 2 - broche LED connectée 1

PB4, broche physique 3, est connecté à la broche centrale POT

GND, broche physique 4, est connecté au rail négatif - alimentation

PB2, broche physique 7 - broche LED connectée 3

VCC, broche physique 8, est connecté au rail positif - alimentation

POT

broches pos et neg connectées aux rails respectifs - alimentation.

LED

broche du milieu connectée au rail négatif - alimentation

J'ai expérimenté en utilisant une alimentation de 3 et 3,3 volts et les deux ont fonctionné.

Étape 3: Conclusion

Conclusion
Conclusion

La capacité de l'ATTINY85 à passer du mode analogique au mode numérique est très puissante et peut être utilisée dans un certain nombre d'applications différentes, par ex. conduire des moteurs à vitesse variable et créer des notes de musique. Je vais explorer cela dans les futurs instructables. J'espère que vous avez trouvé cela utile.

Conseillé: