#define connecteur O // Connecteur analogique associé au bipeur int ti=100; // Rythme de base égal à la durée du point en ms String code=""; // Code Morse associé à un caractère unsigned long debut; unsigned long duree_haut; unsigned long duree_bas; char decoder(String c) { if (c==".-") return('A'); if (c=="-...") return('B'); if (c=="-.-.") return('C'); if (c=="-..") return('D'); if (c==".") return('E'); if (c=="..-.") return('F'); if (c=="--.") return('G'); if (c=="....") return('H'); if (c=="..") return('I'); if (c==".---") return('J'); if (c=="-.-") return('K'); if (c==".-..") return('L'); if (c=="--") return('M'); if (c=="-.") return('N'); if (c=="---") return('O'); if (c==".--.") return('P'); if (c=="--.-") return('Q'); if (c==".-.") return('R'); if (c=="...") return('S'); if (c=="-") return('T'); if (c=="..-") return('U'); if (c=="...-") return('V'); if (c==".--") return('W'); if (c=="-..-") return('X'); if (c=="-.--") return('Y'); if (c=="--..") return('Z'); if (c==".----") return('1'); if (c=="..---") return('2'); if (c=="...--") return('3'); if (c=="....-") return('4'); if (c==".....") return('5'); if (c=="-....") return('6'); if (c=="--...") return('7'); if (c=="---..") return('8'); if (c=="----.") return('9'); if (c=="-----") return('0'); } bool lu() { int j=0; for (int i=0; i<15; i++) { if (analogRead(0)>0) j++; } if (j>1) return true; return false; } void setup() { Serial.begin(115200); while (!lu()) { } // Attente du début de la transmission } void loop() { // Durée du signal haut (point ou tiret) debut=millis(); while (lu()) { } duree_haut=millis()-debut; // Durée du signal bas (suite du code, fin de caractère ou de mot) debut=millis(); while (!lu()) { } duree_bas=millis()-debut; // Traitement des durées if (ti/2