Advertisement
jetsky0

Arduino

May 24th, 2012
10,234
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 5.74 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement