LittleKing Napisano Czerwiec 29, 2021 Udostępnij Napisano Czerwiec 29, 2021 (edytowany) Przede wszystkim witam wszystkich😊 Buduje button boxa do Farming Simulator i o ile sama budowa to dla mnie nie problem o tyle poległem na pisaniu programu. A oto mój problem: (podany na przykładowych pinach) Do pinu 9, 10 oraz 11 mam podłączone przyciski Pin 11 to dioda LED I teraz chciał bym sprawić że: Naciśnięcie pinu 9 zapala diodę na stałe. A naciśnięcie pinu 9, 10 lub 11 ja gasi. Czemu ma to służyć, przycisk 9 to przycisk odpowiadający za światła w grze, przycisk 10 zmiana pojazdu. W grze po zmianie pojazdu nie przenoszone są "ustawienia" świateł z poprzedniego więc dioda która miała by służyć jako kontrolka zapalonych świateł musi zgasnąć. Tak samo jak w przypadku przycisku 11 który ma być odpowiedzialny za opuszczenie pojazdu. Ja wiem że pewnie dla wielu z was to nie problem ale ja walczę już któryś dzień z tym i efekty tego są marne, internet przeszukałem i wszędzie są przykłady ale tylko dla wersji gdzie dioda świeci ale gdy trzymamy przycisk a ja chcę go nacisnąć i święci do momentu ponownego naciśnięcia któregoś z przykładowych przycisków. Z góry dziękuje jeżeli ktoś by był miły mi w tym pomóc Edit nr.2 Wymyśliłem sposób zapalania i gaszenia diody w taki oto sposób: void setup() { pinMode(13,OUTPUT); pinMode(12,INPUT_PULLUP); pinMode(11,INPUT_PULLUP); } boolean stan=0; //prawda lub fałsz void loop() { if(digitalRead(12) == LOW)//Odczytanie stanu przycisku { delay(20); stan=!stan;//Odwrotnosc stanu 0->1 badz 1->0 digitalWrite(13,stan); while(digitalRead(12) == LOW); delay(20); } if(digitalRead(11) == LOW)//Odczytanie stanu przycisku { delay(20); stan=0;//Zmienia stan na 0 digitalWrite(13,stan); while(digitalRead(12) == LOW); delay(20); } } Tylko teraz rodzi się problem że o ile przycisk 11 działa poprawnie w grze oraz wyłącza diodę o tyle przycisk 12 nie zawsze łapie w grze choć trzeba przyznać że diodą steruje idealnie. Kod w całości: // Simple example application that shows how to read four Arduino // digital pins and map them to the USB Joystick library. // // Ground digital pins 9, 10, 11, and 12 to press the joystick // buttons 0, 1, 2, and 3. // // NOTE: This sketch file is for use with Arduino Leonardo and // Arduino Micro only. // // by Matthew Heironimus // 2015-11-20 //-------------------------------------------------------------------- #include <Joystick.h> Joystick_ Joystick; void setup() { // Initialize Button Pins pinMode(9, INPUT_PULLUP); pinMode(10, INPUT_PULLUP); pinMode(11, INPUT_PULLUP); pinMode(12, INPUT_PULLUP); pinMode(13, OUTPUT); // Initialize Joystick Library Joystick.begin(); } // Constant that maps the phyical pin to the joystick button. const int pinToButtonMap = 9; // Last state of the button int lastButtonState[4] = {0,0,0,0}; boolean stan=0; //prawda lub fałsz void loop() { // Read pin values for (int index = 0; index < 4; index++) { int currentButtonState = !digitalRead(index + pinToButtonMap); if (currentButtonState != lastButtonState[index]) { Joystick.setButton(index, currentButtonState); lastButtonState[index] = currentButtonState; } } delay(50); //Moje dodatki if(digitalRead(12) == LOW)//Odczytanie stanu przycisku { delay(20); stan=!stan;//Odwrotnosc stanu 0->1 badz 1->0 digitalWrite(13,stan); while(digitalRead(12) == LOW); delay(20); } if(digitalRead(11) == LOW)//Odczytanie stanu przycisku { delay(20); stan=0;//Zmienia stan na 0 digitalWrite(13,stan); while(digitalRead(12) == LOW); delay(20); } } Edytowano Czerwiec 29, 2021 przez LittleKing Nowe przemyślenia Link do komentarza Share on other sites More sharing options...
Pomocna odpowiedź
Bądź aktywny - zaloguj się lub utwórz konto!
Tylko zarejestrowani użytkownicy mogą komentować zawartość tej strony
Utwórz konto w ~20 sekund!
Zarejestruj nowe konto, to proste!
Zarejestruj się »Zaloguj się
Posiadasz własne konto? Użyj go!
Zaloguj się »