On souhaite mesurer la profondeur d'une tubulure étroite en y glissant un capteur pour un examen non destructif (contexte : il s'agit des alvéoles d'un hôtel à insectes que l'on veut suivre sans détruire les larves).
Idée : utiliser un capteur IR réflectif compact (SMD si possible ?). Le Vishay V69 CNY70 ne fait que 4mm de côté et est pas cher. C'est un bon point de départ.
On veut pouvoir faire des télérelevés : donc on veut une connectivité. Usage d'un M5 Stack. C'est un peu surdimensionné, mais bon. Par la suite, il faudra voir si on peut aussi contrôler 3 moteurs (avancer le capteur dans le tube, et positionner l'axe).
Bref.
On utilise deux résistances :
Les mesures obtenues par AnalogRead vont de 0 (capteur pointé vers le ciel) à 4095 (capteur au contact).
Le code :
#include <M5Stack.h> unsigned long temps; char affichage[12]; int sensorPin = 2; // the setup routine runs once when M5Stack starts up void setup() { // initialize the M5Stack object M5.begin(); pinMode(sensorPin,INPUT); // Lcd display M5.Lcd.fillScreen(BLACK); // text print M5.Lcd.fillScreen(BLACK); M5.Lcd.setCursor(10, 10); M5.Lcd.setTextColor(WHITE); M5.Lcd.setTextSize(1); M5.Lcd.printf("Started!"); } // the loop routine runs over and over again forever void loop(){ int level; temps = millis(); ltoa(temps,affichage,12); level = analogRead(sensorPin); M5.Lcd.setCursor(10, 10); M5.Lcd.printf(affichage); M5.Lcd.setCursor(10, 30); M5.Lcd.printf("%d",level); delay(1000); M5.Lcd.fillScreen(BLACK); M5.update(); }