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

Dołącz do dyskusji, napisz odpowiedź!

Jeśli masz już konto to zaloguj się teraz, aby opublikować wiadomość jako Ty. Możesz też napisać teraz i zarejestrować się później.
Uwaga: wgrywanie zdjęć i załączników dostępne jest po zalogowaniu!

Anonim
Dołącz do dyskusji! Kliknij i zacznij pisać...

×   Wklejony jako tekst z formatowaniem.   Przywróć formatowanie

  Dozwolonych jest tylko 75 emoji.

×   Twój link będzie automatycznie osadzony.   Wyświetlać jako link

×   Twoja poprzednia zawartość została przywrócona.   Wyczyść edytor

×   Nie możesz wkleić zdjęć bezpośrednio. Prześlij lub wstaw obrazy z adresu URL.

×
×
  • 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.