• Witaj na Forum Arduino Polska! Zapraszamy do rejestracji!
  • Znajdziesz tutaj wiele informacji na temat hardware / software.
Witaj! Logowanie Rejestracja


Ocena wątku:
  • 0 głosów - średnia: 0
  • 1
  • 2
  • 3
  • 4
  • 5
MIDI oraz toggle switch
#1
witam

Zaznaczam że jestem bardzo początkującym adeptem programowania Smile

Potrzebuję stworzyć teoretycznie prosty program który ma jedno wyjście z arduino ustawiać w stan logicznego 0 lub 1 , na zasadzie toggle za pomoca zwykłego switcha monostabilnego oraz komunikatów midi.

kod zwykłego przełączania stanu wyjścia za pomocą jednego przycisku mam napisane i rozumiem


Kod:
int inPin = 5;        
int outPin = 13;      

int state = 1;      // poczatkowy stan wyjscia
int reading;           // aktualny stan
int previous = 0;    // poprzedni stan


void setup()
{
 pinMode(inPin, INPUT);
 pinMode(outPin, OUTPUT);
}

void loop()
{
 reading = digitalRead(inPin);
 delay(50);

 
 
 if (reading == 1 && previous == 0) {
   if (state == 0)
     state = 1;
   else
     state = 0; {

 }

 digitalWrite(outPin, state);

 previous = reading;
}

Obsługę samego midi również opanowałem, przy otrzymaniu komunikatu program change 1 na kanale 1, ustawiam wyjscie w stan "1", gdy otrzymam komunikat program change 2 na kanale 1 - ustawiam stan wyjścia na "0"


Kod:
byte commandByte;
byte noteByte;

int inPin = 5;        
int outPin = 13;      
 

void setup(){
 Serial.begin(31250);
 pinMode(inPin, INPUT);
 pinMode(outPin, OUTPUT);

}


void loop()
{    if (Serial.available() > 0){
     commandByte = Serial.read();
     noteByte = Serial.read();
     if (commandByte == 192 && noteByte == 1){
       
         digitalWrite(outPin,HIGH);
       }
     }
     if (commandByte == 192 && noteByte == 2){
       
         digitalWrite(outPin,LOW);
       }

         delay(10);
     }
   

Problem mam teraz jak napisać program który łączy midi i zwykłęgo switcha monostabilnego.

Ma to działać tak:
Odpalamy program i na starcie stan wyjścia = 1
jeśli nacisnę przycisk - stan wyjścia = 0
jeśli ponownie nacisnę - stan wyjścia = 1
teraz jeśli przyjdzie komunikat midi program change 1 - stan wyjścia = 1 czyli dalej taki jaki był
jeśli nacisnę przycisk - stan wyjścia = 0
jeśli przyjdzie ponownie komunikat midi program change 1 - stan wyjścia = 1
jeśli przyjdzie komunikat midi program change 2 - stan wyjścia = 0
jeśli teraz nacisnę przycisk - stan wyjścia = 1
po prostu działanie na zasadzie toggle...

Mam nadzieję że zrozumiale napisałem

Próbuje coś sensownego sklecić ale albo błedy wywala albo nie działa.

Można prosić kogoś o pomoć? albo nakierowanie jak to zrobić...

pozdrawiam
 
Odpowiedź
  


Wiadomości w tym wątku
MIDI oraz toggle switch - przez drakston - 27-11-2017, 22:19
RE: MIDI oraz toggle switch - przez drakston - 07-12-2017, 15:46

Skocz do:


Przeglądający: 1 gości