Aviso

El foro está en modo de sólo lectura.

Control de Ventiladores con Arduino : Control de velocidad por PWM y lectura de

Más
6 años 4 meses antes #929 por Gaboes169
Hola Buena tengo un drama, hice tal cual el vídeo sale, igualmente el esquema pero no me resulta ni me regula las rpm, al momento de conectar todo, el ventilador empieza a girar altiro, y solo para si desconecto los 12 vcc, resulta que probé con dos ventiladores, uno de 3 cables y otro de 4 pero con ninguno me resulto, este fue el código que use:

word salidaPwm = 3;
int potenciometro=A0;
int valor = 0;
int valorPwm = 0;
double pulso = 0;
double frecuencia = 0;
void setup () {
pinMode(salidaPwm, OUTPUT);
pinMode(potenciometro, INPUT);
configura25KhzPwm();
Serial.begin(115200);
}
void loop() {
valor=analogRead(potenciometro);
valorPwm=map(valor,0,1023,0,79);
cicloPwm(valorPwm);
medirRPM();
}
void configura25KhzPwm(){
TCCR2A = 0;
TCCR2B = 0;
TIMSK2 = 0;
TIFR2 = 0;
TCCR2A |= (1 << COM2B1) | (1 << WGM21) | (1 << WGM20);
TCCR2B |= (1 << WGM22) | (1 << CS21);
OCR2A = 79;
OCR2B = 0;
}
void cicloPwm(byte ocrb){
OCR2B = ocrb;
}
void medirRPM(){
pulso=pulseIn(11,HIGH);
//if(pulso>0.1)
// {
frecuencia=1000000/(2*pulso);
Serial.print("Frecuencia :");
Serial.print((frecuencia*60)/2);
//}
}

y al momento de iniciar el monitor serial, me muestra estas figuras:

i.imgur.com/r6WoDPa.png

estos ventiladores use

porfavor ayudenme D:
Adjuntos:
Más
6 años 4 meses antes - 6 años 4 meses antes #933 por Jose Luis
Vale vamos a ir definiendo lo que pasa. Primero voy a pegar el codigo que use yo :

word salidaPwm = 3;
int potenciometro=A0;
int valor = 0;
int valorPwm = 0;
double pulso=0;
double frecuencia = 0;
void setup() {
  pinMode(salidaPwm, OUTPUT);
  pinMode(potenciometro, INPUT);
  configura25KhzPwm();
  Serial.begin(115200);
}

void loop() {
  
  valor=analogRead(potenciometro);
  valorPwm=map(valor,0,1023,0,79);
  cicloPwm(valorPwm);
 //  Serial.println(valorPwm);
  medirRPM();
 // cicloPwm(19); // 25% (range = 0-79 = 1.25-100%)
 // delay(5000);
 // cicloPwm(39); // 50% (range = 0-79 = 1.25-100%)
 // delay (5000);
 // cicloPwm(59); // 75% (range = 0-79 = 1.25-100%)
 //delay (5000);
}

void configura25KhzPwm() {
  TCCR2A = 0;                                               // TC2 Control Register A
  TCCR2B = 0;                                               // TC2 Control Register B
  TIMSK2 = 0;                                               // TC2 Interrupt Mask Register
  TIFR2 = 0;                                                // TC2 Interrupt Flag Register
  TCCR2A |= (1 << COM2B1) | (1 << WGM21) | (1 << WGM20);    // OC2B cleared/set on match when up/down counting, fast PWM
  TCCR2B |= (1 << WGM22) | (1 << CS21);                     // prescaler 8
  OCR2A = 79;                                               // TOP overflow value (Hz)
  OCR2B = 0;
}

void cicloPwm(byte ocrb) {
  OCR2B = ocrb;                                            // PWM Width (duty)
}

void medirRPM(){
   pulso=pulseIn(11,HIGH);
 // if(pulso>0.1)
 //  {
      frecuencia=1000000/(2*pulso);
      Serial.print("Frecuencia :");
      Serial.println((frecuencia*60)/2);
 // }
}




Fijate bien donde contectas los cables.salida PWM pin 3, Potencimetro A0, Pulso de entrada pin 11.
Última Edición: 6 años 4 meses antes por Jose Luis.
El siguiente usuario dijo gracias: Gaboes169
Más
6 años 4 meses antes - 6 años 4 meses antes #937 por Gaboes169
vale gracias, lo ultimo que pido xd, como que la frecuencia que me muestra es rara, nose como que la dejo en un lado el potenciometro, y se empieza a cambiar el valor, como que empieza a oscilar
Última Edición: 6 años 4 meses antes por Gaboes169.
Más
6 años 4 meses antes #938 por Jose Luis
Podias poner una captura de pantalla para ver las cosas raras? Le has puesto una resistencia de 4k7 entre la salida de rpm del ventilador y positivo?
Más
6 años 4 meses antes - 6 años 4 meses antes #942 por Gaboes169
dejando el potenciometro quieto (tambien esta incluida la resistencia de 4k7 pd: y si bajo el potenciometro a full, me tira el ''inf'' o si lo dejo quiero como sale en la imagen, igualmente cada tantos valor entregados igual me tira el ''inf''
Adjuntos:
Última Edición: 6 años 4 meses antes por Gaboes169.
Más
6 años 4 meses antes #943 por Jose Luis
La foto del montaje salio borrosa y no veo la resistencia pullup ni el valor que tiene, Podias indicarmela?
Tiempo de carga de la página: 0.117 segundos
Gracias a Foro Kunena