
Incluso si el sistema se ensambla correctamente y hervido Está escrito un buen código, la probabilidad de que todo funcione como debería, es aproximadamente 50/50.
Puede haber tres razones para esto:
- Placas de soldadura sin soldadura
- Motores electricos
- Módulos de comunicación GSM
Y si en el primer caso es suficiente para recoger un soldador (lo que he estado haciendo desde el principio), entonces la interferencia electromagnética es un problema que no siempre se puede resolver mediante el blindaje y los filtros de potencia.
Debajo del corte, la forma más simple e "inalámbrica", como comprenderá de la foto, es una forma de cambiar el fusible de Arduino, cambiando al generador RC interno y apagando el control de potencia.
Y si "espiaba" la solución con el generador en los modeladores que utilizan motores potentes, entonces yo mismo llegué al segundo, incluso antes de conocer a Arduino.
Dado que el primer diseño fue un indicador de riego, consumió 0,5 mA en la fase activa (para una fuente de alimentación de 1 MHz y 2,4 V).
¿Por qué tableros ProMini? no contienen nada superfluo (excepto los LED ;-)

¿Por qué tomaste una decisión estable de forma continua al rehacer una placa para el programador?
Si tiene que hacer algo más de tres veces, ¡entonces trato de automatizarlo / simplificarlo!
Y debes admitir, cada vez que hacer publicaciones no es grave.
Mirando hacia el futuro, diré que probé los resultados en mis escalas de SMS.
Y si antes era necesario que el módulo de comunicación se registrara en el estándar GSM-900, entonces, con una distancia entre él y Arduinka de menos de un metro, el controlador comenzó a iniciarse.
Ahora todo está bien, en diferentes lugares donde se observó este efecto.
Todo lo que necesitamos es un peine de conectores PBS, un bisturí delgado y una lupa:

Con un bisturí, cortamos la ruta de reinicio (en un círculo azul), y en ningún caso soldamos los conectores a los lugares indicados por el óvalo amarillo.
Sí, conectamos el pin D10 con el restablecimiento recortado por cualquier segmento de par trenzado.
De hecho, obtenemos este esquema (honestamente copiado de Internet):

Solo que mucho más compacto, sin cables ni condensador, porque funciona.
Ahora conectamos nuestro futuro programador a USB-TTL, en ArduinoIDE configuramos el tipo de placa y el puerto, flasheamos el boceto ArduinoISP de los ejemplos (no olvide descomentar la línea #define USE_OLD_STYLE_WIRING)
En la carpeta \ arduino-your_version \ hardware \ arduino \ awr, edite el archivo BOARDS, en lugar del bloque Arduino Pro o Pro Mini, coloque lo siguiente:
## Arduino Pro or Pro Mini (3.3V, 8 MHz INTERNAL) w/ ATmega328P ## --------------------------------------------------- pro.menu.cpu.8MHzatmega328=ATmega328P (3.3V, 8 MHz INTERNAL) pro.menu.cpu.8MHzatmega328.upload.maximum_size=30720 pro.menu.cpu.8MHzatmega328.upload.maximum_data_size=2048 pro.menu.cpu.8MHzatmega328.upload.speed=57600 pro.menu.cpu.8MHzatmega328.bootloader.low_fuses=0xE2 pro.menu.cpu.8MHzatmega328.bootloader.high_fuses=0xDA pro.menu.cpu.8MHzatmega328.bootloader.extended_fuses=0xFF pro.menu.cpu.8MHzatmega328.bootloader.file=atmega/ATmegaBOOT_168_atmega328_pro_8MHz.hex pro.menu.cpu.8MHzatmega328.build.mcu=atmega328p pro.menu.cpu.8MHzatmega328.build.f_cpu=8000000L
Luego cambié los fusibles bajos FF> E2 (cambiar al generador interno) y los fusibles extendidos FD> FF (prohibición de control de potencia)
Eso es todo, reinicie ArduinoIDE, coloque el donante en nuestro programador, desconecte el cable DTR del USB-TTL (a menos que, por supuesto, tenga uno ;-)
En la sección Herramientas-Programador, seleccione "Arduino AS ISP", tipo de placa Arduino Pro o Pro Mini (3.3V, 8 MHz INTERNO) - Cargador de arranque Flash.
Eso es todo! No me molestaré con verificaciones innecesarias usando avrdude y otros trucos y así se describe en docenas de manuales: quería dar el material más simple.
En la foto del título, por cierto, hay una placa con un resonador de cerámica ya soldado.
Un bollo adicional: los bocetos en arduinki se pueden flashear sin presionar reiniciar, con Ctrl-Shift-U (Descargar usando el programador)
Además de la inmunidad al ruido, este método elimina la falla de la generación de cuarzo ordinario durante la sacudida y el choque.
Menos: precisión de los temporizadores + -5%.
¡Exitosos proyectos!
Andrey