ATtiny85 para controlar un relé, que encenderá y apagará un motor

2

Estoy tratando de controlar un relé de 5V (SRD-05VDC-SL-C) con el ATtiny85. Tengo un boceto simple cargado (ejemplo de Blink without Delay):

const int ledPin =  0;      // the number of the LED pin
int ledState = LOW;             // ledState used to set the LED
unsigned long previousMillis = 0;        // will store last time LED was updated
const long interval = 1000;           // interval at which to blink (milliseconds)

void setup() {
  pinMode(ledPin, OUTPUT);      
}

void loop()
{
  unsigned long currentMillis = millis();

  if(currentMillis - previousMillis >= interval) {
    previousMillis = currentMillis;   

    if (ledState == LOW)
      ledState = HIGH;
    else
      ledState = LOW;

    digitalWrite(ledPin, ledState);
  }
}

Todo está siendo alimentado por una batería de ión de litio 18650 (3.7V-4.2V) y la entrada medida tiene un promedio de 3.88V. Aquí hay un breve bosquejo de cómo se ve el circuito:

Surgen algunos problemas SIN el motor conectado:

  1. Si conecto la batería y el relé directamente, puedes escucharlo hacer clic, a pesar de que está clasificado a una entrada de 5V.
  2. Si intento disparar el relé desde Pin0, el osciloscopio mostrará que el voltaje de Pin0 es de aproximadamente 2.72 V, cuando el relé parece estar cambiando. Si reemplacé el relé con un LED, el voltaje de Pin0 es de aproximadamente 3.88V. ¿Qué causa la caída de voltaje? Creo que la corriente debería ser suficiente ya que es una batería de Li-Ion.
  3. ¿Qué tipo de protección necesito implementar en este circuito?
  4. ¿Será suficiente la batería de ión de litio para alimentar este circuito? Si conecto solo la batería, el relé y el motor, funciona bien. El problema viene con la adición del ATtiny85.
pregunta PGT

3 respuestas

4

Realmente no debe conducir la bobina de relé directamente desde el pin del microcontrolador.

En su lugar, recomendaría usar un transistor NPN entre GND (emisor) y la bobina (colector), luego conectar el otro lado de la bobina a la fuente positiva directamente.

Conecte un diodo hacia atrás en paralelo a la bobina (es decir, el cátodo del diodo a la alimentación positiva, el ánodo del diodo al colector del transistor). Este es un diodo de "retroceso" para protegerse contra el EMF posterior que se obtiene con los interruptores de la bobina.

Ponga algo así como una resistencia de 330 ohmios en serie entre la base del transistor y el pin del microcontrolador. Esto limita la corriente a la base del transistor a un nivel que está dentro de las capacidades del microcontrolador.

Esa es la forma más común que conozco para controlar un relé con un pin GPIO de un microcontrolador.

    
respondido por el vicatcu
0

Recomiendo agregar algún resultado de depuración en serie a ese boceto. Motores + micros sin algún tipo de aislamiento de suministro normal equivale a un microcontrolador que se reinicia constantemente. La salida en serie del recuento de bucles puede mostrar que simplemente se reinicia.

Es probable que necesites algunos condensadores para filtrarlo. Tal vez incluso un filtro LC.

    
respondido por el James
0

El circuito de salida del procesador no es un interruptor de resistencia cero. Es un par de MOSFET que tienen una resistencia finita cuando están encendidos, y las diferencias de voltaje que está viendo se deben a la caída de voltaje en el MOSFET debido a la corriente que está intentando extraer del pin de salida. La hoja de datos de ATTiny debe proporcionar la corriente de salida máxima recomendada y la caída de voltaje en esa corriente.

Debería hacer que el pin de salida maneje un transistor o FET que, a su vez, controle el relé. Esto debería permitir que casi el Vcc completo esté disponible para controlar el relé.

    
respondido por el Peter Bennett

Lea otras preguntas en las etiquetas