Mein Midi controller funktioniert nicht mit Voicemeeter was tun?

Hey Leute,

Ich benutze auf meinem Voicemeeter Potato. Ich habe mich dazu entschlossen mir einen Midi Controller selbst zu bauen mit einem Arduino Mega. Gesagt getan. Ich habe den Code hochgeladen. Ich benutze Harless Midi um die Serielle Verbindung zu convertieren. Dann benutze ich noch LoopMidi um ein vitruellen Midi Controller darzustellen.

Jetzt das Problem:

Voicemeeter erkennt den virtuellen Controller, ich wähle ihn aus, und wenn ich dann den Taster vom Arduino klicke leutet es in Voicemeeter auch auf. Jedoch kann ich keine tasten anlernen, so das Voicemeeter drauf reagiert.

hier der Code vom Arduino:

#include <MIDI.h>

#define BUTTON_PIN 2

#define MIDI_CHANNEL 1 // MIDI Channel 1

MIDI_CREATE_DEFAULT_INSTANCE();

void setup() {

 pinMode(BUTTON_PIN, INPUT);

 digitalWrite(BUTTON_PIN, HIGH); // Enable internal pull-up resistor

 MIDI.begin(MIDI_CHANNEL);

}

void loop() {

 // Read the state of the button

 int buttonState = digitalRead(BUTTON_PIN);

 // If the button is pressed (because of pull-up resistor, LOW means pressed)

 if (buttonState == LOW) {

  // Send a MIDI Note On message (Note 60, Velocity 127)

  MIDI.sendNoteOn(60, 127, MIDI_CHANNEL);

delay(100); // Debouncing delay

  // Send a MIDI Note Off message (Note 60, Velocity 0) after 100 milliseconds

  MIDI.sendNoteOff(60, 0, MIDI_CHANNEL);

 }

}

Im Anhang noch ein paar Bilder...

Bild zum Beitrag
midi, arduino mega
Wie kann ich einen Takt von 50kHz mit dem Arduino Mega2560 erzeugen?

Hallo zusammen,

Wie oben schon beschrieben die Frage, wie ich einen Takt von 50kHz mit dem Arduino Mega2560 erzeugen kann.

Das ist mein derzeitiger Sketch:

const int outputPin = 5;  // digitale Ausgangspin
unsigned long startTime;   // Variable zur Speicherung des Startzeitpunkts


void setup() {
  pinMode(outputPin, OUTPUT);  // Setzen des Pin als Ausgang
  Serial.begin(9600);  // Starten der serielle Kommunikation mit 9600 Baud
}


void loop() {
  // Einschaltphase messen
  startTime = micros();  // Aktuelle Zeit speichern
  digitalWrite(outputPin, HIGH);  // Pin auf HIGH
  delayMicroseconds(10);  // Warten für die halbe Periode (T_high)
  unsigned long onTime = micros() - startTime;  // Berechnen Sie die Einschaltzeit in Mikrosekunden


  // Ausschaltphase messen
  startTime = micros();  // Aktuelle Zeit speichern
  digitalWrite(outputPin, LOW);  // Pin auf LOW 
  delayMicroseconds(10);  // Warten für die andere halbe Periode (T_low)
  unsigned long offTime = micros() - startTime;  // Berechnen der Ausschaltzeit in Mikrosekunden


  // Ausgabe der gemessenen Zeiten
  Serial.print("Einschaltzeit: ");
  Serial.print(onTime);
  Serial.print(" µs  ----  ");
  Serial.print("Ausschaltzeit: ");
  Serial.print(offTime);
  Serial.println(" µs");


  delay(1000);  // Eine Sekunde warten, bevor der nächste Zyklus beginnt
}


// Soll Periodendauer = 20µs -> f = 50kHz

Leider erhalte ich mit diesem Code folgende Ausgabe:

Einschaltzeit: 20 µs  ----  Ausschaltzeit: 16 µs
Einschaltzeit: 16 µs  ----  Ausschaltzeit: 20 µs
Einschaltzeit: 16 µs  ----  Ausschaltzeit: 20 µs
Einschaltzeit: 16 µs  ----  Ausschaltzeit: 20 µs
Einschaltzeit: 20 µs  ----  Ausschaltzeit: 16 µs
Einschaltzeit: 16 µs  ----  Ausschaltzeit: 20 µs
Einschaltzeit: 16 µs  ----  Ausschaltzeit: 20 µs
Einschaltzeit: 16 µs  ----  Ausschaltzeit: 20 µs
Einschaltzeit: 20 µs  ----  Ausschaltzeit: 20 µs
Einschaltzeit: 16 µs  ----  Ausschaltzeit: 16 µs
... usw.

Mir ist klar, das der Controller durch die Funktion Serial.print() und auch die delayMicroseconds() zeit verbraucht.

Gibt es aber eine möglichkeit möglichst genau einen Takt von 50kHz mit dem Arduino zu erzeugen?

Vielen Dank!

Computer, programmieren, Elektrik, Arduino, Physik, Sketch, arduino mega
Arduino Wert aus Tabelle?

Guten Tag,

ich habe ein kleines Problem mit meinem Arduino Code... Ich weiß leider nicht weiter.

ich habe hier schon mal angefangen ein Programm zu schreiben das mir mein Arduino Mega alle 2 sec. eine Temperatur anhand eines Ohm wertes aus gibt.

das Problem liegt jetzt aber dabei das ich den Ohm wert nicht in die Temperatur umwanden kann.

Ich habe mir eine Tabelle erstellt die angibt bei welchem Ohm wert welche Temperatur angezeigt werden soll.

Nun die Frage: Wie gleicht mir der Arduino die Gemessenen werte mit den vorhandenen ab und zeigt mir dann auf meinem OLED Display meine Temperatur an?

ich bedanke mich schon mal recht Herzlich für die antworten.

MfG Dennis

PS: falls es fragen gibt bitte melden!!

Das wäre der Bisher funktionierende Code

#include <GyverOLED.h>

GyverOLED<SSH1106_128x64> oled;

const uint8_t bitmap_32x32[] PROGMEM = {

 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xC0, 0xE0, 0xF0, 0x70, 0x70, 0x30, 0x30, 0x30, 0x20, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xC0, 0xE0, 0xF0, 0xF0, 0x70, 0x30, 0x30, 0x20, 0x00, 0x00,

 0x00, 0x30, 0x78, 0xFC, 0x7F, 0x3F, 0x0F, 0x0F, 0x1F, 0x3C, 0x78, 0xF0, 0xE0, 0xC0, 0x80, 0x80, 0x80, 0x40, 0xE0, 0xF0, 0xF8, 0xFC, 0xFF, 0x7F, 0x33, 0x13, 0x1E, 0x1C, 0x1C, 0x0E, 0x07, 0x00,

 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x80, 0xC0, 0xE0, 0xF0, 0xF9, 0xF7, 0xEF, 0x5F, 0x3F, 0x7F, 0xFE, 0xFD, 0xFB, 0xF1, 0xE0, 0xC0, 0x80, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,

 0x00, 0x00, 0x00, 0x00, 0x00, 0x0C, 0x1E, 0x33, 0x33, 0x1F, 0x0F, 0x07, 0x03, 0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x01, 0x03, 0x07, 0x0F, 0x1F, 0x3F, 0x1F, 0x0E, 0x04, 0x00, 0x00, 0x00, 0x00,

};

int analogPin = 0;

int raw = 0;

int Vin = 5;

float Vout = 0;

float R1 = 330000;

float R2 = 0;

float buffer = 0;

void setup() {

 Serial.begin(9600);

 oled.init();

  

 oled.clear();

 oled.setScale(1);

 oled.update();

}

void loop() {

 raw = analogRead(analogPin);

 if(raw){

  buffer = raw * Vin;

  Vout = (buffer)/1024.0;

  buffer = (Vin/Vout) - 1;

  R2= R1 * buffer;

  delay(2000);

oled.home();

 oled.print("Temp1:");

 oled.update();

 oled.setCursor(5, 2);

 oled.update();

 oled.print(R2);

 oled.update();

 }

}

Bild zum Beitrag
Arduino, arduino mega
Objekterkennung mit Arduino Kamera?

Hallo,

Ich möchte für ein Schulprojekt das bekannte Spiel Bierpong optimieren, mittels Sensoren, LED's und einem Arduino.

Bei Bierpong gibt es Regeln und eine sehr wichtige Regel ist, dass dein Ellenbogen beim Wurf des Tischtennisballs nicht hinter der Tischkante sein darf. Dies möchte ich mittels einer Kamera überprüfen.

Ich habe schon sehr viel zeit investiert, um zu recherchieren, wie die realisierbar ist und landete bei allem in einer Sackgasse. Das größte Problem ist nämlich, dass der Sensor oder die Kamera erst reagieren soll, wenn der Ellenbogen hinter der Kante ist und nicht schon bei der Hand oder beim Arm (der darf ja über der Kante sein). Deshalb ist mir die Idee gekommen ein Armband um den Ellenbogen zu tragen und die Sonsoren / Kamera so einzustellen, dass diese nur auf das Armband reagieren. Mit Sensoren ist dies aber meines Wissens nach nicht möglich, da es keinen Sensor gibt der auf ein bestimmtes Material reagiert ader Farben über weite Distanz erkennt, also sind für mich Sensoren aus dem Spiel.

Mit einer Kamera sollte es aber gehen und an dem arbeite ich gerade auch.

Nun deshalb meine Frage: Wie würdet ihr so einen "Ellenbogen Prüfer" realisieren und falls ihr auch zu dem entschluss mit der Kamera kommt welche Kamera würdet ihr nehmen / könnt ihr empfehlen, die folgende Kriterien erfüllt:

-Die Kamera sollte mehr als 5 fps liefern, da der Wurf recht schnell ausgeführt wird und mit nur einem bild pro Sekunde die Kamera den Wurf meist garnicht mitbekommt

-Die Kamera sollte Objekte z.B. ein rotes Armband auf 0,5 - 1m gut erkennen

-Die Kamera soll direkt mit dem Arduino verbunden sein, keine IP oder Bluetooth Kamera.

-Die Kamera soll falls möglich leicht zu bedienen sein d.h. wenn es eine fertige Arduino Library für die Kamera gibt wäre dies toll.

-Die Kamera sollte nicht mehr als 25 Euro kosten ALSO EINE PIXY oder PIXY2 IST ZU TEUER.

Außerdem möchte ich wirklich gerne einen Arduino verwenden, also kommt ein Rapberry Pi nur dann in Frage wenn es wirklich garnicht anders geht.

Ich bedanke mich schonmal im Voraus und bin gespannt was ihr für lösungen habt.

Computer, Kamera, Technik, Arduino, Sensoren, Technologie, arduino mega
Franzis Mendel. 3D Drucker: Überspannungsschutz in Schrittmotorstromkreise und Spulen der Schrittmotoren mit Gerätesicherung oder KFZ- Sicherung absichern?

Hallo,

sorry wenn meine Frage oben etwas komisch und kurz erscheint. Aber mehr Zeichen für eine ausführliche Fragestellung stand mir leider nicht zur Verfügung.

Hier wär meine Frage nochmal etwas Ausführlicher:

Ich bau aktuell einen 3D Drucker nach dem Buch "3D Drucker selber bauen. Machs einfach".

Jetzt war meine Überlegung ob es nicht sinnvoll wäre, einen Art Überspannungsschutz in die einzelnen Schrittmotorstromkreise einzubauen um die empfindliche Elektronik (Ramp 1.4) vor Induktionsspannungen des Schrittmotors zu schützen z.B. durch von Hand verschieben des Extruders würde ich schon im Motor eine Spannung induzieren. (Ich hab so eine Platine vor ein paar Tagen gefunden, leider aber vergessen wie die heißt und finde sie nicht mehr)

Als zweites noch die zwei Spulen des Schrittmotors (Nema17 17HS4417P1 Schrittmotor 1.7A 40mm 4000g.cm D-Shaft) mit jeweils einer kleinen Sicherung gegen Überstrom zu schützen, falls es mal eine Fehlfunktion in der Elektronik gibt und der Motor versucht über den Endanschlag hinaus zu fahren. Da die Schrittmotoren auch einen Anlaufstrom haben, müsste die Sicherung etwas träge in der Auslösung sein.

Ich hoffe jemand kann mir weiterhelfen.

Danke schon mal im Voraus.

Elektronik, Strom, Elektrotechnik, Spannung, 3D-Drucker, Schrittmotor, arduino mega
Fragen rund um den Arduino Uno?

Hi Leute, ich habe ein paar Projekte mit dem Arduino Uno gemacht und eines davon war folgender:

Einen Motor mittels eines Potentiometers steuern, also dessen Geschwindigkeit. Dabei gab es zudem einen Schalter zum an und ausschalten des Motors und einen Schalter zum Ändern der Richtung des Motors. Der Motor wurde mit einer 9 Volt Batterie betrieben, gesteuert wurde das ganze mit einem IC, welches genau, weiß ich leider nicht mehr.

Zu dem Projekt ergeben sich für mich folgende Fragen:

  • Es schien egal zu sein, welchen Wert der Poti hat, die beiden äußeren Beine wurden mit 5V und GND verbunden, die mittlere Leitung ging an einen Analogen Pin. Auslesen tat der Arduino dabei, je nach Zustand des Potis, Werte von 0 bis 1023. Ich würde gerne wissen, warum das so ist? Was genau gibt der mittlere Pin eines Potis aus, sodass der Arduino es, egal welchen Widerstandswert der Poti hat, von 0 bis 1023 interpretiert.
  • Wo wir schon beim Poti sind, wenn ich den Widerstand auf 0 Setze durch drehen des Hebels, dann habe ich ja 5V mit GND kurzgeschlossen. Warum ist dem Arduino dennoch nichts passiert? Ist dort eine Sicherung vorhanden? Oder fließt ein so geringer Strom, sodass dem Arduino dabei nichts passiert? Eigentlich sollten die 500mA des USB Steckers doch ausreichen, den zu grillen oder?
  • Was genau ist der Unterschied zwischen +5V und Vic?

Vielen Dank für die, hoffentlich, kommenden Infos :)

Arduino, Kurzschluss, Schaltung, Potentiometer, Elektrik Elektronik, arduino mega, Arduino Uno, einplatinencomputer

Meistgelesene Fragen zum Thema Arduino mega