Las señales analógicas
Enviado por GearGT08 • 20 de Noviembre de 2017 • Tutorial • 750 Palabras (3 Páginas) • 230 Visitas
Objetivo:
Realizar la comunicación serial de la tarjeta STM32F411 con mbed y dentro de esta, realizar un programa que haga la Lectura de 3 señales ADC, las cuales son: Valor decimal de un Potenciómetro alimentado de 0 a 3.3, Voltaje de un Potenciómetro alimentado de 0 a 3.3, Temperatura en grados C de un LM35
Marco Teórico
Las señales analógicas
Con anterioridad se ha visto cómo funcionan las señales digitales, que son aquellas que pueden tomar dos valores, 0 y 1 (representando valores que normalmente con stm32f411 serán 0 y 3.3V, o en su caso de 0 y 5 V).
[pic 1]
Figura 1: Señales Digitales.
Además, hay otro tipo de señales, llamadas analógicas. Lo que hace especial a las señales analógicas es que éstas pueden tomar cualquier valor [1].
[pic 2]
Figura 2: Señales Analógicas.
Un microcontrolador solo entiende señales digitales (1’s y 0’s), por lo tanto para poder leer señales analógicas necesitamos los convertidores Analógico a Digital (ADC)
El microcontrolador de STM32F411 contiene internamente un conversor analógico a digital que tiene una resolución de 12 bits, devolviendo enteros entre 0 y 4095. [2].
Cómo funciona un conversor analógico a digital:
[pic 3]
Figura 3: ADC.
Los microcontroladores STM32F411 forman parte de las líneas STM32 Dynamic Efficiency ™. Estos dispositivos son el nivel de entrada a la serie F4 de alto rendimiento y ofrecen el mejor equilibrio entre el consumo de energía dinámico (en modo de funcionamiento) y el rendimiento de procesamiento.. En la figura 4 se muestran los pines de dicha tarjeta [3].
[pic 4]
Figura 4: Pines del STM32F411
Materiales
- Tarjeta STM32F411.
- Protoboard.
- DipSwitch
- Jumpers
- LEDs
- Cables.
- Cable de alimentación.
Desarrollo
Las entradas analógicas se caracterizan por leer valores de tensión de 0 a 3.3 Voltios con una resolución de 4096 (12 bits). Si dividimos 3.3 entre 4096 tenemos que ser capaz de detectar variaciones en el nivel de la señal de entrada.
Para hacer la lectura primero se declara AnalogIn con el nombre de lo que se leerá, y el pin que recibirá la señal. También se declara serial pc para hacer la comunicación serial entre la tarjeta y mbed.
Dentro del código las variables son declaradas como float para que nos arroje el valor en decimal y sea más fácil la lectura. Después se hicieron las conversiones necesarias para convertir a voltaje las lecturas, ya que cuando se lee el valor analógico la función nos devolverá un valor que va de 0 a 1, y para que dé un valor de 0 a 4095 es necesario multiplicar el valor por 4095, en proporción al nivel de la señal de entrada. Para una entrada nula obtendremos el valor 0, para una entrada de 1.65 Voltios 2047 (la mitad de 4095) y para 3.3 Voltios 4095, es decir que el primer potenciómetro arrojará solamente los valores decimales.
...