Su equipo necesita obtener el control de la versión del software lo antes posible . Perder su código fuente es inaceptable. Incluso si este no es un entorno profesional, perder el código fuente desperdicia el tiempo de su equipo. No importa quién tenga la culpa, volverá a suceder si no obtiene un control de fuente básico en su lugar. Git, Subversion, Mercurial, cualquiera de estos son mejores que nada.
¿Qué pasa si su Arduino Uno "explotó" y necesita ser reparado o reemplazado? Necesitará volver a cargar el firmware en la nueva placa. Si sospecha que su placa se frió y la fuente de alimentación de 5V sigue siendo buena, lo primero que debe intentar es volver a cargar el firmware. A veces, eso es suficiente para solucionarlo si fue una interrupción causada por problemas con la fuente de alimentación; esto es muy posible si está impulsando motores.
No es necesario que intente construir un amplificador de un solo transistor: si su placa no tiene niveles de salida lógicos válidos, entonces está defectuoso, y tratar de amplificar una placa muerta no lo llevará a ningún lado. Si su Arduino está muerto, puede repararlo reemplazando el chip Atmega328. Si su Arduino no está muerto, ya puede generar niveles de lógica de 5V. Este problema no se resolverá agregando más transistores. (a menos que el problema resulte ser que la carga requiere más de 20 mA. Entonces un amplificador de transistor ayudaría).
Y para mi información, ahora mismo encendí mi Arduino Uno, cargué un firmware simple (vea a continuación) y mido 5.035VDC (sin carga) en mi DMM HP34401A. Así que sí, de hecho, un Arduino Uno normalmente maneja niveles de 5V en sus pines de salida digital. Como creo que ya sabíamos. Esto no debería sorprender si ha leído el Hoja de datos del microcontrolador Atmel ATmega328 .
Para VCC = 5V, VOHmin se especifica como mínimo como mínimo 4.2V, probado con una corriente de salida de 20 mA . Entonces, si estás midiendo 40 mV, está sucediendo una de dos cosas.
- El Arduino está tratando de impulsar una salida lógica alta, pero algo está extrayendo mucho más de 20 mA del pin de salida digital, posiblemente violando la calificación de Absolute Maximum (daño permanente) de 40mA por pin.
- El Arduino en realidad está reduciendo la lógica cuando se espera que la lógica sea alta.
Ya que su código fuente se ha ido, es imposible decir con certeza qué está intentando hacer su Arduino. Pero podría intentar desconectar el Arudino de su controlador de motor y cargar este nuevo firmware, y mira si obtienes el mismo resultado que obtuve:
void setup() {
// put your setup code here, to run once:
pinMode(5, OUTPUT); // INPUT | OUTPUT | INPUT_PULLUP
digitalWrite(5, HIGH); // HIGH | LOW
}
void loop() {
// put your main code here, to run repeatedly:
}
Sin nada más conectado, el pin digital 5 debe dirigirse a lógica alta (5V). Si esta simple prueba no funciona, su Arduino ha fallado.