document.write('
Data hosted with ♥ by Pastebin.com - Download Raw - See Original
  1. unsigned short int punto = 70; // Duracion del punto
  2. unsigned short int raya = punto * 4; // Duracion de la raya
  3. unsigned short int negro = punto * 3; // Duracion del apagado entre rayas y puntos
  4. unsigned short int letrayletra = punto * 5; // Duracion del apagado entre letras
  5.  
  6. void playTone(int tone, int duration, int speakerPin) {
  7.   // Sends the signal to the speakerPin
  8.   for (long i = 0; i < duration * 1000L; i += tone * 2) {
  9.     digitalWrite(speakerPin, HIGH);
  10.     delayMicroseconds(tone);
  11.     digitalWrite(speakerPin, LOW);
  12.     delayMicroseconds(tone);
  13.   }
  14. }
  15.  
  16. void playToneLed(int tone, int duration, int speakerPin, int ledPin) {
  17.   // Sends the signal to speakerPin and ledPin
  18.   for (long i = 0; i < duration * 1000L; i += tone * 2) {
  19.     digitalWrite(speakerPin, HIGH);
  20.     digitalWrite(ledPin, HIGH);
  21.     delayMicroseconds(tone);
  22.     digitalWrite(speakerPin, LOW);
  23.     digitalWrite(ledPin, LOW);
  24.     delayMicroseconds(tone);
  25.   }
  26. }
  27.  
  28. // ########## CLASE LETRA #########
  29. class letra {
  30.   private:
  31.     char caracter;
  32.     char* codigo;
  33.     int ledPin;
  34.   public:
  35.     letra (char car, char* cad, unsigned short int pin);
  36.     void set (char car, char* cad, unsigned short int pin);
  37.     void mostrar ();
  38.     void sonar ();
  39.     void mostrarYsonar ();
  40. };
  41.  
  42. letra::letra (char car, char* cad, unsigned short int pin) {
  43.   // Constructor
  44.   caracter = car;
  45.   codigo = cad;
  46.   ledPin = pin;
  47.   pinMode(ledPin, OUTPUT);
  48. }
  49.  
  50. void letra::set (char car, char* cad, unsigned short int pin) {
  51.   // Setter
  52.   caracter = car;
  53.   codigo = cad;
  54.   ledPin = pin;
  55. }
  56.  
  57. void letra::mostrar () {
  58.   // Shows the code in in the ledPin
  59.   unsigned short int j = 0;
  60.   while (codigo[j] != 0) {
  61.     if (codigo[j] == \'.\') {
  62.       digitalWrite (ledPin, HIGH);
  63.       delay (punto);
  64.       digitalWrite (ledPin, LOW);
  65.       delay (negro);
  66.     } else if (codigo[j] == \'-\') {
  67.       digitalWrite (ledPin, HIGH);
  68.       delay (raya);
  69.       digitalWrite (ledPin, LOW);
  70.       delay (negro);
  71.     }
  72.     j++;
  73.   }
  74.   delay (letrayletra);
  75. }
  76.  
  77. void letra::sonar () {
  78.   // Sounds the code on the speakerPin
  79.   unsigned short int j = 0;
  80.   while (codigo[j] != 0) {
  81.     if (codigo[j] == \'.\') {
  82.       playTone (440, 100, 9);
  83.       delay (negro/3);
  84.     } else if (codigo[j] == \'-\') {
  85.       playTone (440, 100 * 4, 9);
  86.       delay (negro/3);
  87.     }
  88.     j++;
  89.   }
  90.   delay (letrayletra);
  91. }
  92.  
  93. void letra::mostrarYsonar () {
  94.   // Sounds and shows the code (ledPin + speakerPin)
  95.   unsigned short int j = 0;
  96.   while (codigo[j] != 0) {
  97.     if (codigo[j] == \'.\') {
  98.       playToneLed (440, 100, 9, ledPin);
  99.       delay (negro/4);
  100.     } else if (codigo[j] == \'-\') {
  101.       playToneLed (440, 100 * 4, 9, ledPin);
  102.       delay (negro/4);
  103.     }
  104.     j++;
  105.   }
  106.   delay (letrayletra/2);
  107. }
  108. // ##############################
  109.  
  110. void setup() {
  111.   Serial.begin(9600);
  112.   pinMode(9, OUTPUT);
  113. }
  114.  
  115. int letraIN = 0;
  116. unsigned short int ledPin = 13;
  117. void loop() {
  118.   digitalWrite(ledPin, LOW);
  119.   letraIN = 0;
  120.   letraIN = Serial.read();
  121.   letra let (0, "", ledPin);
  122.   switch (letraIN) {
  123.     case \'a\': let.set (\'a\', ".-", ledPin);
  124.               break;
  125.     case \'b\': let.set (\'b\', "-...", ledPin);
  126.               break;
  127.     case \'c\': let.set (\'c\', "-.-.", ledPin);
  128.               break;
  129.     case \'d\': let.set (\'d\', "-..", ledPin);
  130.               break;
  131.     case \'e\': let.set (\'e\', ".", ledPin);
  132.               break;
  133.     case \'f\': let.set (\'f\', "..-.", ledPin);
  134.               break;
  135.     case \'g\': let.set (\'g\', "--.", ledPin);
  136.               break;
  137.     case \'h\': let.set (\'h\', "....", ledPin);
  138.               break;
  139.     case \'i\': let.set (\'i\', "..", ledPin);
  140.               break;
  141.     case \'j\': let.set (\'j\', ".---", ledPin);
  142.               break;
  143.     case \'k\': let.set (\'k\', "-.-", ledPin);
  144.               break;
  145.     case \'l\': let.set (\'l\', ".-..", ledPin);
  146.               break;
  147.     case \'m\': let.set (\'m\', "--", ledPin);
  148.               break;
  149.     case \'n\': let.set (\'n\', "-.", ledPin);
  150.               break;
  151.     case \'o\': let.set (\'o\', "---", ledPin);
  152.               break;
  153.     case \'p\': let.set (\'p\', ".--.", ledPin);
  154.               break;
  155.     case \'q\': let.set (\'q\', "--.-", ledPin);
  156.               break;
  157.     case \'r\': let.set (\'r\', ".-.", ledPin);
  158.               break;
  159.     case \'s\': let.set (\'s\', "...", ledPin);
  160.               break;
  161.     case \'t\': let.set (\'t\', "-", ledPin);
  162.               break;
  163.     case \'u\': let.set (\'u\', "..-", ledPin);
  164.               break;
  165.     case \'v\': let.set (\'v\', "...-", ledPin);
  166.               break;
  167.     case \'w\': let.set (\'w\', ".--", ledPin);
  168.               break;
  169.     case \'x\': let.set (\'x\', "-..-", ledPin);
  170.               break;
  171.     case \'y\': let.set (\'y\', "-.--", ledPin);
  172.               break;
  173.     case \'z\': let.set (\'z\', "--..", ledPin);
  174.               break;
  175.     case \'0\': let.set (\'0\', "-----", ledPin);
  176.              break;
  177.     case \'1\': let.set (\'1\', ".----", ledPin);
  178.              break;
  179.     case \'2\': let.set (\'2\', "..---", ledPin);
  180.              break;
  181.     case \'3\': let.set (\'3\', "...--", ledPin);
  182.              break;
  183.     case \'4\': let.set (\'4\', "....-", ledPin);
  184.              break;
  185.     case \'5\': let.set (\'5\', ".....", ledPin);
  186.              break;
  187.     case \'6\': let.set (\'6\', "-....", ledPin);
  188.              break;
  189.     case \'7\': let.set (\'7\', "--...", ledPin);
  190.              break;
  191.     case \'8\': let.set (\'8\', "---..", ledPin);
  192.              break;
  193.     case \'9\': let.set (\'9\', "----.", ledPin);
  194.              break;
  195.     case \'.\': let.set (\'.\', ".-.-.-", ledPin);
  196.              break;
  197.     case \',\': let.set (\',\', "--..--", ledPin);
  198.              break;
  199.     case \'?\': let.set (\'?\', "..--..", ledPin);
  200.              break;
  201.     case \'"\': let.set (\'"\', ".-..-.", ledPin);
  202.              break;
  203.   }
  204.   //let.mostrar();
  205.   //let.sonar();
  206.   let.mostrarYsonar();
  207. }
');