Arduino Nano "Chino" carga programa pero no funciona bien. SOLUCIONADO

Hola. Acabo de recibir de Aliexpres 2 “Arduinos Nano” a los cual (después de instalar el driver CH341) he cargado el siguiente programa:

void setup() {
  Serial.begin(9600);
  delay(100);
  pinMode(LED_BUILTIN, OUTPUT);
}

void loop() {
  for (int a = 0; a < 3; a++)
  {
    digitalWrite(LED_BUILTIN, HIGH);
    Serial.println("*** On ***");
    delay(200);
    digitalWrite(LED_BUILTIN, LOW);
    Serial.println("*** Off ***");
    delay(200);
  }
  delay(500);
  for (int b = 0; b < 3; b++)
  {
    digitalWrite(LED_BUILTIN, HIGH);
    Serial.println("*** On ***");
    delay(1000);
    digitalWrite(LED_BUILTIN, LOW);
    Serial.println("*** Off ***");
    delay(1000);
  }
}

El programa hace parpadear el Led integrado con el código morse SOS a la vez que envía mensajes de On y Off por el monitor serial.
Cargo el mismo programa en otro Arduino Nano (también chino) que tengo y funciona como es de esperar.

Al cargar el programa en cualquiera de lo dos Nanos nuevos, éste se carga sin problemas dando el mensaje de “Subido” en el IDE.

El problema es que, en la ejecución, el led parapadea a una velocidad unas 3 veces mas lenta que lo programado, y al mirar en el monitor Serial en lugar de leer:

“*** On ***
*** Off ***
*** On ***
*** Off ***
*** On ***
*** Off ***
*** On ***
*** Off ***
*** On ***” etc…
Leo algo parecido a lo siguiente:

“⸮x⸮⸮x⸮⸮x⸮⸮⸮x⸮⸮x⸮⸮⸮x⸮⸮x⸮⸮⸮x⸮⸮x⸮”.

¿Alguien sabría decirme cual es el problema que tengo? Espero haberme explicado.

Varias cosas: Descarto que tmb te dice SUBIDO

  1. Si es NO, has verificado que toma el mismo puerto que el anterior?

  2. la velocidad del monitor serie se corresponde con la del código? esta el monitor serie a 9600?

El programa sube "Parpadean los leds TX y RX" luego el ide dice que "Subido".
Por supuesto, el monitor serial está a 9600.
Además, no sólo está el problema del serial, ¡El led parapadea más lento!

Nno menosprecies mis consultas porque yo no estoy frente a tu Arduino y debo entender que puede estar ocurriendo y además tu escribiste que el sistema muestra

"⸮x⸮⸮x⸮⸮x⸮⸮⸮x⸮⸮x⸮⸮⸮x⸮⸮x⸮⸮⸮x⸮⸮x⸮".

y eso habitualmente tiene que ver con BAUDIOS diferentes a los que se establecen por código.

Tal vez sea una toneria pero prueba cambiar

LED_BUILTIN por otra leyenda y definelo asi

#define LED_BIN  13 y luego usa esta etiqueta en lugar de LED_BUILTIN.

Yo una vez tuve uno que el cristal en vez de ser de 16.000Mhz traía una de 8.000 Mhz (venía así) y todo me lo hacía mucho mas lento. Su mundo iba más lento hasta que me dí cuenta de que el problema estaba ahí.

No digo que sea también tu caso, pero hasta que me dio por mirar eso un dia me estuvo mareando.

No es mi intención menospreciar ni mucho menos. Entiendo que es inusual, lo mas probable es que me hayan estafado con los Nano. Pero es interesante y curioso, por eso lo comento. Seguro que solucionando bobadas de este tipo se aprende mucho.
He cambiado el programa y sigue ocurriendo lo mismo:

#define LED_BIN  13
void setup() {
Serial.begin(9600);
  delay(100);
  pinMode(LED_BIN, OUTPUT);
}
void loop() {
  for (int a = 0; a < 3; a++)
  {
    digitalWrite(LED_BIN, HIGH);
    Serial.println("*** On ***");
    delay(200);
    digitalWrite(LED_BIN, LOW);
    Serial.println("*** Off ***");
    delay(200);
  }
  delay(500);
  for (int b = 0; b < 3; b++)
  {
    digitalWrite(LED_BIN, HIGH);
    Serial.println("*** On ***");
    delay(1000);
    digitalWrite(LED_BIN, LOW);
    Serial.println("*** Off ***");
    delay(1000);
  }
}

Bien partamos del supuesto que tu cristal sea de otra frecuencia.
Baja los tiempos a la mitad y sube los baudios al doble

#define LED_BIN  13
void setup() {
Serial.begin(19200);
  delay(100);
  pinMode(LED_BIN, OUTPUT);
}
void loop() {
  for (int a = 0; a < 3; a++)
  {
    digitalWrite(LED_BIN, HIGH);
    Serial.println("*** On ***");
    delay(100);
    digitalWrite(LED_BIN, LOW);
    Serial.println("*** Off ***");
    delay(100);
  }
  delay(250);
  for (int b = 0; b < 3; b++)
  {
    digitalWrite(LED_BIN, HIGH);
    Serial.println("*** On ***");
    delay(500);
    digitalWrite(LED_BIN, LOW);
    Serial.println("*** Off ***");
    delay(500);
  }
}
;

Pues va a ser algo del cristal, el problema es que es muy pequeño y no alcanzo a leerlo.
He cambiado

Serial.begin(38400);

y ahora puedo leer correctamente desde el puerto serial ¡conectando a 9600!. a Parte del problema con los delays, ¿es posible que pueda hacer correr correctamente un programa si prescindo del uso de delays?
Desde luego, me han timado como a un chino, pero tal vez pueda hacerlo funcionar. El programa que tengo que cargar realmente es otro más complejo. lo probaré…

Bueno, pero comienza entonces mirando tu placa y busca la identificación del cristal que esta usando.

No es por nada pero recuerdas que te dije que era un problema de BAUDIOS... resulto que si lo era asociado claro al cristal.
Cuando compres algo siempre revisa las calificaciones pero además léelas y te aclaro que a todos nos pueden timar.

Intenta, si acaso, hacerle una foto con el movil y así despues poder ampliarla, o con el zoom, si te es demasiado pequeño de leer y no dispones de otro sistema es el más a mano que solemos tener

Publica ademas el link de donde lo compraste para hacer la advertencia al fabricante o vendedor. No puede ni debe vender NANOs en esas condiciones.

No se ve nada en el cristal de cuarzo. Los dejo por perdidos, paso de perder más el tiempo. Dejo el link donde lo compré:

No compres en este link!

Cosas extrañas que nos queman las neuronas, menos mal que al final de todo se aprende. Gracias.

Los podrás aprovechar para algunas cosas que hagas que sean más simples y no le afecte tanto el tema de la lentitud como hice yo con el que tuve. Pero al menos ya no te calientas más la cabeza con algo que no se entendía el porqué. Saludos

Ese link es al sitio Aliexpress y además no existe o me da error.
Tal vez fue un error de tu parte. Verifícalo por favor.

1,58 USD + 0.23 de envio No es para que te hagas tanto drama!!

Pide en algun proveedor que tenga muchas ventas, siempre es asi.

Este link es de un proveedor que tiene +9000 ventas y es para que le sueldes los pines.

Es una buena opción