Ciao a tutti!
Ho trovato finalmente un po' di tempo da dedicare allo studio della problematica frequenza PWM e dopo (a dire il vero breve) ricerca puff è venuta fuori questa libreria PWM.h che sembra fare proprio al caso mio!
se ho interpretato bene come utilizzarla il codice si evolve nel modo seguente:
#include <PWM.h>
int32_t frequency = 16000; //frequenza in Hz
int mosfetdriver = 9; // mosfet driver connected to digital pin 9
int analogPin = 3; // potentiometer connected to analog pin 3
int val = 0; // variable to store the read value
int duty_cycle = 0;
void setup()
{
InitTimersSafe();
bool success = SetPinFrequencySafe (mosfetdriver, frequency);
if (success){
pinMode (13, OUTPUT);
digitalWrite (13, HIGH);
}
pinMode(mosfetdriver, OUTPUT); // sets the pin as output
Serial.begin(9600);
}
void loop()
{
val = analogRead(analogPin); // read the input pin
analogWrite(mosfetdriver, val / 4); // analogRead values go from 0 to 1023, analogWrite values from 0 to 255
duty_cycle = (( val / 4) / 2.55);
Serial.println(val);
Serial.println(duty_cycle);
delay(10);
}
Purtroppo non ho modo in questo momento di provare il codice in quanto sono in partenza verso gli USA per lavoro, ma almeno la compilazione va a buon fine
Qualcuno ha suggerimenti in merito?
Come sempre grazie mille a tutti!
@icio
ho modificato lo stadio di alimentazione del mosfet gate driver utilizzando un L7812CV con un condensatore elettrolitico da 100uF in parallelo e devo dire che il comando del mosfet è diventato molto più fluido
avrei intenzione di affinare il circuito e dal datasheet ho notato che viene suggerito una configurazione di questo tipo (vedi allegato) pensi possa andare?
Luigi
