tp analogique numérique + numérique analogique

Dependencies:   mbed

Committer:
msouchet
Date:
Thu Apr 12 09:14:46 2018 +0000
Revision:
0:b4f22fa54d82
tp conversion analogique num?rique + num?rique analogique

Who changed what in which revision?

UserRevisionLine numberNew contents of line
msouchet 0:b4f22fa54d82 1 #include "mbed.h"
msouchet 0:b4f22fa54d82 2
msouchet 0:b4f22fa54d82 3 AnalogIn analog_value(A0);
msouchet 0:b4f22fa54d82 4 AnalogOut sortie(D7);
msouchet 0:b4f22fa54d82 5 Timer Chronometre;
msouchet 0:b4f22fa54d82 6 Ticker interruption;
msouchet 0:b4f22fa54d82 7
msouchet 0:b4f22fa54d82 8 float amplitude;
msouchet 0:b4f22fa54d82 9 DigitalOut led(LED1);
msouchet 0:b4f22fa54d82 10
msouchet 0:b4f22fa54d82 11 void signal_de_sortie() {
msouchet 0:b4f22fa54d82 12 sortie = (float) (0.5+amplitude*sin(Chronometre.read()*314));
msouchet 0:b4f22fa54d82 13 }
msouchet 0:b4f22fa54d82 14
msouchet 0:b4f22fa54d82 15 int main()
msouchet 0:b4f22fa54d82 16 {
msouchet 0:b4f22fa54d82 17 Chronometre.start();
msouchet 0:b4f22fa54d82 18 float meas_r;
msouchet 0:b4f22fa54d82 19 float meas_v;
msouchet 0:b4f22fa54d82 20 unsigned int valeur_numerique;
msouchet 0:b4f22fa54d82 21 interruption.attach(&signal_de_sortie, 0.001); // exécute la fonction 1000 x par secondes
msouchet 0:b4f22fa54d82 22
msouchet 0:b4f22fa54d82 23 printf("\nAnalogIn example\n");
msouchet 0:b4f22fa54d82 24
msouchet 0:b4f22fa54d82 25 while(1) {
msouchet 0:b4f22fa54d82 26
msouchet 0:b4f22fa54d82 27 meas_r = analog_value.read(); // Read the analog input value (value from 0.0 to 1.0 = full ADC conversion range)
msouchet 0:b4f22fa54d82 28 meas_v = meas_r * 3300; // Converts value in the 0V-3.3V range
msouchet 0:b4f22fa54d82 29 valeur_numerique = analog_value.read_u16();
msouchet 0:b4f22fa54d82 30
msouchet 0:b4f22fa54d82 31 // Display values
msouchet 0:b4f22fa54d82 32 printf("measure = %d = %f = %.0f mV\n", valeur_numerique, meas_r, meas_v);
msouchet 0:b4f22fa54d82 33
msouchet 0:b4f22fa54d82 34 // sortie = meas_r;
msouchet 0:b4f22fa54d82 35 amplitude = meas_r / 2;
msouchet 0:b4f22fa54d82 36
msouchet 0:b4f22fa54d82 37 // LED is ON is the value is below 1V
msouchet 0:b4f22fa54d82 38 if (meas_v < 1000) {
msouchet 0:b4f22fa54d82 39 led = 1; // LED ON
msouchet 0:b4f22fa54d82 40 } else {
msouchet 0:b4f22fa54d82 41 led = 0; // LED OFF
msouchet 0:b4f22fa54d82 42 }
msouchet 0:b4f22fa54d82 43
msouchet 0:b4f22fa54d82 44 wait(1.0); // 1 second
msouchet 0:b4f22fa54d82 45 }
msouchet 0:b4f22fa54d82 46 }