Skocz do zawartości

Sterowanie zespołem przekaźników z niezależnej klawiatury


Kshyhoo

Pomocna odpowiedź

(edytowany)

Te przekaźniki to w sumie nie tani interes. Stówka za sztukę. Zawsze można rozważyć coś po WiFi na szynę albo do puszki bezpośrednio. Z przekaźnikami, które obecnie są zainstalowane, żeby było uczciwie, to jeśli istnieje coś na podobieństwo sterownika LED, który masz  tej samej skrzynce, który by był na WiFi, BT, Ethernet, cokolwiek tak żeby było jakieś API. Z ciekawości, np. dolny rząd przekaźników, cienki, czerwony przewód przeskakuje z jednego na drugi (przyłącze nr 4 przekaźnika). Do czego on służy?

Edytowano przez matsobdev
Link do komentarza
Share on other sites

No ale po co mam zmieniać coś, co działa dobrze od kilku lat!? Brakuje mi tylko dodatkowego sterowania (moje widzimisię). Arduino Nano jest dobre, bo małe.

Zbudować umiem, zaprogramować nie. Jeszcze nie... Może kiedyś zaprogramuję. Na dziś odkładam projekt, bo czarna magia.

Link do komentarza
Share on other sites

@Kshyhoo Może nie należy się od razu poddawać? Jak już wcześniej koledzy doradzali, bez problemu odczytasz stan klawiszy używając 13 lub 14 pinów Arduino. Problemem jest sterowanie LED-ami, proponowałbym dać do tego dedykowany układ np. MAX7219 (https://www.analog.com/media/en/technical-documentation/data-sheets/MAX7219-MAX7221.pdf) i po problemie 🙂

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

@Kshyhoo W przykładach dla Arduino IDE masz gotowca - zmieniasz tylko ilość kolumn, tablice z numerami pinów i ze znakami odpowiadającymi klawiszom. Tyle to nawet paszczalowiec zrobi od ręki.

@Elvis ja się chyba starzeję - matryca z tym układem leży mi pod nosem i przeszkadza 🙂

policzmy:

LED - piny 10 do 13 (SPI)

Klawiatura: piny A0 do A5 i 2 do 9

Tyle masz w Arduino.

Przy okazji - jak połączysz klawisze 6x7 a nie 4x10 to jeszcze jeden pin zostanie (np. dla jakiegoś buzzera) i miejsce na dwa dodatkowe guziki jakbyś potrzebował.

Link do komentarza
Share on other sites

@ethanak Jak ktoś będzie zawzięty to może nawet te same piny użyć do SPI oraz odczytu stanu klawiatury.

Więc w sumie 13 pinów powinno wystarczyć, ale łatwiej będzie napisać program gdzie klawiatura i diody będą miały oddzielne wyprowadzenia.

Link do komentarza
Share on other sites

Arduino IDE? Teraz dowiedziałem się, że istnieje. W symulatorze online nie ma podglądu elementów 😞 Tej gotowej klawiatury nie mogę znaleźć.

Z racji tego, że jestem zielony w temacie, wszelkie "masz gotowca", "zmieniasz tylko", "proponowałbym dać" to to samo, co frazeologia mojej żony: wiem, że do mnie mówi ale nie wiem o czym mówi...

Link do komentarza
Share on other sites

@Kshyhoo Jeśli nie znasz podstaw, to chyba trzeba nadrobić nieco zaległości przed zabraniem się za własny projekt. Na forum znajdziesz znany i lubiany kurs Arduino: https://forbot.pl/blog/kurs-arduino-podstawy-programowania-spis-tresci-kursu-id5290 

Dzięki niemu szybko opanujesz podstawy i wtedy będzie o wiele łatwiej Ci pomóc i podpowiedzieć co należy zrobić. A na zachętę dodam, że w części drugiej kursu masz omówione działanie klawiatury matrycowej: https://forbot.pl/blog/kurs-arduino-ii-klawiatura-wlasny-system-alarmowy-id18341

Link do komentarza
Share on other sites

A myślisz, że tej części kursu nie widziałem? To były pierwsze wyniki po wpisaniu frazy "Arduino klawiatura" w Google...

Przy czym ma to się nijak do problemu, bo jak wcześniej pisałem "gotowce" 4x4 nie mają się nijak do klawiatury 4x10 bo nie wiem, jak zaprogramować użycie portów A0-A3 jako rzędów. Kombinowałem na wszelkie sposoby i zawsze mam błąd, zazwyczaj jakichś tam deklaracji.

Chcę zrobić klawiaturę do załączania przekaźników i moja przygoda z Arduino prawdopodobnie się zakończy.

Zapewne wiecie o czym piszecie i jestem wdzięczny za każdą podpowiedź. Ale jak dotąd, wszelkie podpowiedzi wprowadziły tylko zamęt w mojej głowie, nie mówiąc już o uświadomieniu, że nic nie umiem. A podpowiedzi bez poparcia konkretnym przykładem, nic nie wnoszą, bo nie wiem o czym mowa!

Przekopałem przykładu na TinkerCad, wokwi.com, włączając do tego ich Discord i znalazłem wiele przykładów, ale zazwyczaj są niedziałające...

 

Link do komentarza
Share on other sites

(edytowany)
1 godzinę temu, Kshyhoo napisał:

Przekopałem przykładu na TinkerCad

Ale wiesz, że symulator z rzeczywistym Arduino ma tyle wspólnego, co symulator latania myśliwcem na C64 z lataniem F16?

1 godzinę temu, Kshyhoo napisał:

A myślisz, że tej części kursu nie widziałem?

A jak robiłeś prawo jazdy to od razu przechodziłeś do skręcania w lewo na skrzyżowaniu gdzie jedzie policja, motocyklista i tramwaj ? Czy może zaczynałeś od włączenia silnika? Kursy są tak skonstruowane, że trzeba je przechodzić kolejno od pierwszej lekcji.

Poza tym nie wiem co tam mogło nie działać, przykład z CustomKeyboard (jak zainstalujesz Arduino IDE i bibliotekę Keypad to będziesz miał na własnym dysku):

const byte ROWS = 6; //six rows
const byte COLS = 7; //seven columns
//define the cymbols on the buttons of the keypads
char hexaKeys[ROWS][COLS] = {
  {'a','b','c','d','e','f','g'},
  {'h','i','j','k','l','m','n'},
  {'o','p','q','r','s','t','A'},
  {'B','C','D','E','F','G','H'},
  {'I','J','K','L','M','N','O'},
  {'P','Q','R','S','T','#','*'},
};
byte rowPins[ROWS] = {A0, A1, A2, A3, A4, A5}; //connect to the row pinouts of the keypad
byte colPins[COLS] = {2, 3, 4, 5, 6, 7, 8}; //connect to the column pinouts of the keypad

Tu masz fragment który trzeba podmienić żeby na wyjściu dostać odpowiedni znaczek... nawet ortografa w oryginalnym kodzie nie podmieniałem żebyś mógł łatwiej znaleźć.

Aha, zapewniam że się kompiluje:

Szkic używa 3152 bajtów (9%) pamięci programu. Maksimum to 32256 bajtów.
Zmienne globalne używają 363 bajtów (17%) pamięci dynamicznej, pozostawiając 1685 bajtów dla zmiennych lokalnych. Maksimum to 2048 bajtów.

Used library Version Path
Keypad       3.1.1   /home/ethanak/Arduino/libraries/Keypad

Used platform Version Path
arduino:avr   1.8.6   /home/ethanak/.arduino15/packages/arduino/hardware/avr/1.8.6

 

Edytowano przez ethanak
Link do komentarza
Share on other sites

A coś nie działa? Jeśli nie działa to przesiądź się z C64 na F16.

Musi działać na Uno, Nano i Pro Mini (takie mam).

Przy okazji - rozumiem że 6x7 to be, a 4x10 to cacy? Jeśli tak, to użyj A4 i A5 zamiast 9 i 10, bo potem będziesz pytał dlaczego ledy nie świecą.

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.