Pages: [1]   Go Down
Author Topic: 6x Clock Output?  (Read 652 times)
0 Members and 1 Guest are viewing this topic.
Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Leute,

ich versuche grade, mit dem Arduino 6 einzeln in der Frequenz steuerbare Clocks zwischen 1-50 kHz zu bekommen.
Dass das wohl nicht ohne externe Bauteile geht hab ich schon rausgefunden. Sollte dem nicht so sein lasse ich mich gerne belehren  smiley
Zuletzt habe ich versucht, einen NE555 über einen PWM Out anzusteuern (PWM Out -> Threshold), das hat aber nicht so richtig funktioniert, die Frequenzen ließen sich nur sehr schwer steuern und schwankten auch stark. Hab die Idee in einem anderen Forum gefunden, bin mir aber nicht sicher ob ich alles richtig verstanden habe.

Kann mir da jemand helfen? Bin ich wenigstens ungefähr auf dem richtigen Dampfer?

Grüße,
Malte
Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 7
Posts: 474
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Hallo Malte,

für niedrige Frequenzen funktioniert das ganz gut:
Code:
#define PIN7 7
#define PIN8 8
#define TOGGLE7 250  // 2x250us entspricht  2000Hz
#define TOGGLE8 10  // 2x10us entspricht  50kHz

unsigned long count7;
unsigned long count8;

void setup() {
    pinMode(PIN7, OUTPUT);     
    pinMode(PIN8, OUTPUT);     
}

void loop() {
  if (micros()-TOGGLE8 > count8) {
    count8 = micros();
    digitalWrite(PIN8, !digitalRead(PIN8));  // toggle Output
  }
  if (micros()-TOGGLE7 > count7) {
    count7 = micros();
    digitalWrite(PIN7, !digitalRead(PIN7));  // toggle Output
  }
}

Für 2000Hz messe ich am Oszi ca. 1800Hz, für 50kHz funktioniert das aber nicht, weil die Laufzeiten der Abfragen zu lang werden. Das wird natürlich noch ungenauer, je mehr Ports du steuern willst. Genau geniommen müßte man den Überlauf von micros() auch noch abfangen.
Zuletzt habe ich versucht, einen NE555 über einen PWM Out anzusteuern (PWM Out -> Threshold)
Das kann nicht funktionieren. PWM Out ist eine Rechtecksignal, Threshold Eingang erwartet eine Gleichspannung. Da mußt du dem PWM Ausgang einen Tiefpass nachschalten.

Gruß
Reinhard
Logged

Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Quote
Da mußt du dem PWM Ausgang einen Tiefpass nachschalten.

Ja, das hab ich gemacht. Funktioniert nur leider trotzdem nicht.

Meine Schaltung sieht folgendermaßen aus:


Kann mir jemand sagen wo der Fehler liegt?
Logged

Cologne
Offline Offline
Sr. Member
****
Karma: 7
Posts: 474
Arduino rocks
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Versuchs mal mit dieser Schaltung http://talkingelectronics.com/projects/50%20-%20555%20Circuits/50%20-%20555%20Circuits.html#I0
Logged

Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Jawoll, jetzt klappts!
Jetzt muss ich nur noch ein bisschen rumprobieren, wie ich auf den richtigen Frequenzbereich komme. Da hab ich aber schon ganz gute Ergebnisse wenn ich statt dem 33k Widerstand kleinere Werte nehme.

Vielen vielen Dank!
Logged

0
Offline Offline
Faraday Member
**
Karma: 19
Posts: 3420
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Was für eine Genauigkeit und Auflösung brauchst Du? 6 Clocks mit maximal 50kHz kann unter Umständen noch in Software gehen. Allerdings muß man sich dazu schon etwas anstrengen.
Logged

Check out my experiments http://blog.blinkenlight.net

Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Genauigkeit muss nicht allzu groß sein. Ich würde mal sagen, wenns mal 2-3 kHz daneben liegt ist das nicht so schlimm.?
Meinst du mit Auflösung, wie klein die Schritte sein müssen in denen sich die Frequenz einstellen lässt? Dann sollte die Auflösung relativ hoch sein, ich möchte die einzelnen Clocks später mehr oder weniger stufenlos mit einem Poti einstellen können.

An was für eine Lösung hattest du denn gedacht?
Logged

0
Offline Offline
Faraday Member
**
Karma: 19
Posts: 3420
20 LEDs are enough
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Softwarelösung natürlich. Aber wenn Du nicht genauer wirst kann man schlecht sagen ob das möglich ist. Grundsätzlich halte ich es aber schon für möglich. Müssen die Clocks eigentlich Tastverhältnis 1:1 haben oder ist das egal?
Logged

Check out my experiments http://blog.blinkenlight.net

Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Also dann erkläre ich einfach mal ganz praktisch was ich vorhabe.

Ich modifiziere grade einen Roland TR-505 Drumcomputer. Dafür brauche ich 6 Clocks die sich über einzelne Potis einstellen lassen müssen und mit denen ich den Pitch der einzelnen Drums kontrolliere, d.h. die internen Clocks werden durch die aus dem Arduino ersetzt.
Die internen Clocks laufen auf verschiedenen Frequenzen zwischen 6 und 50 kHz. Ich möchte später in der Lage sein, die einzelnen Drums mehr oder weniger stufenlos rauf und runter pitchen zu können. Daher der ungefähre Frequenzbereich von 1-50 kHz. Wenns weiter hoch geht wäre das natürlich toll, ist aber nicht zwingend notwendig.

Zu der Frage nach dem Tastverhältnis: Wenn ich mich richtig erinnere ist das das Verhältnis zwischen Impulsdauer und Impulslänge, oder? Das heißt 1:1 wäre eine normale Rechteckwelle?
Dazu kann ich leider nichts genaues sagen, das müsste man ausprobieren. Ich vermute aber, dass man auch mit anderen Verhältnissen arbeiten kann.

Ich hoffe das war genau genug smiley
« Last Edit: January 12, 2012, 05:48:29 pm by malteh » Logged

Germany
Offline Offline
Newbie
*
Karma: 0
Posts: 8
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Gibts da ne Möglichkeit? Ohne eine externe Schaltung wäre das ganze natürlich komfortabler-
Ansonsten würde ich es weiter mit 555 Timern versuchen.
Logged

Pages: [1]   Go Up
Jump to: