Forum: Mikrocontroller und Digitale Elektronik AD9833 Daten einlesen


Announcement: there is an English version of this forum on EmbDev.net. Posts you create there will be displayed on Mikrocontroller.net and EmbDev.net.
von Black D. (Gast)


Angehängte Dateien:

Lesenswert?

Moin zusammen,
ich habe einen AD9833 Signalgenerator mit dem ich ein Sinus Signal 
erzeuge. Dieses möchte ich jetzt gerne in dem Arduino Micro einlesen und 
dann weiter verarbeiten. Mit analogRead sehen die Werte aber aus wie auf 
dem Bild. Ließt der Arduino zu langsam die Werte ein? Was muss ich am 
code noch ändern damit die Werte eine Sinuskurve ergeben?
1
#include<AD9833.h>
2
AD9833 Sin(10);
3
4
void setup()
5
{
6
  pinMode(A1,INPUT);
7
  Sin.Begin();              
8
  Sin.EnableOutput(true);
9
}
10
11
void loop()
12
{
13
  //Sinussignal 50Hz
14
  Sin.ApplySignal(SINE_WAVE,REG0,50);
15
16
  int sensorValue = analogRead(A0);
17
  Serial.println(sensorValue);
18
  delay(1);        // delay in between reads for stability  
19
}

von Pete K. (pete77)


Lesenswert?

Soll das nicht in setup rein?:
    Sin.ApplySignal(SINE_WAVE,REG0,50);

Warum pinmode(A1) und dann von A0 lesen?

API lesen:
"It takes about 100 microseconds (0.0001 s) to read an analog input, so 
the maximum reading rate is about 10,000 times a second."

Je nachdem, wie lange der Rest benötigt, solltest Du vielleicht mal 
delay(100) einstellen.

von Black D. (Gast)


Lesenswert?

Pete K. schrieb:
> Warum pinmode(A1) und dann von A0 lesen?

Das sind noch Reste und habe ich vergessen zu löschen.
Mit
1
  int sensorValue = analogRead(A0);
initialisiere ich den eigentlichen Pin den ich verwende.

Das mit dem delay probiere ich aber mal. Danke.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.