Par exemple :
- le couple (X_out_min, Y_out_min) te donne la position de ton image laser dans le plan,
- le couple (X_out_max - X_out_min, Y_out_max, Y_out_min) te donne les dimensions de l'image laser,
- if((X_out_max - X_out_min) < X_out_limit_inf) { // l'image est trop petite sur l'axe X, X_out_limit_inf est une limite que tu définis toi-même }
- if(X_out_max > X_out_limit_bord_max) { // l'image sort de la limite X supérieure }
- if(abs(X_out_max - X_in_max) > X_in_out_diff_max){ // la sortie est trop différente de l'entrée si tes préamps sont bien calibrés }
etc etc, à partir de ces 8 signaux, tu imagines le nombre de tests possibles... Reste à coller un petit multiplexeur si tu utilises un UNO (il te manquera une entrée analogique...).
Au risque de paraitre lourd j'insiste. Si c'est pour faire de la sécurité oculaire il n'y a que 2 infos importantes
- if((X_out_max - X_out_min) < X_out_limit_inf) { // l'image est trop petite sur l'axe X, X_out_limit_inf est une limite que tu définis toi-même }
- if((Y_out_max - Y_out_min) < Y_out_limit_inf) { // l'image est trop petite sur l'axe X, X_out_limit_inf est une limite que tu définis toi-même }
C'est le ET de ces 2 tests qui indique que les galvanomètres ne bougent pas suffisamment pour assurer la sécurité. Tout le reste est inutile.
L'information d'entrée est sans intérêt. J'explique. Si le feedback indique que les galvanomètres ne bougent pas assez, qu'il y ait ou non une modulation en entrée, le laser doit être coupé.
Il ne faut pas introduire de variables inutiles dans les tests sécuritaires. Cela complique les conditions à tester et cela diminue la fiabilité de la chaîne de sécurité en ajoutant des "circuits" (hard ou soft) non indispensables.