Bonjour,
j'essaie de contrôler ce mini-générateur
(https://learn.sparkfun.com/tutorials...444.1552684906 )
pour faire sortir un signal sinusoïdal dont je ferai varier la fréquence dans un filtre. Je souhaite contrôler le signal avec un arduino Uno
Voici mon montage :
Attention : j'ai utilisé l'image de l'arduino pro mini mais c'est bien le générateur sparkfun (https://cdn.sparkfun.com//assets/par...3/11420-03.jpg) que j'utilise (l'image n'était pas présente)
Le fil rouge et le fil noir correspondent au + et au - du générateur.
La diode du générateur s'allume mais je ne reçois pas le signal que je veux générer. Des fois j'ai un signal sinusoïdal des fois un signal continu des fois rien... Mais je n'ai pas eu le signal carré que j'essaie de mettre en place pour confirmer le montage et le programme
Je pense qu'il y a un problème dans le code car je n'ai sûrement pas réussi à programmer correctement la liaison SPI
Code PHP:
#include <SPI.h>
#include <SparkFun_MiniGen.h>
// Create an instance of the MiniGen device; note that this has no provision for
// alternate CLK and MOSI pins, but you *can* pass it a different CS (or FSYNC,
// as it's referred to elsewhere) pin number.
MiniGen gen;
void setup()
{
Serial.begin(9600);
digitalWrite(10, HIGH);
SPI.begin();
// Clear the registers in the AD9837 chip, so we're starting from a known
// location. Note that since the AD9837 has no DOUT, we can't use the
// read-modify-write method of control. At power up, the output frequency
// will be 100Hz.
gen.reset();
delay(2000);
// SQUARE is, as it suggests, a square wave. SQUARE is at the current output
// frequency.
gen.setMode(MiniGen::SQUARE);
delay(3000);
// This needs a little explanation. The choices are FULL, COARSE, and FINE.
// a FULL write takes longer but writes the entire frequency word, so you
// can change from any frequency to any other frequency. COARSE only allows
// you to change the upper bits; the lower bits remain unchanged, so you
// can do a fast write of a large step size. FINE is the opposite; quick
// writes but smaller steps.
gen.setFreqAdjustMode(MiniGen::FULL);
}
void loop(){
int tension;
tension = analogRead(A0);
float voltage = (tension/1024.0)*5;
Serial.println(voltage);
byte c;
// enable Slave Select
digitalWrite(SS, LOW); // SS is pin 10
// send test string
for (const char * p = "Fab" ; c = *p; p++)
SPI.transfer (c);
// disable Slave Select
digitalWrite(SS, HIGH);
delay (100);
}
J'ai donc utilisé cet exemple : https://github.com/sparkfun/SparkFun...n_Library_Test
Ma broche A0 et le serial.begin me servent à voir le signal lorsque je n'ai pas d'oscilloscope.
Pourriez-vous m'aider à faire marcher ce générateur svp ?
Merci beaucoup de m'avoir lu
-----