Pages: 1 [2]   Go Down
Author Topic: Arduino Synth/sequencer  (Read 2083 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Wie schon gesagt, die Beschaltung ist nicht das schwierigste smiley
Logged

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

Japp smiley-grin ...also das Programm steht eigentlich schon, allerdings habe ich noch keine HArdware um es zu testen...

Eine Frage hätte ich noch, ich habe mir jetzt einen Arduino Mega 2560 betstellt, allerdings kann ich im Internet nirgentwo finden, wie man die Frequenz der PWM Einheit erhöht, allerdings ist dies doch sehr wichtig da es sonst ja nicht sehr gut klingt, weiss da jemand vlt mehr als ich? smiley

Gruß, Cracky
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ich kümmere mich bei meinem Projekt gerade um die Hardware:

http://www.machzin.de/portfolio/arduino-8-step-mid-step-sequenzer/
Logged

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

Haha, sieht ja schonmal gut aus smiley-grin vor allem ist es gut dokumentiert, ich habe zum Teil Projekte gefunden die ich echt gut fand (zb das Video in meinem 1. Post) aber zu denen es weder shematics noch Source Codes gibt, was einen dann doch etwas annervt...

Könntest du vlt mal meinen Code überprüfen? Ich hab zwar noch keine Hardware aber ich würde gerne wissen ob meine Ansätze richtig sind.. smiley
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Sorry, wo ist dein Quellcode?
Logged

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

Hier ist er smiley ich habe ihn unten noch nicht ganz zuende geschriben weil sich dort alles nur wiederholt und ich nicht wollte, das ich folge-fehler mache.
Code:
#define ENCODER_OPTIMIZE_INTERRUPTS
#include <Encoder.h> //Encoder libary von http://www.pjrc.com/teensy/td_libs_Encoder.html

//Audio Ausgang
#define output 44

//LEDs für das Lauflicht bezeichnen
#define led1 4
#define led2 5
#define led3 6
#define led4 7
#define led5 8
#define led6 9
#define led7 10
#define led8 11
#define led9 12
#define led10 13
#define led11 14
#define led12 15
#define led13 16
#define led14 17
#define led15 18
#define led16 19

//Analoge Inputs der Potis bezeichnen
#define Pitch1 A0
#define Pitch2 A1
#define Pitch3 A2
#define Pitch4 A3
#define Pitch5 A4
#define Pitch6 A5
#define Pitch7 A6
#define Pitch8 A7
#define Pitch9 A8
#define Pitch10 A9
#define Pitch11 A10
#define Pitch12 A11
#define Pitch13 A12
#define Pitch14 A13
#define Pitch15 A14
#define Pitch16 A15

//Encoder definieren
Encoder Speed(2, 3);
Encoder Break(20, 21);

//Tempo Variable erstellen
int Tempo = Speed.read();

//Poti Variable definieren
int val = 0;

void setup()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  pinMode(led4, OUTPUT);
  pinMode(led5, OUTPUT);
  pinMode(led6, OUTPUT);
  pinMode(led7, OUTPUT);
  pinMode(led8, OUTPUT);
  pinMode(led9, OUTPUT);
  pinMode(led10, OUTPUT);
  pinMode(led11, OUTPUT);
  pinMode(led12, OUTPUT);
  pinMode(led13, OUTPUT);
  pinMode(led14, OUTPUT);
  pinMode(led15, OUTPUT);
  pinMode(led16, OUTPUT);
 
  //PWM Frequenz erhöhen
  TCCR1A = _BV(WGM10) | _BV(COM1A1);
  TCCR1B = _BV(CS10) | _BV(WGM12);
 
  //Encoder schritte einstellen
  Speed.write(500);
}

void loop()
{
 
  //LED des Steps aufleuchten lassen
  //Step1
  digitalWrite(led1, HIGH);
 
  //SchiebeRegler des Steps abfragen und ausgeben
  val = analogRead(Pitch1);
  val /= 4;
  analogWrite(output, val);
 
  //Verzögerung bis zum nächsten step
  Tempo = Speed.read(); //Inkrementalgeber lesen
  delay(Tempo); //länge des Tons
  digitalWrite(led1, LOW);
  analogWrite(output, 0); // Stille
  Tempo = Break.read();
  delay(Tempo); //Länge der Stille
 
  //nächster Step, gleiches Verfahren
  //Step2
  digitalWrite(led2, HIGH);
 
  val = analogRead(Pitch2);
  val /= 4;
  analogWrite(output, val);
 
  Tempo = Speed.read();
  delay(Tempo);
  digitalWrite(led2, LOW);
  analogWrite(output, 0);
  Tempo = Break.read();
  delay(Tempo);
}
« Last Edit: December 17, 2012, 05:55:20 pm by Cracky » Logged

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

Könnte den vielleicht mal jemand überprüfen ? smiley
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Das delay macht es schwer die Analogen und Digitalen Eingänge zu bedienen. Solange das delay läuft geht nämlich gar nichts. Ansonsten, ausprobieren und erzählen was passiert.
Logged

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

ja, okay... ich habe noch nicht ganz verstanden wie das geht, könntest du mir das vielleicht mal anhand meines Sketches zeigen? smiley
Logged

Offline Offline
Full Member
***
Karma: 0
Posts: 140
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Funktion heißt millis(). Musste mal hier schauen, befasse mich auch gerade erst damit.
Logged

Offline Offline
Edison Member
*
Karma: 21
Posts: 1419
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Die Funktion heißt millis(). Musste mal hier schauen, befasse mich auch gerade erst damit.
Schaut Euch mal das Beispiel BlinkWithoutDelay an: http://arduino.cc/en/Tutorial/BlinkWithoutDelay
Da wird das recht gut erklärt.
Zusätzlich hatten wir mal folgenden Thread : http://arduino.cc/forum/index.php/topic,127674.0.html
Das Ganze hatte ich mal fix in eine Lib gegossen, damit man sich die Rechnerrei mit den millis() sparen kann. Evtl. hilft die Euch schon weiter:
http://arduino.cc/forum/index.php?action=dlattach;topic=127674.0;attach=27418
Mario.
Logged

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

Hahaha, das hilft mir noch weniger weiter smiley-grin

Programieren ist schwer... Aber ich habe jetzt eine Antwort von dem Typen bekommen der das Video ganz am Anfang gemacht hat, und habe seinen Code und seine Shematics, das kann ich jetzt einfach auf 16 steps erweitern und fertig, alles easy xD

http://pc.watch.impress.co.jp/img/pcw/docs/304/026/html/07_s2.gif.html

So hat er das gelöst, er hat einfach das LAuflicht mit den Potis kombiniert, genial ! so spart man eine Menge analoger Eingänge smiley-grin

und der Code ist dann einfach eine Abwandlung des Auduino Synthesizer Projektes smiley-grin

So werde ich das jetzt auch bauen, noch schnell von Conrad Dioden holen und der Rest ist schon bestellt smiley-grin
Logged

Pages: 1 [2]   Go Up
Jump to: