Loading...
  Show Posts
Pages: 1 ... 69 70 [71] 72 73 ... 87
1051  International / Deutsch / Re: Poti an analogen Pin als MIDI ausgeben on: March 22, 2012, 07:24:54 am
Er sendet nicht ständig, sondern nur, wenn sich das Signal um THRESHOLD verändernd hat smiley-wink
Stimmt, das liegt aber daran, das die Funktion knobFunction den gleichen Fehler macht und das Array "prefRead" immer wieder neu definiert und damit wenn der Wert sich nicht ändert eine "0" zurückliefert. Damit ist aber im loop die Bedingung wieder erfüllt. Wieder ein falscher Fehler :-)
Der Code ist alles andere als optimal, das macht es unheimlich schwierig Bugs von echten Fehlern zu unterscheiden ...
1052  International / Deutsch / Re: Poti an analogen Pin als MIDI ausgeben on: March 21, 2012, 04:07:28 pm
Das ständige Senden liegt einfach daran, das Du innerhalb von loop() ein
Code:
  static int lastmaxVal = 0;
stehen hast. Damit wird bei jedem Durchlauf von loop die Variable neu erzeugt und auf 0 gesetzt.
Damit ist das "  if(maxVal != lastmaxVal)" aber immer erfüllt und es wird jedesmal gesendet.
Wenn Du das noch aus der Loop rausnimmst, sollte es passen.
Mario.
1053  International / Deutsch / Re: Poti an analogen Pin als MIDI ausgeben on: March 21, 2012, 09:56:30 am
*rofl*  smiley-eek
Code:
int analogRead(uint8_t pin)
{
        uint8_t low, high;

#if defined(__AVR_ATmega1280__) || defined(__AVR_ATmega2560__)
        if (pin >= 54) pin -= 54; // allow for channel or pin numbers
#elif defined(__AVR_ATmega32U4__)
        if (pin >= 18) pin -= 18; // allow for channel or pin numbers
#else
        if (pin >= 14) pin -= 14; // allow for channel or pin numbers
#endif
Das ist aus /hardware/arduino/cores/arduino/wiring_analog.c (IDE Libs)
Es funktioniert, weil für den Arduino der A0 Eingang auf Pin 14 gemappt wird. Da wir einen ATmega328 (bzw.168) haben, gibt es nur digitale 13 Pins und die IDE verwendet Pin14 als ersten Analogen. Daher funktioniert das Programm auch, denn da das INPUT als 0x0 definiert ist und das als Parameter übergeben wird, wird tatsächlich der erste analoge Eingang ausgewertet.
Würde man korrekterweise die 14 (oder A0) übergeben, würde aus dann genau der folgende Code ausgeführt:
Code:
if (pin >= 14) pin -= 14; // allow for channel or pin numbers
Und es würde auch wieder "0" heraus kommen.
Wir haben es also mit einem "falschen Fehler" zu tun.  smiley
1054  International / Deutsch / Re: Poti an analogen Pin als MIDI ausgeben on: March 21, 2012, 09:01:21 am
Es Funktioniert durch Zufall, weil INPUT in der Arduino.h der IDE definiert wird. Ansonsten würde es Fehler geben beim Compilieren.
Allerdings mit 0x0, also dem Wert 0.
Es wird also ein analogRead(0) aufgerufen. Das bringt aber nix, denn "A0" ist mit 14 definiert.
Damit wird also nicht das Poti ausgelesen.
1055  International / Deutsch / Re: Arduino als USB2Serial-Adapter verwenden? on: March 21, 2012, 08:50:58 am
Muss man nicht wegen der RS232 Pegel aufpassen, oder bringe ich da was durcheinander?
1056  International / Deutsch / Re: Spannung begrenzen on: March 21, 2012, 06:57:17 am
Wie wäre es mit einer 6V Zenerdiode?
1057  International / Deutsch / Re: Arduino Nano und Bluetooth on: March 21, 2012, 05:21:34 am
Ok, wer lesen kann ich klar im Vorteil.  smiley-red
1058  International / Deutsch / Re: Integer mit 24Bit über SPI versenden. Geht es nur Byteweise? on: March 21, 2012, 05:03:54 am
Code:
int data = 0x102030;
for(int i=0;i<3;i++) {
    SPI.transfer(data & 0x0000ff);
    data = data >> 8;
 }
Wäre ein einfacher Ansatz. Dabei wird der Wert in Data aber "zerstört".
1059  International / Deutsch / Re: Poti an analogen Pin als MIDI ausgeben on: March 21, 2012, 04:28:32 am
In Deinem Programm stecken, unabhängig von der MIDI-Kommunikation noch diverse Fehler. Ich bezweifle das Du das Programm überhaupt ohne Fehler compilieren kannst.
Hast Du das mal probiert? Am besten lernt man immer noch, wenn man versucht die Fehler selbst zu finden und zu beheben. Erst wenn man damit nicht weiter kommt, sollte man fragen.
Zu Deinem Programm:
Code:
  // auslesen des Wertes aus de Analogen Eingang
  sensorValue = analogRead(INPUT);
Was ist INPUT, das ist nirgendwo definiert. Hier sollte sicher "analogInPin" stehen.
Code:
 
analogWrite(analogInPin, outputValue);
Warum willst Du nochmal einen Wert auf dem Eingangspin ausgeben?  Das macht keinen Sinn. Abgesehen davon ist "analogWrite()" eine Funktion die nur für PWM-Pins Sinn macht, da Du damit das Tast-Verhältnis des PWM-Signals setzen kannst.
 
Der Rest ist erstmal syntaktisch korrekt, an der Semantik musst Du aber definitiv noch arbeiten.
Wenn Du es geschafft hast, die korrekten MIDI-Daten an Deinen Rechner zu senden, solltest Du das sicher nicht alle 10ms machen, sondern nur dann, wenn sich der Wert auch geändert hat. Ziel sollte es immer sein nur so viele Daten zu übertragen, wie nötig, nicht so viele wie möglich.
1060  International / Deutsch / Re: Arduino Nano und Bluetooth on: March 21, 2012, 01:55:53 am
In den Kommentaren bei sparkfun steht was von 8N1 115.2kpbs als default. Evtl. ist das Dein Problem.
Hast Du das BTM schon mit Deinem Rechner gekoppelt? Wenn ja, verbinde mal die RX und TX Leitung auf dem BTM miteinander. Dann solltest Du bei erfoglreicher Datenübertragung die gesendeten Zeichen direkt zurückbekommen. Damit kannst Du erstmal ohne Arduino die Verbindung zwischen BTM und Rechner prüfen. Sobald der Weg funktioniert, kannst Du dann Dein Arduino dazu nehmen.
Mario.
1061  International / Deutsch / Re: Poti an analogen Pin als MIDI ausgeben on: March 19, 2012, 02:58:09 pm
Ich würde Dir empfehlen erstmal mit den Grundlagen anzufangen. Dazu ist die Arduino-Webseite schon recht informativ. http://arduino.cc/en/Tutorial/HomePage
Es finden sich auch im Netz recht viele Tutorials, teilweise auch in deutscher Sprache.

Die Arduino-Umgebung abstrahiert schon einen sehr großen Teil der eigentlich notwendigen Schritte, um ein Programm auf einen µController zu bekommen. Ganz ohne Programmierung kommt man aber nicht aus.

1.) C/C++ ist die Programmiersprache, mit der Dein Arduino programmiert wird. Die Sprache ist nicht speziell für den Arduino entwickelt, vielmehr handelt es sich um eine weit verbreitete und recht systemnahe Sprache. Unabhängig vom Arduino finden sich recht viele Tutorials im Netz dazu. Diese Grundlagen sind wichtig, damit Du auch mit dem Arduino voran kommst.

2) Grundlegende Programmier-Konzepte solltest Du Dir aneignen, wenn nicht schon vorhanden. Also Schleifen, Vergleiche (Bedingte Ausführung von Programmteilen), Variablen, Datentypen, Funktionen usw.

3) Ein wenig Elektrotechnik ist auch wichtig. Hier reicht am Anfang aber erstmal das Schulwissen aus dem Physikunterricht (Widerstände, Reihenschaltung, Parallelschaltung, Ohmsches Gesetzt). Der Rest kommt nach und nach mit den einzelnen Projekten.

Das Forum hier ist auf jeden Fall immer ein guter Anlaufpunkt, wenn Du nicht weiter kommst. Je genauer Du beschreiben kannst was Du machen willst und was genau nicht klappt, um so besser kann Dir geholfen werden. Und das Beispiel vom "mime" sollte Dir auch erstmal weiterhelfen.

Viel Erfolg, Geduld und nur nicht gleich aufgeben :-)
1062  International / Deutsch / Re: Poti an analogen Pin als MIDI ausgeben on: March 19, 2012, 01:26:04 am
Hilfreich wäre sicher erstmal ein MIDI-Shield, das Du bei diversen Händlern findest (ca 16 Euro). Damit hast Du dann schonmal die passenden MIDI-Schnittstellen. Außerdem sind diese dann per Optokoppler galvanisch von der restliche Hardware getrennt.
Es gibt auch eine MIDI-Lib für den Arduino mit dem Du z.b. Noten auf verschiedenen Kanälen erzeugen kannst.
Der erste Schritt wäre sicher erstmal das Auslesen der Potis. Dazu gibt es ein einfaches Beispiel:
http://arduino.cc/en/Tutorial/AnalogReadSerial
Die Midi-Lib gibt es hier:
http://arduino.cc/playground/Main/MIDILibrary
Ansonsten finden sich im Palyground diverse MIDI Projekte:
http://arduino.cc/playground/Main/InterfacingWithHardware#Output
Ich hoffe das hilft Dir erstmal weiter.
Mario.
1063  International / Deutsch / Re: Processing + Suse11.4 on: March 14, 2012, 02:20:42 pm
Dein Problem ist, das das RPM Paket Abhängigkeiten zu anderen Paketen hat. Versuch mal das Paket nicht runterzuladen und per rpm zu installieren, sondern aus einem YaST Repository zu installieren. Dann werden auch die Abhängigkeiten aufgelöst.
1064  Community / Website and Forum / Re: Arduino web site very slow on: March 14, 2012, 01:17:44 am
Seems that there's a problem with you statistics server. In the most cases where the site is taking very long to load, it is hanging in a connection to http://stats.arduino.cc/piwik/.
Calling this site directly you get an error for "too many connections" from your database.
Maybe it's a good idea to disable this kind of statistic grawling for some time, until this problem is fixed.
With best regards,
Mario.
1065  International / Deutsch / Re: Auswerten eines Encoders on: March 12, 2012, 01:35:42 pm
Schau Dir mal die Modulo-Operation an:
Code:
int value;
...
value ++;
value  = value % 4; // zählt damit immer nur von 0 bis 3
Pages: 1 ... 69 70 [71] 72 73 ... 87