Skocz do zawartości

Ekspander Forbot shield i klawiatura matrycowa 4x4


Rak_Rakoski

Pomocna odpowiedź

Witam wszystkich, chcę zrobić pozytywkę używając shielda wymienionego w "kursie budowania robotów" i Arduino problem polega na tym, że chcę podłączyć klawiaturę matrycową 4x4 z kursu arduino poziom II do ekspandera w schieldzie, w celu wyboru utworów, ale nie wiem jak zadeklarować jego piny w tablicy.

Fragment mojego kodu:

#include "Adafruit_MCP23008.h" //Dodanie biblioteki
Adafruit_MCP23008 ekspander; //Deklaracja "ekspandera"

//Nuty
//4-line octave
#define NOTE_C7  2093
#define NOTE_CS7 2217.46
#define NOTE_D7  2349.32
#define NOTE_DS7 2489.02
#define NOTE_E7  2637.02
#define NOTE_F7  2793.83
#define NOTE_FS7 2959.96
#define NOTE_G7  3135.96
#define NOTE_GS7 3322.44
#define NOTE_A7  3520
#define NOTE_B7 3729.31
#define NOTE_H7  3951.07

#include <Keypad.h>
const byte ROWS = 4; // ile wierszy
const byte COLS = 4; //ile kolumn

byte rowPins[ROWS] = {5, 4, 3, 2}; //piny wierszy         <-- Omawiana tablica
byte colPins[COLS] = {6, 7, 8, 9}; //piny kolum        <-- Omawiana tablica

char keys[ROWS][COLS] = { //mapowanie klawiatury
  {'1','2','3','A'},
  {'4','5','6','B'},
  {'7','8','9','C'},    
  {'*','0','#','D'}};


 int nr = 0;
void setup()

{

    ekspander.begin();
    pinMode(10, OUTPUT); //Ustaw pin 10 jako wyjście  - buzzer
}
 
void loop() {
    nr = Serial.read();
  switch (nr)
  {
    case 'A':
  tone(10, NOTE_C7);
  delay(300);
  noTone(10);  
  tone(10, NOTE_E7);
  delay(300);
  noTone(10);
  //...
  break;
  case 'B':
  tone(10, NOTE_E7);
  delay(300);
  noTone(10);
  tone(10, NOTE_F7);
  delay(300);
  noTone(10);
  //...
  break;
  case 'C':
  tone(10, NOTE_C7);
  delay(300);
  noTone(10);  
  tone(10, NOTE_C7);
  delay(300);
  noTone(10);
  //...
}
}

 

Link do komentarza
Share on other sites

@Rak_Rakoski, witam na forum 😉 Widzę, że to Twoje pierwsze kroki na Forbocie, oto najważniejsze informacje na start:

  • Chcesz przywitać się z innymi członkami naszej społeczności? Skorzystaj z tematu powitania użytkowników.
  • Opis najciekawszych funkcji, które ułatwiają korzystanie z forum znajdziesz w temacie instrukcja korzystania z forum - co warto wiedzieć?
  • Poszczególne posty możesz oceniać (pozytywnie i negatywnie) za pomocą reakcji - ikona serca w prawym dolnym rogu każdej wiadomości.
21 godzin temu, Rak_Rakoski napisał:

Witam wszystkich, chcę zrobić pozytywkę używając shielda wymienionego w "kursie budowania robotów" i Arduino problem polega na tym, że chcę podłączyć klawiaturę matrycową 4x4 z kursu arduino poziom II do ekspandera w schieldzie, w celu wyboru utworów, ale nie wiem jak zadeklarować jego piny w tablicy.

Te dwie biblioteki nie są przystosowane do współpracy, więc raczej ciężko będzie je połączyć. Tutaj jest jednak zmodyfikowana biblioteka, która powinna rozwiązać Twój problem: https://github.com/joeyoung/arduino_keypads/tree/master/Keypad_MCP Są do niej dołączone przykłady, nie powinieneś mieć problemów z jej uruchomieniem 🙂

Link do komentarza
Share on other sites

Zarejestruj się lub zaloguj, aby ukryć tę reklamę.
Zarejestruj się lub zaloguj, aby ukryć tę reklamę.

jlcpcb.jpg

jlcpcb.jpg

Produkcja i montaż PCB - wybierz sprawdzone PCBWay!
   • Darmowe płytki dla studentów i projektów non-profit
   • Tylko 5$ za 10 prototypów PCB w 24 godziny
   • Usługa projektowania PCB na zlecenie
   • Montaż PCB od 30$ + bezpłatna dostawa i szablony
   • Darmowe narzędzie do podglądu plików Gerber
Zobacz również » Film z fabryki PCBWay

@Rak_Rakoski, wybacz brak odpowiedzi, ale nie zauważyłem Twojego pytania - już nadrabiam zaległości.

22 godziny temu, Rak_Rakoski napisał:

To, spytam inaczej: Jak użyć ekspandera w poleceniu #define

Jeśli dobrze rozumiem Twoje pytanie to nie ma takiej możliwości.

Dnia 2.01.2019 o 17:34, Rak_Rakoski napisał:

W dalszym ciągu nie wiem, jak użyć tej biblioteki, z ekspanderem. Przykładowe szkice wyglądają niemalże identycznie jak te z  biblioteki "Keypad.h"

Dokładnie tak, te szkice są praktycznie identyczne, bo biblioteka, którą Ci podlinkowałem to inna wersja biblioteki używanej w kursie. Dlatego uznałem, że już dalej pójdzie z górki. Czy próbowałeś uruchomić, któryś z przykładów? Zacznij od najprostszego tj.: HelloKeypad.

Podłącz klawiaturę do ekspandera i spróbuj uruchomić program. Jeśli nic nie zmieniałeś na płytce to powinno zadziałać, bo na naszym shieldzie ekspander ten ma ustawiony adres 0x20, czyli identycznie jak w linkowanym przykładzie. Masz jakiś konkretny problem z uruchomieniem tego przykładu? Co dzieje się w Twoim przypadku?

Link do komentarza
Share on other sites

Po wgraniu skryptu do Arduino ide  oraz instalacji bibliotek wyświetla się błąd "Błąd kompilacji dla płytki Arduino Uno WIFI." z podpisem: 

In file included from C:\Users\Orzeł\Documents\Arduino\fsdfsd\fsdfsd.ino:11:0:

C:\Arduino\libraries\Keypad_MCP/Keypad_MCP.h:36:20: fatal error: Keypad.h: No such file or directory

 #include "Keypad.h"

                    ^

compilation terminated.

exit status 1
Błąd kompilacji dla płytki Arduino Uno WiFi.

Po próbie zniwelowania błędu utworzeniem pliku o nazwie Keypad.h w folderze "libraries\Keypad_MCP" kompilator stwierdził że "makeKeymap" nie jest zadeklarowane ang. "was not included in this scope".

Skrypt skopiowany z linku HelloKeypad.

Link do komentarza
Share on other sites

50 minut temu, Rak_Rakoski napisał:

Po próbie zniwelowania błędu utworzeniem pliku o nazwie Keypad.h w folderze "liblaries\Keypad_MCP" kompilator stwierdził że "makeKeymap" nie jest zadeklarowane ang. "was not included in this scope".

W taki sposób na pewno nie uda Ci się naprawić tego błędu 😉

Czy masz wgraną cały czas tę zwykłą bibliotekę, która jest używana w kursie?

Link do komentarza
Share on other sites

@Rak_Rakoski, coś musiałeś w takim razie źle zainstalować. Sprawdziłem wszystko przed chwilą. Pobrałem bibliotekę, skopiowałem katalog "Keypad_MCP" do katalogu z bibliotekami Arduino. Zrestartowałem środowisko i projekt kompiluje się bez problemu:

cea54-2019-01-14_08-56-32-5487.png

Możesz pokazać swoją zawartość katalogu z bibliotekami?

Link do komentarza
Share on other sites

@Rak_Rakoski, wystarczyłby zrzut ekranu 😉 Usunąłem załącznik, bo nie ma sensu trzymać tyle plików jako załącznik.

Chyba się nie rozumiemy, pytałem: Czy masz wgraną cały czas tę zwykłą bibliotekę, która jest używana w kursie? Na co odpowiedziałeś, że tak. A w Twoim katalogu nie ma biblioteki Keypad. Wgrałeś bibliotekę, o której tutaj pisałem, co zaznaczyłem poniżej, ale biblioteki Keypad używanej w kursie tutaj nie widzę:

4816b-2019-01-15_10-15-36-5509.png

Jak w takim razie udało Ci się wykonać przykłady z kursu? 😉

Biblioteka używana w kursie Arduino, poziom II do obsługi klawiatury:

dc486-2019-01-15_10-21-42-5510.png

Jest to fragment tego artykułu: Kurs Arduino II – #5 –  klawiatura, własny system alarmowy. Tak jak już pisałem - musisz mieć wgrane obie biblioteki. Bez tego przykłady nie będą się kompilować.

  • Pomogłeś! 1
Link do komentarza
Share on other sites

28 minut temu, Rak_Rakoski napisał:

Co oznacza zapis zaznaczony na czerwono.

To nie błąd kompilacji to tylko informacja, która jest błędnie wyświetlana na czerwono w Arduino IDE. W nowszej wersji IDE informacja ta nie jest już podświetlana na kolorowo. Reasumując: nie musisz się tym przejmować.

Link do komentarza
Share on other sites

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ę »
×
×
  • Utwórz nowe...

Ważne informacje

Ta strona używa ciasteczek (cookies), dzięki którym może działać lepiej. Więcej na ten temat znajdziesz w Polityce Prywatności.