Outils pour utilisateurs

Outils du site


wiki:projets:rfid:ethylometre:semaine6

Semaine du 14 au 20 mars

  • *14/03** (Josselin Lecomte, Alba Espagnon/ 1h30)
  • Nous sommes allés au fablab pour essayer de programmer les leds. Nous avons emprunté une bande de leds et nous l'avons branchée à l'arduino sur le montage que l'on avait fait, avec le 7 segment et le MQ3. Nous avons réussi à les allumer, avec un dégradé du vert au rouge et avec une fonction “rainbow” (voir les vidéos).
  • Nous avons rencontré un problème au moment de faire le lien entre les valeurs qu'affichaient le 7 segment et les leds: l'objectif est que plus le taux d'alcool affiché est élevé, plus les leds s'allument vers le rouge. Or, quand on lance le programme, les valeurs mesurées par le MQ3 s'affichent bien sur le 7segment mais les leds ne s'allument pas. Nous allons donc tenter de résoudre ce problème.

  • Code:
#include <Adafruit_NeoPixel.h>  // Bibliothèque qui gère l'affichage des leds
#ifdef __AVR__
#include <avr/power.h>
#endif
#define PIN 1                  // Pin utilisé par le strip de leds
#include "SevSeg.h"            // Bibliothèque qui gère l'affichage du 7 segment
SevSeg sevseg;
// Parametre 1 = nombre de pixels du strip
// Parameter 2 = pin Arduino
// Parameter 3 = type de pixels
Adafruit_NeoPixel strip = Adafruit_NeoPixel(8, PIN, NEO_GRB + NEO_KHZ800);
int i = 0;
int timer = millis();
int j = 0;
int r = 0;
int g = 255;

void setup() {
  strip.begin();  // Initialise le strip de leds
  strip.show();   // Eteint tous les pixels
  sevseg.Begin(0, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13);  // Déclaration des pins du 7 segment
}

void loop() {
  sevseg.NewNum(555, 5);            // Entrer le nombre à afficher et la place de la virgule
  sevseg.PrintOutput();
  strip.setPixelColor(i, r, g, 0);  // Entrer la led à allumer ainsi que sa couleur en RGB
  strip.show();
  i++;
  r = r + 35;                       // Variable qui gère le niveau de rouge pour un dégradé
  g = g - 35;                       // Variable qui gère le niveau de vert pour un dégradé
  while (timer < 200) {             // Utilisation de la millis pour ne pas éteindre 
    timer = millis() - j * 200;     // le 7 segment à chaque delay
    sevseg.NewNum(5555, 5);
    sevseg.PrintOutput();
  }
  timer = timer - 200;
  j++;
}

wiki/projets/rfid/ethylometre/semaine6.txt · Dernière modification: 2020/10/05 16:39 (modification externe)