|
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  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 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*  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: 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. 
|
|
|
|
|
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.
|
|
|
|
|
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: // auslesen des Wertes aus de Analogen Eingang sensorValue = analogRead(INPUT);
Was ist INPUT, das ist nirgendwo definiert. Hier sollte sicher "analogInPin" stehen. 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/HomePageEs 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 :-)
|
|
|
|
|
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.
|
|
|
|
|