Table des matières:
2025 Auteur: John Day | [email protected]. Dernière modifié: 2025-01-23 14:46
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
é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
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é:
Octarine : un jeu de correspondance des couleurs avec les LED RVB WS2812 : 6 étapes
Octarine : un jeu de correspondance des couleurs avec les LED RVB WS2812 : Octarine, la couleur de la magie. C'était vivant et brillant, vibrant et c'était le pigment incontesté de l'imagination, parce que partout où il apparaissait, c'était un signe que la simple matière était un serviteur des pouvoirs de l'esprit magique. C'était des enchanteurs
Détection simple des couleurs à l'aide d'OpenCV : 6 étapes
Détection de couleur simple à l'aide d'OpenCV : Salut ! Aujourd'hui, je vais montrer une méthode simple pour détecter une couleur à partir d'une vidéo en direct à l'aide d'OpenCV et de python. Fondamentalement, je vais simplement tester que la couleur requise est présente ou non dans le cadre d'arrière-plan et à l'aide des modules OpenCV, je vais masquer cette région et
Détection des couleurs en Python à l'aide d'OpenCV : 8 étapes
Détection des couleurs en Python à l'aide d'OpenCV : Bonjour ! Cette instructable est utilisée pour expliquer comment extraire une couleur spécifique d'une image en python à l'aide de la bibliothèque openCV. Si vous débutez dans cette technique, ne vous inquiétez pas, à la fin de ce guide, vous pourrez programmer votre propre couleur
Contrôle des couleurs des LED RVB : 4 étapes
Contrôle des couleurs des LED RVB : dans ce projet, nous allons apprendre à contrôler la luminosité et la couleur d'une LED RVB via des ports d'E/S avec une capacité de sortie PWM et des curseurs d'affichage tactile. L'écran tactile résistif 4Duino est utilisé comme un moyen pour une interface graphique de contrôler t
Détection des couleurs à l'aide de LED RVB : 4 étapes
Détection des couleurs à l'aide de LED RVB : Avez-vous déjà voulu un moyen automatisé de détecter la couleur d'un objet ? En projetant une lumière d'une certaine couleur sur l'objet et en regardant la quantité de lumière réfléchie, vous pouvez savoir de quelle couleur est l'objet. Par exemple, si vous allumez un feu rouge o