Pines de Arduino Nano no funcionan adecuadamente

Hola

He hecho un simple código que sí funciona en Arduino Uno pero no en Arduino Nano. Ya he bajado las tres últimas versiones del driver y lo he probado, también he utilizado las tres últimas versiones de Arduino AVR boards. Sí carga el código pero lo ejecuta mal, es decir, se salta pasos, deja de activar algunos pines digitales o en ocasiones deja de ejecutar el loop y se para. No marca error de sync o que no responda el programador.

Adjunto el código (ejemplo burdo)

int sol1 = 5;
int sol2 = 6;
int sol3 = 7;
int sol4 = 8;
int sol5 = 9;
int sol6 = 10;
int sol7 = 11;

void setup() {
  pinMode(sol1, OUTPUT);
  pinMode(sol2, OUTPUT);
  pinMode(sol3, OUTPUT);
  pinMode(sol4, OUTPUT);
  pinMode(sol5, OUTPUT);
  pinMode(sol6, OUTPUT);
  pinMode(sol7, OUTPUT);

}

void loop() {
  delay(200);
  digitalWrite(sol1, HIGH);
  delay(2000);
  digitalWrite(sol1, LOW);
  delay(6000);
  digitalWrite(sol2, HIGH);
  delay(2000);
  digitalWrite(sol2, LOW);
  delay(6000);
  digitalWrite(sol3, HIGH);
  delay(2000);
  digitalWrite(sol3, LOW);
  delay(6000);
  digitalWrite(sol4, HIGH);
  delay(2000);
  digitalWrite(sol4, LOW);
  delay(6000);
  digitalWrite(sol5, HIGH);
  delay(2000);
  digitalWrite(sol5, LOW);
  delay(6000);
  digitalWrite(sol6, HIGH);
  delay(2000);
  digitalWrite(sol6, LOW);
  delay(6000);
  digitalWrite(sol7, HIGH);
  delay(2000);
  digitalWrite(sol7, LOW);
  delay(6000);


}

Es un circuito de mosfets para activar motores de 12V y 36V. Adjunto el esquemático.

Cuando conecto la placa pcb al Arduino Uno funciona como debe de funcionar, por lo que descarto que sea el problema en la placa. Creo que el problema recae en el software de Arduino o el driver.

El Arduino Nano que compre es este.

Uso una Mac con Mojave y la versión del IDE que he usado es la 1.8.7 y 1.8.9.

Disculpen si resulta ser mi error.

Que raro lo que planteas. Yo uso NANOs siempre y no tengo que probar eso para saber que funciona perfectamente. Luce mas como un problema de hardware que software.

Solo dime que no usas un protoboard?
Y de todos modos verifica con todo apagado (sin tensión) la continuidad entre GND del NANO y GND de los MOSFETs.

NOTA:
Solo es un consejo para que tengas en cuenta a futuro: no dibujes lineas de un pin del NANO a la conexión Gate del MOSFET como una conexión oblicua.

No se dibujan así los esquemas electrónicos.
Esa mala costumbre viene de la gente no electrónica que empezó con Fritzing a dibujarlo de MODO INCORRECTO y se ha propagado como virus.

Las conexiones debe ser ortogonales, o sea con cambios de dirección a 90 grados.

Mejora la facilidad con la que se siguen las conexiones y cuando dibujas algo para que otro lo entienda eso es importante.
Gracias y solo es un consejo para mejorar.

Estas seleccionando la tarjeta adecuada (NANO) en el IDE ?

En protoboard funcionaba bien con el Nano. El desenlace de esto es que al probar continuidad entre los pines del Arduino Nano marcaba continuidad entre GND-D4-D8-D9, seguramente lo dañe en el proceso.

Ahora he conseguido otro Nano con el cual no he podido subir la programación, he probado quemar el bootloader desde mi Uno como una posible solución pero no ha dado resultado. Marca que no esta sincronizado y que no responde el programador. He visto que es un error común pero aún no he conseguido solucionarlo. A

Adjunto el error que marca en formato de código para que no dejar la respuesta muy larga.

Arduino: 1.8.9 (Mac OS X), Board: "Arduino Nano, ATmega328P (Old Bootloader)"

Sketch uses 1266 bytes (4%) of program storage space. Maximum is 30720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/cu.usbserial-A105N9UJ -b57600 -D -Uflash:w:/var/folders/1s/3j350hjd2yd5q104vnq8x_w40000gn/T/arduino_build_416683/flagginggg.ino.hex:i 

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/acuevasitu/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.usbserial-A105N9UJ
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done.  Thank you.

Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.

Gracias por los consejos

Probando con otro Arduino Nano más viejo que tenía sale el mismo error.

Adjunto error en formato de código para no dejar la respuesta tan larga.

Arduino: 1.8.9 (Mac OS X), Board: "Arduino Nano, ATmega328P (Old Bootloader)"

Sketch uses 1266 bytes (4%) of program storage space. Maximum is 30720 bytes.
Global variables use 9 bytes (0%) of dynamic memory, leaving 2039 bytes for local variables. Maximum is 2048 bytes.
/Applications/Arduino.app/Contents/Java/hardware/tools/avr/bin/avrdude -C/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf -v -patmega328p -carduino -P/dev/cu.wchusbserial1410 -b57600 -D -Uflash:w:/var/folders/1s/3j350hjd2yd5q104vnq8x_w40000gn/T/arduino_build_416683/flagginggg.ino.hex:i 

avrdude: Version 6.3-20171130
         Copyright (c) 2000-2005 Brian Dean, http://www.bdmicro.com/
         Copyright (c) 2007-2014 Joerg Wunsch

         System wide configuration file is "/Applications/Arduino.app/Contents/Java/hardware/tools/avr/etc/avrdude.conf"
         User configuration file is "/Users/acuevasitu/.avrduderc"
         User configuration file does not exist or is not a regular file, skipping

         Using Port                    : /dev/cu.wchusbserial1410
         Using Programmer              : arduino
         Overriding Baud Rate          : 57600
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 1 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 2 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 3 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 4 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 5 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 6 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 7 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 8 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 9 of 10: not in sync: resp=0x00
avrdude: stk500_recv(): programmer is not responding
avrdude: stk500_getsync() attempt 10 of 10: not in sync: resp=0x00

avrdude done.  Thank you.

Problem uploading to board.  See http://www.arduino.cc/en/Guide/Troubleshooting#upload for suggestions.

This report would have more information with
"Show verbose output during compilation"
option enabled in File -> Preferences.