{"id":1172,"date":"2018-02-27T12:41:15","date_gmt":"2018-02-27T17:41:15","guid":{"rendered":"http:\/\/blog.espol.edu.ec\/edelros\/?p=1172"},"modified":"2018-09-10T10:29:07","modified_gmt":"2018-09-10T15:29:07","slug":"morse-deco-mensaje-morse","status":"publish","type":"post","link":"https:\/\/blog.espol.edu.ec\/edelros\/morse-deco-mensaje-morse\/","title":{"rendered":"Morse Deco - mensaje morse"},"content":{"rendered":"<p>decodificador de un mensaje en morse, al puerto serial<\/p>\n<p>Puede visualizar el mensaje en la ventana del monitor Serial o algun programa que capture los datos.<\/p>\n<pre>\/*  DECOdificador morse\r\n *   recibe un mensajemorse\r\n *   equivale: estructura de datos char y string\r\n *   funciones: codifica y decodifica\r\n *\/\r\n\r\n\/\/ PIN para el LED, led integrado = 13\r\n#define PIN_LED 13\r\n\/\/Duraci\u00f3n de un s\u00edmbolo en  ms\r\n#define DURACION 250\r\n\r\nvoid setup(){\r\n  pinMode( PIN_LED, OUTPUT );\r\n  digitalWrite( PIN_LED, LOW );\r\n  Serial.begin(9600);\r\n}\r\n\r\nvoid loop(){\r\n  String mensajemorse = \". ... .--. --- .-..   .. -- .--. ..- .-.. ... .- -. -.. ---   .-.. .-   ... --- -.-. .. . -.. .- -..   -.. . .-..   -.-. --- -. --- -.-. .. -- .. . -. - --- \";\r\n  String mensaje;\r\n  mensaje = decodifica(mensajemorse);\r\n  Serial.println(mensaje);\r\n  Serial.println(mensajemorse);\r\n  delay(1500);\r\n}\r\n\r\n\/\/ Equivalente letra a c\u00f3digo Morse. Estructura de datos\r\nstatic const struct {const char letra, *codigo;} equivale[] =\r\n{\r\n  { 'A', \".-\" }, { 'B', \"-...\" }, { 'C', \"-.-.\" }, \r\n  { 'D', \"-..\" }, { 'E', \".\" }, { 'F', \"..-.\" }, \r\n  { 'G', \"--.\" }, { 'H', \"....\" }, { 'I', \"..\" },\r\n  { 'J', \".---\" }, { 'K', \"-.-\" }, { 'L', \".-..\" },\r\n  { 'M', \"--\" }, { 'N', \"-.\" }, { 'O', \"---\" }, \r\n  { 'P', \".--.\" }, { 'Q', \"--.-\" }, { 'R', \".-.\" },\r\n  { 'S', \"...\" }, { 'T', \"-\" }, { 'U', \"..-\" }, \r\n  { 'V', \"...-\" }, { 'W', \".--\" }, { 'X', \"-..-\" },\r\n  { 'Y', \"-.--\" }, { 'Z', \"--..\" }, \r\n  { ' ', \" \" },   \/\/espacio entre palabras \r\n  { '1', \".----\" }, { '2', \"..---\" }, { '3', \"...--\" },\r\n  { '4', \"....-\" }, { '5', \".....\" }, { '6', \"-....\" }, \r\n  { '7', \"--...\" }, { '8', \"---..\" }, { '9', \"----.\" }, \r\n  { '0', \"-----\" },\r\n  { '.', \".\u2013.\u2013.\u2013\" }, { ',', \"--..--\" }, { '?', \"..--..\" },\r\n  { '!', \"-.-.--\" }, { ':', \"---...\" }, { ';', \"-.-.-.\" }, \r\n  { '(', \"-.--.\" }, { ')', \"-.--.-\" }, { '\"', \".-..-.\" },\r\n  { '@', \".--.-.\" }, { '&amp;', \".-...\" },\r\n};\r\n\r\nString decodifica(String mensajemorse){\r\n  String simbolo, mensaje = \"\";\r\n  bool encontre = 0;\r\n  int j ,n, m, desde, proximo,cuenta;\r\n  n = mensajemorse.length();\r\n  m = sizeof equivale \/ sizeof *equivale;\r\n  desde = 0;\r\n  proximo = mensajemorse.indexOf(' ', desde);\r\n  while(desde&lt;n){\r\n    \/\/Busca equivalente\r\n    encontre = 0;\r\n    simbolo = mensajemorse.substring(desde, proximo);\r\n    j = 0;\r\n    while(j &lt; m &amp;&amp; encontre==0){\r\n      if(simbolo == equivale[j].codigo){\r\n        mensaje += equivale[j].letra;\r\n        encontre = 1;\r\n      }\r\n      j++;\r\n    }\r\n    desde = proximo+1;\r\n    \/\/ Espacios entre palabras\r\n    proximo = mensajemorse.indexOf(' ', desde);\r\n    while(mensajemorse[desde] == ' ' &amp;&amp; mensajemorse[proximo+1]== ' '){\r\n       proximo ++;\r\n    }\r\n  }\r\n  return mensaje;\r\n}\r\n<\/pre>\n","protected":false},"excerpt":{"rendered":"<p>decodificador de un mensaje en morse, al puerto serial Puede visualizar el mensaje en la ventana del monitor Serial o algun programa que capture los datos. \/* DECOdificador morse * recibe un mensajemorse * equivale: estructura de datos char y string * funciones: codifica y decodifica *\/ \/\/ PIN para el LED, led integrado = &hellip; <a href=\"https:\/\/blog.espol.edu.ec\/edelros\/morse-deco-mensaje-morse\/\" class=\"more-link\">Sigue leyendo <span class=\"screen-reader-text\">Morse Deco - mensaje morse<\/span><\/a><\/p>\n","protected":false},"author":8043,"featured_media":0,"comment_status":"closed","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[1293406],"tags":[],"class_list":["post-1172","post","type-post","status-publish","format-standard","hentry","category-morse"],"_links":{"self":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1172","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/users\/8043"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/comments?post=1172"}],"version-history":[{"count":5,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1172\/revisions"}],"predecessor-version":[{"id":1210,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/posts\/1172\/revisions\/1210"}],"wp:attachment":[{"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/media?parent=1172"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/categories?post=1172"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.espol.edu.ec\/edelros\/wp-json\/wp\/v2\/tags?post=1172"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}