Lea de PWM exactamente lo que le escribí [cerrado]

-1

Tengo stm32 bluepill, intenté escribirme de forma analógica (es decir, pa0 conectado a pa1, y escribir de forma análoga a pa0 y analogRead pa1).

Ahora escribo un valor pequeño (analogWrite (1, 10)) y no puedo leer este valor en analogRead ...

¿Por qué está sucediendo? Parece que no hay conexión entre lo que escribo en PWM y lo que leo con el ADC ...

El código:

    void setup() {
  // put your setup code here, to run once:

  Serial.begin(9600);

}

   void loop() {
  // put your main code here, to run repeatedly:

  // read what we write
  sample = analogRead(0);  // 0 == pa0  

  Serial.print("got: ");
  Serial.print(sample);       // even do I write to pa0 the value 10 , I dont get here the value 10.
  Serial.print(" write: ");
  Serial.println(10);

  // write what we want to read
  analogWrite(1, 10);

}

Esta es la configuración del hardware:

    
pregunta dog scotter

1 respuesta

0

Oh, tu suposición es incorrecta. La función AnalogWrite genera un pwm con un ciclo de trabajo específico. Si mide el valor de salida con un multímetro, verá el valor RMS. Si llama a analogWrite (1.127), la función genera una onda cuadrada con un ciclo de trabajo del 50%. Con un multimiter, medirá alrededor de 2.5 V si el nivel lógico es 5 V. Así que cuando llama a la función de lectura analógica, no obtendrá el mismo valor.

    
respondido por el Baciu Vlad-Eusebiu

Lea otras preguntas en las etiquetas