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
8 Bit als Variable Parallel einlesen
13.08.2019, 21:25
Beitrag #1
8 Bit als Variable Parallel einlesen
Hallo,
ich versuche grade einen einfachen MIDI Controller zu bauen.
Hierzu wollte ich an den Pins 2-8 mit DIP Schaltern einen 7 Bit Wert einlesen, damit ich per MIDI eine Controllernummer zuweisen kann (eigentlich sind es 8 Bit, das erste ist hier allerdings immer eine 0).
Augenscheinlich komme ich aber nicht auf die Lösung um aus meinem 7(8) Bit Eingang
die Variable "controller" mit einem Wert von 0-127 zu erzeugen.

Code:
int controllerwert = 0;
int controllerwertAlt = 0;
int potiWert = 0;

void setup() {
   pinMode (2, INPUT_PULLUP);
   pinMode (3, INPUT_PULLUP);
   pinMode (4, INPUT_PULLUP);
   pinMode (5, INPUT_PULLUP);
   pinMode (6, INPUT_PULLUP);
   pinMode (7, INPUT_PULLUP);
   pinMode (8, INPUT_PULLUP);
    
   Serial.begin(9600);                          
}

void loop() {

int controllernummer[]= {2,3,4,5,6,7,8};     // Array Controller Nummer
byte controller = controllernummer;            // Byte in Variable Controllerkanal umrechnen

potiWert = analogRead(A0);
controllerwert = map(potiWert,0,1023,0,127);

if (controllerwert != controllerwertAlt) {
  Serial.write (controller);                           //Controllerkanal mit Dip Schalter 0-127
  Serial.write (controllerwert);                     //Controllerwert mit Poti von 0-127

}

controllerwertAlt = controllerwert;
}

Die Lösung ist hoffentlich sehr banal, aber im Moment sehe ich das Problem noch nicht....
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.08.2019, 21:38 (Dieser Beitrag wurde zuletzt bearbeitet: 13.08.2019 21:46 von MicroBahner.)
Beitrag #2
RE: 8 Bit als Variable Parallel einlesen
(13.08.2019 21:25)Holzauge schrieb:  Hierzu wollte ich an den Pins 2-8 mit DIP Schaltern einen 7 Bit Wert einlesen,
Dann musst Du das auch tun. Ich sehe in deinem ganzen Sketch keine einzige digitalRead Anweisung. Oder zeigst Du nicht alles?
Du musst mit digitalRead alle Eingänge einlesen, und zu einem Byte zusammenbauen.

Etwa so ( ungetestet, nur als Prinzip ):
Code:
controller = 0;
for ( byte i = 2; i<9 ; i++ ) {
  controller = controller << 1;
  controller |= digitalRead(i);
}

(13.08.2019 21:25)Holzauge schrieb:  im Moment sehe ich das Problem noch nicht....
Welches Problem siehst Du nicht? Das da:
Code:
int controllernummer[]= {2,3,4,5,6,7,8};     // Array Controller Nummer
byte controller = controllernummer;            // Byte in Variable Controllerkanal umrechnen
ist ziemlich sinnfrei...

Gruß, Franz-Peter
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
13.08.2019, 21:51
Beitrag #3
RE: 8 Bit als Variable Parallel einlesen
Hallo, Franz-Peter,
das ist jetzt auch logisch...
Werde ich morgen gleich testen.
Vielen Dank

Andreas
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Anführungszeichen mit Variable dazwischen Stagneth.Alexander 4 301 27.10.2019 09:57
Letzter Beitrag: Stagneth.Alexander
  ++ (increment) mit Pointer Variable Hoffmakl 38 1.920 26.09.2019 09:55
Letzter Beitrag: Hoffmakl
  Char in Int variable wandeln Rockman 5 934 06.03.2019 23:22
Letzter Beitrag: Tommy56
  Variable auf zwei Bytes aufteilen ? huber5093 4 893 05.03.2019 20:17
Letzter Beitrag: Tommy56
  PWM/PPM einlesen lockenkopf 2 602 05.03.2019 14:25
Letzter Beitrag: lockenkopf
  Lokale Variable an loop zurück - Fehler Haukini 3 678 26.02.2019 22:33
Letzter Beitrag: Haukini
  Zahl aus txt-Datei als globale Variable einlesen Lance101 17 1.457 16.02.2019 14:38
Letzter Beitrag: Tommy56
  mehrere Bytes seriell einlesen. Verständnisprobleme Mosi 9 1.188 19.12.2018 16:07
Letzter Beitrag: Mosi
  Rechtecksignal einlesen snash82 8 1.623 24.10.2018 00:28
Letzter Beitrag: Bitklopfer
  Textdatei von SDKarte mit Arduiono lesen und als Variable abspeichern Christian_Moba-Arduino 2 815 25.08.2018 17:19
Letzter Beitrag: Tommy56

Gehe zu:


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