Forum: Mikrocontroller und Digitale Elektronik Audiosignal in Arduino Board


von itch (Gast)


Lesenswert?

Hallo.

Die ist mein erster Post und ich bin noch ziemlich Ahnunglos. Ich habe 
jetzt begonnen mit dem Arduino Board zu spielen und versuche E-technik 
Grundwissen zu erwerben.

Ich möchte ein Stereo Audiosignal durch mein Arduino schleifen. Ich habe 
ein Duomilanove ATMega 328.

Ich habe bisher geschafft das Signal von meinem Notebook Line out auf 
einen der Analogpins zu bringen. Dazu habe ich den Plus pol in den 
Analogpin 0 und den Minus Pol in den Ground gesteckt. Dazwischen habe 
ich eine LED geklemmt um eine Hälfte der Wechselspannung zu sperren.
Das funktioniert soweit und ich konnte mit drei LEDs eine rudimentäre 
Lichtorgel bauen.

Nun zu meinem weitern Vorhaben: Ich möchte das Audiosignal über eine 
Frequenzweiche aufteilen und die einzelnen Kanäle in meine Analogpins 
bringen. Mit einer drei Wege Weiche hätte ich dann also 3x2 Kanäle mit 
denen ich meine Outputs steuern kann.

Mein Plan ist nun folgender. Zunächst geht das Signal durch die 
Frequenzweiche. Das ist erstmal einfach. Danach muss ich die Einzelnen 
Stränge jeweils gleichrichten und Verstärken. Da gehts los. Ich verstehs 
nicht.

Gleichrichten kann ich mit einem Brückengleichrichter. Soviel weiss ich 
schon. Aber beim Verstärken schau ich dumm aus der Wäsche. Ich weiss, 
das ich einen OP verwenden kann aber nicht wie genau.

Ich habe diese Schaltung gefunden: http://macetech.com/vuinput01big.png
aber kann sie leider nicht richtig lesen.
Ich denke sie macht genau was ich möchte. Allerdings weiss ich nicht ob 
die jetzt Verstärkt und Gleichschaltet oder nur Verstärkt.
Wer kann mir helfen die Zeichnung zu lesen. Ich verstehe z.B nicht warum 
es zwei VCC gibt. Das ist doch der Eingangsstrom? Warum hängt der erste 
Teil der Zeichnung da einfach frei rum? Was kommt dann bei Rightaudio 
rein wenn der Strom doch schon an zwei anderen Stellen rein kommt? Was 
für Dioden brauche ich? Wieviel Watt verträgt die ganze Geschichte am 
Ende, usw...

Ich hoffe jemand kann mir helfen.

Grüße, itch.

von  dsjkhfjkdls F. (compu2004)


Lesenswert?

Hallo,
bisweilen kenne ich mich mit Mikrocontrollern garnicht aus, lediglich 
ein wenig elektrotechnischer Grundkenntnisse hab ich auf dem speicher..
ich hab einen anderen Quellcode ein wenig modifiziert und voilla:
Die Idee mit ner Led IST EINFach und genial, ich werds versuchen..

1
 
2
3
int val;
4
void setup()
5
{
6
  pinMode(2,OUTPUT);// 10 leds hab ich angeschlossen rot 2x
7
  pinMode(3,OUTPUT);// GRÜN 5X UND GELB 2X
8
  pinMode(4,OUTPUT);
9
  pinMode(5,OUTPUT);
10
  pinMode(6,OUTPUT);
11
  pinMode(7,OUTPUT);
12
  pinMode(8,OUTPUT);
13
  pinMode(9,OUTPUT);
14
  pinMode(10,OUTPUT);
15
  pinMode(11,OUTPUT);
16
  Serial.begin(9600);
17
  
18
}
19
20
void loop()
21
{
22
  Serial.println(analogRead(0)); //audio(mono) is directly connected to Analog Pin zero
23
  val = analogRead(0);
24
 
25
 if (val > 350)
26
 digitalWrite(11,HIGH);
27
 if (val < 350)
28
 digitalWrite(11,LOW);
29
  
30
  if (val > 375)
31
 digitalWrite(10,HIGH);
32
 if (val < 375)
33
 digitalWrite(10,LOW); 
34
 
35
   if (val > 400)
36
 digitalWrite(9,HIGH);
37
 if (val < 400)
38
 digitalWrite(9,LOW);
39
 
40
   if (val > 425 )
41
 digitalWrite(8,HIGH);
42
 if (val < 425)
43
 digitalWrite(8,LOW);
44
45
    if (val > 450 )
46
 digitalWrite(7,HIGH);
47
 if (val < 450)
48
 digitalWrite(7,LOW);
49
50
  if (val > 500)
51
 digitalWrite(6,HIGH);
52
 if (val < 500)
53
 digitalWrite(6,LOW);
54
  
55
  if (val > 550)
56
 digitalWrite(5,HIGH);
57
 if (val < 550)
58
 digitalWrite(5,LOW); 
59
 
60
   if (val > 600)
61
 digitalWrite(4,HIGH);
62
 if (val < 600)
63
 digitalWrite(4,LOW);
64
 
65
   if (val > 650 )
66
 digitalWrite(3,HIGH);
67
 if (val < 650)
68
 digitalWrite(3,LOW);
69
   
70
    if (val > 700 )
71
 digitalWrite(2,HIGH);
72
 if (val < 700)
73
 digitalWrite(2,LOW);
74
 delay(25);   //dammit es nicht zu sehr flackert, einfach testen
75
}

von Martin G. (mager)


Lesenswert?

Frequenzanalyse in Software erfordert FFT (keine Ahnung, ob der Arduino 
schnell genug ist). Ich würde die Frequenzweiche analog aufbauen und für 
jeden Kanal wie angedeutet die Spannung messen...

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.