Bonjour, ça fait un moment que j'ai pas poster ici, et pour cause je me suis lancé dans le HTML et CSS (C'est sympa)
Mais cette apres-midi, alors que je tournais un peu en rond j'ai décidé d'utiliser un peu mon arduino, sans projet particulier !
J'ai donc d'un coté un tcrt-5000 (capteur infrarouge) et un neo-pixel ring 16 !
Le but étant d'essayer d'en faire un pseudo avertisseur d'obstacle...
J'ai donc une lecture analogique de mon capteur (de 1000 à 29) et le but serais que tant que la lecture est au dessus de 400, tout reste éteint, en dessous ça déclenche une routine qui reste allumé TANT QUE la lecture est inférieur à 400...
Seulement, une fois que la routine ce lance, le capteur n'a plus la main, et je ne sais pas si la routine à un temps aléatoire ou pas !
Mon capteur est câblé :
EMETTEUR : +5V ---> 100 Ohm ---> led ---> GND
RECEPTEUR : +5V ---> 4700 Ohm ---> led ---> GND
|
|
A0
Et le code est le suivant :
#include <Adafruit_NeoPixel.h>
#define PIN 6
Adafruit_NeoPixel pixels = Adafruit_NeoPixel(16, PIN);
int tcrt;
void setup(){
Serial.begin(9600);
pixels.begin();
pixels.show(); // Eteint tout les pixels
}
void loop(){
tcrt = analogRead(A0); // lecture du tcrt
Serial.println(tcrt);
while(tcrt <400){ // Tant que la lecture est INFERIEUR à 400, lire l'instruction.
multicolor();
}
if(tcrt >500){ // Si la lecture passe au dessus de 500, éteindre les pixels.
pixels.show();
}
}
void multicolor(){
uint8_t i;
uint32_t t;
int a;
int b;
int c;
int e;
i = random(16);
a = random(255);
b = random(255);
c = random(255);
pixels.setPixelColor(i, a, b, c); // Pour (i)la position du pixel de 0 à 15 (a)valeur de rouge (b)valeur de vert (c)valeur de bleu.
pixels.show();
delay(50);
pixels.setPixelColor(i, 0); // Eteint chaque pixel après son allumage, permet d'afficher un unique pixel à la fois.
}
Donc là, c'est bien éteint de base, puis, dès que j'approche la main, les pixels clignotes de façon (pseudo)aléatoire, mais ne s'éteigne uniquement après X temps (indéterminé) et pas au retrait de l'obstacle du capteur...
Existe t'il une astuce pour pouvoir garder la lecture analogique mais permettre une interruption ?