Generar 1.7MHz para Invernadero automatico

Mini invernadero automatizado, usando un sensor de temperatura y humedad DHT22

Para producir frio o calor, simplemente senso temperatura y activo unos reles que luego iran a los equipos correspondientes

La parte de humedad se supone que genere alta frecuencia pero no se como adaptar la salida de 40mA
para obtener una salida de potencia con la misma frecuencia, quizas un MOSFET pero no sabria como, agradeceria el conocimiento de alguien más en ese aspecto

#include <DHT.h>
        #include <DHT_U.h>
        
        #define DHTPIN 6 
        #define DHTTYPE DHT11 //Define sensor as DHT11
        
        #define RELAY1  4  // Relay heating
        #define RELAY2  5  // Relay cooling
        
        int red = 8; // red LED heating
        int blue = 9; // blue LED cooling
        
        DHT dht(DHTPIN, DHTTYPE);
        
        float temperature;
        float humidity;
        
        // Frequency Generator code
        const uint8_t OUTPUT_PIN = 3;  // = OC2B pin inamovible
        const uint8_t PERIOD = 9;      // 9 CPU cycles ~ 1.778 MHz
        
        void setup()
        {
         
          pinMode(red, OUTPUT);
          pinMode(blue, OUTPUT);
          pinMode(RELAY1, OUTPUT);
          pinMode(RELAY2, OUTPUT);
        
          // Freq generator code
            pinMode(OUTPUT_PIN, OUTPUT);
            TCCR2B = 0;           // stop timer
            TCNT2  = 0;           // reset timer
            TCCR2A = _BV(COM2B1)  // non-inverting PWM on OC2B
                   | _BV(WGM20)   // fast PWM mode, TOP = OCR2A
                   | _BV(WGM21);  // ...ditto
            TCCR2B = _BV(WGM22);  // ...ditto
            OCR2A = PERIOD - 1;
            OCR2B = PERIOD/2 - 1;
        }
        
        void soundBuzzer() {
            TCCR2B |= _BV(CS20);  // F_CPU / 1
        }
        
        void silenceBuzzer() {
            TCCR2B &= ~_BV(CS20);
            TCNT2 = 0;
        }
          //End of freq generator code
        void loop()
        {
          delay(3000); //tiempo entre medidas. 3 sec for DHT22
        
          temperature = dht.readTemperature(); //mide temperatura
          humidity = dht.readHumidity(); //lee humedad
        
         if(temperature < 23)
            {
        digitalWrite(red,HIGH);
        digitalWrite(blue,LOW);
         
         
        digitalWrite(RELAY1,0); 
        digitalWrite(RELAY2,1);   
             }
         else if(temperature > 27)
            {
        digitalWrite(RELAY1,1);
        digitalWrite(RELAY2,0); 
        digitalWrite(red,LOW);
        digitalWrite(blue,HIGH);
             }
        else
            {
        digitalWrite(RELAY1,0);
        digitalWrite(RELAY2,0); 
        digitalWrite(red,LOW);
        digitalWrite(blue,LOW);
             }
    
    if(humidity < 30)
     {
      TCCR2A |= _BV(COM2B1);
      }
    else if(humidity > 35)
        {
       TCCR2A &= ~_BV(COM2B1);
        
        }
    }

El codigo es un borrador el original se subiera cuando este terminado

Saludos

EDIT: tranquilo mod, no entiendo como ver mis propios posteos y pense que el otro habia desaparecido, no trato de “duplicar” jeez chill out

**Moderador:**Hola, bienvenido al foro Arduino.
En la sección proyectos tienes estos dos hilos que debiste haber leído antes de postear

Como tu consulta es para otra sección lo muevo a Hardware.
En el título no debe usarse la palabra Ayuda. Edita!!
Los códigos se postean usando etiquetas. Edita
Normas del foro

Porque no haces un diagrama (consulta las normas para postearlo) y nos entendemos mejor.

Quieres generar 1.7Mhz en el pin 3.
Eso funciona?

Ok googlea acerca de motores de paso y servomotores, para que tengas una idea de lo que existe que esta al alcance para construir.

Lo que comentas es un mando a distancia, eso se puede construir también con arduino, incluso se puede hacer con un ESP8266 (un chip que tiene wifi) y con un web server se genera una página a la que puedes llegar desde el movil directamente (haciendo trabajar al chip como un access point) y con eso te quitas de encima el rollo de la comunicación, solo debes preocuparte por hacer una pagina web en donde puedas controlar las variables del dispositivo.

Creo que esa sería una solución bastante sencilla.

Moderador:
Un doble posteo es una de las peores faltas en este foro.
Con esta vas sumando tu segunda falta.
Revisa tus privados.

Normas del foro