Arduino Temperature Monitor et Visual LED Meter: 4 étapes (avec photos)

Arduino Temperature Monitor et Visual LED Meter: 4 étapes (avec photos)

Table des matières:

Anonim

C'est un projet Arduino vraiment amusant qui lira la température, l'enverra au moniteur série dans Arduino IDE et ajustera le nombre de LED allumées en fonction de la température. C'est vraiment facile à assembler et la partie programmation a besoin de compétences, mais j'ai fourni le code pour que vous puissiez suivre. Pour ce projet, vous aurez besoin de ces parties:

  • Arduino Uno
  • Planche à pain sans soudure demi-format
  • Un fil de cavalier mâle à mâle de 7,5 pouces de long
  • 14 fils de liaison mâle à mâle de 3,5 pouces de long
  • Une LED bleue
  • 8 LED vertes
  • Deux leds rouges
  • 11 résistances de 560 Ohm (vert-bleu-brun-or)
  • TMP36

Et ces outils:

  • Ordinateur sous Windows, OS X ou Linux
  • Câble USB A à B
  • Arduino IDE installé

Provisions:

Étape 1: Assemblage des voyants

Commencez par connecter toutes les résistances de 560 ohms à un rail de la planche à pain et au rail de masse de la planche à pain.Connectez la résistance suivante à un rail (Exemple: la première résistance connectée au rail 1 sera connectée au rail 3 et bientôt…). Ensuite, connectez les voyants de manière à ce que le bras court du voyant soit connecté au même rail que la résistance et le pied long au rail vide juste à côté.Connectez tous les voyants de cette manière.Finalement, connectez un cavalier au rail avec la longue jambe de la LED. Commencez avec la LED bleue et connectez-le à la broche numérique 2 de l’Arduino Uno. La suivante est la première LED verte. Connectez-le à la broche numérique 3. Les voyants doivent être dans cet ordre: 1 voyant bleu, 8 voyants verts et 2 voyants rouges. Connectez maintenant le fil de liaison de 7,5 pouces au rail de liaison de la planche à pain et à la broche GND de l'Arduino.

Étape 2: Test des voyants

Avant que nous puissions terminer le projet, nous devons vérifier les LED pour les courts-circuits. Pour ce faire, nous utilisons une esquisse de Blink modifiée (programme Arduino) qui modifie la variable pin pour changer la LED qui s’allume.

int led = 2; // vous modifiez ce numéro en broche de discussion que vous souhaitez activer

void setup () {pinMode (led, OUTPUT); }

boucle vide () {digitalWrite (led, HIGH); }

Étape 3: Connexion du TMP36

Le TMP36 a 3 pieds. Posez le capteur dans le sens de la longueur, de sorte que le côté plat soit face à vous. Placez le TMP36 sur la planche à pain de sorte que chaque pied repose sur un rail. Connectez un fil de liaison à la jambe gauche du capteur et l’autre jambe à la broche 5v de l’Arduino.La jambe du milieu doit être connectée à la broche analogique 0 ou A0.La jambe droite est connectée à la broche GND de l’Arduino.Maintenant, c’est Il est temps de tester le capteur. Téléchargez ce code sur votre Arduino et ouvrez le Moniteur série en cliquant sur la loupe dans le coin supérieur droit de l'EDI Arduino lorsqu'une esquisse est chargée.

int temperaturePin = 0;

void setup () {Serial.begin (9600); } void loop () {float temperature = getVoltage (temperaturePin); température = (température -.5) * 100; Serial.println (température); délai (1000); }

float getVoltage (int pin) {return (analogRead (pin) *.004882814); }

Étape 4: Assembler le tout (terminer YAY!)

Nous avons donc besoin de télécharger l’esquisse finale. Cette esquisse va conférer le voltage du TMP36 à Degrés Celsius, l’imprimer sur le Serial Monitor, puis l’enregistrer en tant que variable et l’envoyer aux instructions if.Ils vérifient la catégorie de température tombe dans et allume le nombre approprié de LED. Vous pouvez toujours changer le nombre de degrés du changement de numéro de LED. Le code est actualisé toutes les 4 secondes. Alors voici le code et j'espère que vous avez apprécié ce Instructable!

int temperaturePin = 0;

int temp = A0; int blue1 = 2; int green1 = 3; int green2 = 4; int green3 = 5; int green4 = 6; int green5 = 7; int green6 = 8; int green7 = 9; int green8 = 10; int red1 = 11; int2 = 12;

void setup () {Serial.begin (9600); pinMode (blue1, OUTPUT); pinMode (green1, OUTPUT); pinMode (green2, OUTPUT); pinMode (green3, OUTPUT); pinMode (green4, OUTPUT); pinMode (green5, OUTPUT); pinMode (green6, OUTPUT); pinMode (green7, OUTPUT); pinMode (green8, OUTPUT); pinMode (red1, OUTPUT); pinMode (red2, OUTPUT); } void loop () // courir encore et encore {float temperature = getVoltage (temperaturePin); // obtenir la lecture de tension à partir du capteur de température temperature = (temperature -.5) * 100; // conversion de 10 mv par degré avec un décalage de 500 mV // en degrés ((volatge - 500 mV) fois 100) Serial.println (temperature); // impression du résultat delay (1000);

if (température> = 3,00) {digitalWrite (blue1, HIGH);} if (température> = 6,00) {digitalWrite (blue1, HIGH); digitalWrite (vert1, HIGH);} if (température> = 8,00) {digitalWrite (blue1, HIGH); digitalWrite (green1, HIGH); digitalWrite (vert2, HIGH);} if (temperature> = 10.00) {digitalWrite (blue1, HIGH); digitalWrite (vert1, HIGH); digitalWrite (vert2, HIGH); digitalWrite (green3, HIGH);} if (temperature> = 13,00) {digitalWrite (blue1, HIGH); digitalWrite (vert1, HIGH); digitalWrite (vert2, HIGH); digitalWrite (vert3, HIGH); digitalWrite (vert4, HIGH);} if (temperature> = 15.00) {digitalWrite (blue1, HIGH); digitalWrite (vert1, HIGH); digitalWrite (vert2, HIGH); digitalWrite (vert3, HIGH); digitalWrite (vert4, HIGH); digitalWrite (vert5, HIGH); } if (temperature> = 20.00) {digitalWrite (blue1, HIGH); digitalWrite (vert1, HIGH); digitalWrite (vert2, HIGH); digitalWrite (vert3, HIGH); digitalWrite (vert4, HIGH); digitalWrite (vert5, HIGH); digitalWrite (green6, HIGH);} if (temperature> = 23,00) {digitalWrite (blue1, HIGH); digitalWrite (vert1, HIGH); digitalWrite (vert2, HIGH); numérique Ecrire (vert3, HAUT); digitalWrite (vert4, HAUT); digitalWrite (vert5, HAUT); digitalWrite (vert6, HAUT); digitalWrite (vert7, HAUT);} if (température> = 25,00) {digitalWrite (blue1, HAUT); digitalWrite (green1, HIGH); digitalWrite (green2, HIGH); digitalWrite (green3, HIGH); digitalWrite (vert4, HIGH); digitalWrite (vert5, HIGH); digitalWrite (vert6, HIGH), digitalWrite (vert7, HIGH); digitalWrite (green8, HIGH);} if (temperature> = 30,00) {digitalWrite (blue1, HIGH); digitalWrite (vert1, HIGH); digitalWrite (vert2, HIGH); digitalWrite (vert3, HIGH); digitalWrite (vert4, HIGH); digitalWrite (green5, HIGH); digitalWrite (green6, HIGH); digitalWrite (green7, HIGH); digitalWrite (vert8, HIGH); digitalWrite (rouge1, HIGH);} if (temperature> = 35,00) {digitalWrite (blue1, HIGH)); digitalWrite (green1, HIGH), digitalWrite (green2, HIGH), digitalWrite (green3, HIGH), digitalWrite (vert4, HIGH), digitalWrite (vert5, HIGH), digitalWrite (vert6, HIGH), digitalWrite (vert7, HIGH); digitalWrite (vert8, HAUT); digitalWrite (rouge1, HAUT); digitalWrite (rouge2, HAUT);} délai (4000); digitalWrite (blue1, LOW); digitalWrite (green1, LOW); digitalWrite (green2, LOW); digitalWrite (green3, LOW); digitalWrite (green4, LOW); digitalWrite (green5, LOW); digitalWrite (green6, LOW); digitalWrite (green7, LOW); digitalWrite (green8, LOW); digitalWrite (red1, LOW); digitalWrite (red2, LOW);

}

float getVoltage (int pin) {return (analogRead (pin) *.004882814); // conversion d'une plage numérique de 0 à 1023 // de 0 à 5 volts (chaque lecture équivaut à ~ 5 millivolts}