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
  String, char - und wie die Trennung eines Inputs vornehmen rev.antun 1 211 11.05.2020 20:01
Letzter Beitrag: Tommy56
  Mit Arduino Uno Sirene Programmierung mh128828 20 1.183 27.03.2020 22:30
Letzter Beitrag: mh128828
  Hochladen eines Sketches funktioniert nicht otti123 24 1.544 29.02.2020 18:25
Letzter Beitrag: MicroBahner
  Programmieren eines ATTiny 2313 Gerdchen03 33 1.979 16.01.2020 20:27
Letzter Beitrag: hotsystems
  Programmierung LarsF 13 1.002 13.01.2020 19:53
Letzter Beitrag: ardu_arne
  Umwandlung eines Strings in ein time_t-Objekt jalu4601 1 420 02.01.2020 10:56
Letzter Beitrag: RolandF
  Schrittmotoren bewegen mithilfe eines Joysticks schaarva 8 1.047 08.12.2019 15:15
Letzter Beitrag: MicroBahner
  Programmierung Touch-Display WF55 3 892 25.11.2019 21:17
Letzter Beitrag: Tommy56
  Den Wert eines PWM Pins auslesen - was mache ich falsch? Gelegenheitsbastler 8 1.117 25.11.2019 10:49
Letzter Beitrag: MicroBahner
  Programmierung Sparkfun Pro Micro Gerdchen03 6 914 27.09.2019 14:38
Letzter Beitrag: MicroBahner

Gehe zu:


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