INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Programmierung eines MIDI-Controllers
08.01.2019, 18:01
Beitrag #9
RE: Die Tasterabfrage und ich
Hast Du das mit den Bootladern ausprobiert?
Wofür meinst Du, die for-Schleife zu brauchen. Du hast doch bereits eine große Schleife: loop.

Fange doch mal kleiner an. In der IDE gibt es Beispiele für Taster (button und Debounce u.a.). Arbeite Dich mit denen erst mal an das Einlesen von Tastern und deren Entprellen ein.
Du bist derzeit dabei, den zweiten Schritt vor dem ersten zu machen.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
08.01.2019, 19:51
Beitrag #10
RE: Die Tasterabfrage und ich
(08.01.2019 17:44)Schraubfix schrieb:  
Code:
if ((digitalRead (Tasterpins[i]) == LOW) && (Status[i] == false)) Status[i] == true;
if ((digitalRead (Tasterpins[i]) == LOW) && (Status[i] == true)) Status[i] == false;
Was willst Du mit diesen beiden if erreichen?
So setzt Du bei gedrücktem Taster mit dem 1. if den Status auf 'true', um ihn dann im nächsten If gleich wieder zurückzusetzen.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.01.2019, 17:43
Beitrag #11
RE: Die Tasterabfrage und ich
(08.01.2019 19:51)MicroBahner schrieb:  
(08.01.2019 17:44)Schraubfix schrieb:  
Code:
if ((digitalRead (Tasterpins[i]) == LOW) && (Status[i] == false)) Status[i] == true;
if ((digitalRead (Tasterpins[i]) == LOW) && (Status[i] == true)) Status[i] == false;
Was willst Du mit diesen beiden if erreichen?
So setzt Du bei gedrücktem Taster mit dem 1. if den Status auf 'true', um ihn dann im nächsten If gleich wieder zurückzusetzen.

Hallo,

ich war ein paar Tage nicht da, daher meine verspätete Antwort. Die beiden if sind dafür gedacht, den letzten Status des Tasters zu speichern.
Die Idee dahinter ist ja die, das ausgeschaltete Gerät mit dem Taster einzuschalten und dann den Status "eingeschlatet" zu speichern. Wenn der Taster bei bei eingeschaltetem Gerät erneut gedrückt wird,soll der Arduino das Gerät ausschalten.
Also muss die eine Bedingung doch lauten: wenn Taster gedrückt und Gerät aus, dann schalte ein.

Wenn Taster gedrückt und Gerät bereits eingeschaltet, dann schalte aus.

Meine Annahme war, den Taster direkt auslesen zu können, ohne den Tasterwert in einer eigenen Variablen zwischenspeichern zu müssen, die ich dann mit dem Schaltzustand des Geräts/der Gerätefunktion vergleiche.

VG
Schraubfix
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
19.01.2019, 20:58
Beitrag #12
RE: Programmierung eines MIDI-Controllers
Google mal nach Götz Müller Dürrhold und schau dir die Videos vom
Midi Controller selbst Bau an.
Gruß, Markus

Immer in Stress
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
20.01.2019, 14:19 (Dieser Beitrag wurde zuletzt bearbeitet: 20.01.2019 14:21 von MicroBahner.)
Beitrag #13
RE: Die Tasterabfrage und ich
(19.01.2019 17:43)Schraubfix schrieb:  Meine Annahme war, den Taster direkt auslesen zu können, ohne den Tasterwert in einer eigenen Variablen zwischenspeichern zu müssen, die ich dann mit dem Schaltzustand des Geräts/der Gerätefunktion vergleiche.
Nein, das funktioniert nicht. Wenn Du die Flanke auswerten willst, musst Du den alten Tasterwert in einer eigenen Variable zwischenspeichern.
Das Problem ist das 'erneut gedrückt'. Das erkennt dein Code nicht. Du musst deshalb auch erkennen , das losgelassen wurde, bevor der 'erneut gedrückt' Zustand aktiv wird. Dazu brauchst Du eben die Flankenauswertung.

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.01.2019, 01:32
Beitrag #14
RE: Die Tasterabfrage und ich
(19.01.2019 17:43)Schraubfix schrieb:  
Code:
if ((digitalRead (Tasterpins[i]) == LOW) && (Status[i] == false)) Status[i] == true;
if ((digitalRead (Tasterpins[i]) == LOW) && (Status[i] == true)) Status[i] == false;

Also muss die eine Bedingung doch lauten: wenn Taster gedrückt und Gerät aus, dann schalte ein.

Wenn Taster gedrückt und Gerät bereits eingeschaltet, dann schalte aus.

Die beiden Zeilen werden ja nacheinander ausgeführt.

Wenn Du da mit Status [i] auf "false" reingehst, setzt die erste Zeile ihn wie beabsichtigt auf "true".

Dann wird die zweite Zeile ausgeführt, sieht ihn auf "true", und setzt ihn gleich wieder auf "false".

Man kann das aber auch in einer einzelnen Zeile formulieren:

Code:
if  (digitalRead (Tasterpins[i]) == LOW) Status[i] = !Status[i];

Das heißt, wenn der Taster LOW ist, wird Status auf das Gegenteil seines vorherigen Wertes gesetzt.

Wenn Deine Schleife aber schneller läuft, als Du den Taster loslassen kannst, dann schaltet auch dieser Code den Status immer nur ein und aus, während Du den Finger auf dem Taster hast.

Darum der Vorschlag, die Tasterposition einzeln zu speichern ...
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.01.2019, 10:28
Beitrag #15
RE: Die Tasterabfrage und ich
Du musst also erfassen, wenn der Taster losgelassen wurde. Erst danach darf der nächste Tastendruck etwas bewirken.

Gruß Tommy

"Wer den schnellen Erfolg sucht, sollte nicht programmieren, sondern Holz hacken." (Quelle unbekannt)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
26.01.2019, 14:22
Beitrag #16
RE: Programmierung eines MIDI-Controllers
(19.01.2019 20:58)Chopp schrieb:  Google mal nach Götz Müller Dürrhold und schau dir die Videos vom
Midi Controller selbst Bau an.

Genau, zu dem wollte ich auch gerade raten. Ich finde der verklickert das Thema sehr gut.

https://www.youtube.com/watch?v=Fnzn85oWM_Q
Hier was zum Thema Deutsche Politik Angry
Und hier zum Thema richtige Politik Big Grin
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Programmierung einer Uhr keklik10 6 556 22.04.2019 22:45
Letzter Beitrag: GuaAck
  Fern-Programmierung über Ethernet passra 14 671 09.04.2019 20:01
Letzter Beitrag: amithlon
  Programmierung eines Arduino Uno mit Motorshield Lancair4 8 599 24.02.2019 09:49
Letzter Beitrag: Lancair4
  Programmierung eines ToF-Abstandssensors fragesteller1 3 374 01.02.2019 23:21
Letzter Beitrag: Tommy56
Music MIDI Software optimieren solarmusic 6 618 22.11.2018 18:20
Letzter Beitrag: Tommy56
  Prüfung eines Drucksensors mit Hilfe des Arduino r4c3 20 5.222 17.11.2018 18:25
Letzter Beitrag: Bitklopfer
  Ändern der Reihenfolge eines "Lauflichtes" rebeldesigned 3 591 05.11.2018 12:07
Letzter Beitrag: rebeldesigned
  Arduino Nano Programmierung Relais Mister_ACE 27 3.019 30.09.2018 09:22
Letzter Beitrag: Mister_ACE
  Probleme beim Hochladen eines Sketches Thandor 8 3.400 08.06.2018 13:19
Letzter Beitrag: Thandor
  Vorüberlegungen zum Bau eines Hexapoden juergen001 11 2.773 20.05.2018 23:02
Letzter Beitrag: GuaAck

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste