Bonjour,
j'ai fait un montage avec un MCP4725 pour générer un signal en lisant les valeurs d'un tableau.
Pour l'instant, une demi alternance de sinusoïde. Par défaut, elle est calée entre -2.75V et +1.95V.
Je n'arrive pas à avoir un signal toujours positif 0V à +5V, ou 0V à +2.5V, peut importe.
Le programme qui sort la bonne forme de signal, mais mal calé :
....Si qq a la solution, Merci d'avance
//float PinValeurTension = A0;
//float TensionValue;
#include <Adafruit_MCP4725.h>
Adafruit_MCP4725 dac;
const PROGMEM uint16_t Sine[180]
{
0 , 71 , 143 , 214 , 286 , 357 , 428 , 499 , 570 , 641 ,
711 , 781 , 852 , 921 , 991 , 1060 , 1129 , 1198 , 1266 , 1333 ,
1401 , 1468 , 1534 , 1600 , 1666 , 1731 , 1795 , 1859 , 1923 , 1986 ,
2048 , 2109 , 2170 , 2231 , 2290 , 2349 , 2407 , 2465 , 2522 , 2578 ,
2633 , 2687 , 2741 , 2793 , 2845 , 2896 , 2946 , 2995 , 3044 , 3091 ,
3138 , 3183 , 3228 , 3271 , 3314 , 3355 , 3396 , 3435 , 3473 , 3511 ,
3547 , 3582 , 3616 , 3649 , 3681 , 3712 , 3742 , 3770 , 3798 , 3824 ,
3849 , 3873 , 3895 , 3917 , 3937 , 3956 , 3974 , 3991 , 4006 , 4021 ,
4034 , 4045 , 4056 , 4065 , 4073 , 4080 , 4086 , 4090 , 4093 , 4095 ,
4095 , 4095 , 4093 , 4090 , 4086 , 4080 , 4073 , 4065 , 4056 , 4045 ,
4034 , 4021 , 4006 , 3991 , 3974 , 3956 , 3937 , 3917 , 3895 , 3873 ,
3849 , 3824 , 3798 , 3770 , 3742 , 3712 , 3691 , 3649 , 3616 , 3582 ,
3547 , 3511 , 3473 , 3435 , 3396 , 3355 , 3314 , 3271 , 3228 , 3183 ,
3138 , 3091 , 3044 , 2995 , 2946 , 2896 , 2845 , 2793 , 2741 , 2687 ,
2633 , 2578 , 2522 , 2465 , 2407 , 2349 , 2290 , 2231 , 2170 , 2109 ,
2048 , 1986 , 1923 , 1859 , 1795 , 1731 , 1665 , 1600 , 1534 , 1468 ,
1401 , 1333 , 1266 , 1198 , 1129 , 1060 , 991 , 921 , 852 , 781 ,
711 , 641 , 570 , 499 , 428 , 357 , 286 , 214 , 143 , 71 ,
} ;
void setup(void) {
Serial.begin(250000);
dac.begin(0x60);
pinMode(PinValeurTension, INPUT);
}
void loop(void) {
for (int angle = 0; angle < 180; angle++) {
dac.setVoltage(pgm_read_word(&(Sine[angle])), false);
Serial.println (Sine[angle]);
// TensionValue = digitalRead(PinValeurTension);
// Serial.println (TensionValue);
}
}

