==== Préparation A.R.E. 2019 ==== 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 [[https://www.vishay.com/docs/83751/cny70.pdf|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 : * protection de la LED IR : 100 Ω * émetteur phototransistor : 56 kΩ Les mesures obtenues par AnalogRead vont de 0 (capteur pointé vers le ciel) à 4095 (capteur au contact). Le code : #include 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(); }