Soy nuevo en ingeniería eléctrica, por lo que probablemente sea un problema de novato.
Estoy usando una fuente de alimentación de pared (5V-2A) para alimentar el DC Motor y el Attiny85.
A C1 470uF para hacer que la potencia sea más estable. No sé si es necesario, pero ayudó.
Un led verde D1 para mostrar si está encendido.
Un botón de reinicio conectado a tierra para reiniciar (Duh).
Un relé (833H-1C-C) conectado al pin digital 0 del indicador para encender y apagar el motor.
Dos potenciómetros giratorios conectados a dos clavijas analógicas (2,3) para decidir cuánto tiempo estará encendida la mini bomba de agua (0-1023 a 1s-30s) y la otra para compararla con el sensor de humedad para decidir qué tan seco está el suelo deberá estar encendido para encender el motor.
Y un sensor de humedad .
#include "kPot.h" // my library, just analogReads
#define HUMIDITY_PIN 1 //humidity sensor
#define LEVEL_PIN 3 //rotational potentiometer
#define TIMER_PIN 2 //rotational potentiometer
#define MOTOR_PIN 0 //connected to the relay switch
kPot humiditySensor = kPot(HUMIDITY_PIN, 10); //(pin, average of 10 reads)
kPot levelPot = kPot(LEVEL_PIN, 10);
kPot timerPot = kPot(TIMER_PIN, 10);
int humidity = 0;
int level = 0;
int timer = 0;
void setup() {
pinMode(MOTOR_PIN, HIGH);
humidity = humiditySensor.Read();
level = levelPot.Read();
timer = timerPot.Read();
}
void loop() {
humidity = humiditySensor.Read();
level = levelPot.Read();
timer = timerPot.Read();
timer = map(timer, 0, 1023, 1000, 30000); //1s to 30s
if(humidity < level){
digitalWrite(MOTOR_PIN, HIGH);
delay(timer);
digitalWrite(MOTOR_PIN, LOW);
}
delay(300000); // 5min Update
}
El problema: la mini bomba de agua se enciende y no se detiene.
Quité el botón de reinicio para asegurarme de que no se estaba reiniciando, no ayudé.
Tal vez el motor está tomando demasiada corriente y reiniciando el attiny?
Probablemente tengo que poner un diodo en alguna parte, pero como dije, soy un novato, así que ...
gracias.