Ja we wszystkich urządzeniach robię klawiaturę bardzo prostą. Matryca bez optoizolacji, rezystory podciągające są wewnętrzne, włączane tylko na czas odczytu, żadnych kondensatorów, diod etc. Cała reszta to program - skanowanie, filtracja drgań styków oraz zakłóceń. Działa to dobrze nawet przy wysokim poziomie zakłóceń. Algorytm działania jest podobny...
Badaj stan bitów w ten sposób: if (PINB & _BV(PINB4))... raczej if (!(PINB & _BV(PINB4))) //czy=0 lub po "ludzku" if(bit_is_clear(PINB,PB4)... Kod który przytoczyłeś realizuje coś takiego: if (4==0)... To dla przykładu z PINB4, raczej nie bedzie działać :-) Ten kod nic nie realizuje - kompilator go ignoruje....
(at)dyerseve I tu jest problem. Musisz zmienić polaryzację tak jak przedstawiłem to na schemacie. Podajesz stan wysoki z segmentu, przez rezystory 180 om wprowadzasz do CPU gdzie stoi rezystor do zasilanie. Wynik odczytu ???
Na samym attiny nie zrobisz. Braknie pinów procesora.Potrzebujesz dekodera do przemiatania wierszy lub multipleksera do odczytu kolumn (klawiatura matrycowa odczyt sekwencyjny brak wbudowanego kontrolera). Rozumiem że połączenie elektryczne masz opanowane - taśmy klawiatury nie polutujesz - potrzebne gniazdo. Znacznie łatwiej by było użyć klawiatury...
Napisałem program do obsługi klawiatury matrycowej. Podłączone diody LED wskazują binarnie wartość wciśniętego przycisku, a wyświetlacz LCD pokazuje szesnastkowo wciśnięty przycisk. Klawiatura podłączona do PORTD mikrokontrolera. http://obrazki.elektroda.pl/1733933700_1... Problem w tym że wszystkie przyciski działają poprawnie oprócz jednego...
Witam wszystkich, jestem pocztykujacym w temacie programowania i napotkalem sie na problem odczytu klawiatury matrycowej 4x4 w mikrokontrolerze atmega32. program wydaje mi sie poprawny ale czyta tyklo dwa klawisze. #include <util\delay_basic.h> #include <stdio.h> #include <avr/io.h> #include "lcd.h" #include <string.h>...
No własnie po przeczytaniu opisu (w książce) przykładu programu do odczytu klawiatury matrycowej zobaczytałem taki wpis i zglądam do dokumantacji ATmega i widzę że faktycznie tak cos takiego jest. Wczesniej na to nie zwrócilem uwagi. Niestety w tej książce nie było opisane o co chodzi. Mam prośbę czy możesz mi coś więcej o tym opisać? Nie za bardzo...
Zrozum, że to forum nie potrzebuje specjalnego działu do pokazywania "algorytmów" odczytu stałej z pamięci, bo to jest podstawa opisana w manualu danego układu. Algorytm to jest FFT, PID, stabilizacja parametru układu, zmniejszenie wpływu niepożądanych zmiennych na pomiar, a nie to o czym ty piszesz... Sorry. To że istnieje forum nie zwalnia nikogo...
Cześć. Zrobiłem coś takiego - czyli odczyt stanu klawiatury matrycowej na przerwaniach dla ATMega128. Kod w załączniku. Nie wiem tylko jak zrobić, żeby odczytywał jedno wciśnięcie klawisza. Przy takim programie po wciścnięciu klawisza rombie wykonywanie tego przerwania jak najęty aż do puszczenia klawisza. Mnie chodzi o to, że jak wcisne klawisz ma...
Zastosowanie klawiatury PC jest nie możliwe. Więc może nie całą klawiaturę, ale układ kodujący do PS/2. A to już łatwo oprogramować w mikrokontrolerze. Oszczędność czasu i 20 portów. No 18, bo ze 2 będą potrzebne do odczytu.
Dla potrzeb budowy zegara (4 klawisze) wymyśliłem sobie, że klawiatura zostanie zrealizowana jako matryca o rozmiarze 2x2. Dobre! A ile linii zaoszczędziłeś :-) niby wszytko też działa ALE co kilka naciśnięć (nie za każdym razem) da się zauważyć, że mylone są kolumny klawiatury. Szklana kula jest w naprawie. Pokaż schemat i program. Tak na ślepo, to...
Pomiędzy zmianą stanu portu B, a pierwszym odczytem portu PIN wstaw koniecznie nop - problemem nie jest twój program, lecz synchronizator portów w procesorze, który wprowadza pewne opóźnienie. Przejrzyj notę katalogową dokładnie.
AVE... Ja mam takie pytanie: dlaczego nie użyć albo rejestrów przesuwnych, albo czemu nie wziąć jakiegoś taniego mikroklocka z dużą ilością pinów, albo mniejszego i rejestrów by zrobić uniwersalny sterownik klawiatury matrycowej? Koszt + przede wszystkim, miejsce. Juz wolałbym się bawić potencjometrami. Chyba zrobię tak: podzielę matrycę w pionie na...
Reasymując: nie znamy schematu i nie wiadomo, jakie są objawy niedziałania programu. No, to już możemy pomagać, bo Autor nie chce użyć debuggera, żeby sprawdzić, co się dzieje w procedurze odczytu klawiatury.
a widzisz że masz tam "....." to po to by sobie dopisać resztę kodu w zależności od potrzeby a umieszczenie klawiszy może być dowolne jak masz kod dobry to może być 4x3, 2x2, 4x4 itp. Widze ".......", ale ich umiejscowienie ni jak nie pozwolą na zrealizowanie odczytu klawiatury matrycowej. ... ale musisz zmodyfikować elektronikę tak by np. wciskając...
Czyli zamiast robić na przerwaniu INT0 zrobić na timerze? Ale wtedy schemat by pozostał taki sam bo co wtedy zrobić z sygnałem z klawiatury do INT0? A kod do odczytu aktualnego klawisza jest w porządku?
Poczytaj o odczycie klawiatur matrycowych, tu masz schemat, który pokazuje sposób podłączenia: https://obrazki.elektroda.pl/2529794200_...
Witajcie, Klawiatura ADC: Udało mi się pozyskać stary tuner Sony ST-120 jako "dawcę" do przeróbki. W związku z tym powstała potrzeba dołożenia obsługi klawiatury. Na próbę zbudowałem matrycową rezystancyjna klawiaturę oparta o odczyt z ADC i powiem Wam, ze działa to bardzo stabilnie. Jeśli będą problemy to przejdę na PCF8575. Na schemacie jest miejsce...
I w 50 cyklach zegara - więc np. do 10 000 odczytów na sekundę potrzebny jest zegar 500 kHz.
Żeby na 100% nie było różnicy między badanymi stanami pinów podczas kolejnych badań oraz zapisu do rejestru, powinieneś tylko w jednym miejscu odczytać PIND i zapisać w zmiennej. Dopiero zmienną testować i gdy trzeba zapisać do tablicy. Sprawdź (pokaż) jak wygląda zawartość pliku .lss. Może trzeba powalczyć z instrukcją asm volatile("nop"), zeby program...
Nie ma w tym nic dziwnego, po prostu standardowa klawiatura matrycowa. W tym układzie klawiatury port P0 pracuje jako wyjście, a porty P1 i P2 i P3.7 jako wejścia. Zasada odczytu jest następująca: - Ustaw "0" na linii P0.0, pozostałe linie P0 na "1"; - Odczytaj stan portów P1 i P2 i P3.7. "0" na linii portu oznacza naciśnięty przycisk (odpowiednio 64-71,...
Problem to dopiero będziesz miał, jak będziesz próbował użyć przerwań zewnętrznych. Naprawdę - użyj timera. Szukaj na forum milionów tematów o używaniu przerwań do odczytu stanu przycisków. W google zresztą też znajdziesz.
:) Może źle się wyraziłem :) Ja nie chcę się chronić, przed naciśnięciem kilku klawiszy na raz, bo to użytkownik urządzenia obcuje z klawiaturą, ja chcę tylko mieć pewność, że to, co odczytuję przeczesując wiersze, to jest stan faktyczny, jeśli chodzi o wciśnięte klawisze. Układ z diodami mi, to zapewnia, układ bez diod, niestety nie. I tak właśnie...
while (1) { IOSET0 = 0x00004000; //ustawienie jedynki na pierwszej linii klawisz= IOPIN0; //odczytanie stanu portu switch (klawisz &= 0x001e0000) //sprawdzenie na którym pinie jest stan wysoki { case 0x00020000: {LCDText("1");bre... case 0x00040000: {LCDText("4");bre...
Gorzej, że jak się jej nie wywoła z przerwania timera, to działanie całości zależy od czasu potrzebnego na reakcję na klawisz, bo brakuje eliminacji drgań. Ja bym to puszczał w przerwaniu timera co 10..20 ms i uznawał klawisz za wciśnięty po dwóch takich samych odczytach. To by było w miarę prosto i jakoś by działało.
tak jak to jest na pewno nie zadziała. W twoim programie klawiatura będzie podpięta pod port a i tyle. Drugiej nie będzie. Chyba że sobie napiszesz jakąś procedurkę która będzie kontrolować obie naraz ale wtedy do odczytu nie będziesz korzystał z funkcji getkbd(). Poczytaj opis Bascoma.
To chociaż napisz ile masz do dyspozycji pinów wejścia-wyjścia. Czy sześć pinów to za dużo? (przy użyciu demultipleksera 74*154 który zmieni stan czterech linii wyjściowych na 1 z 16, razy dwie linie wejściowe do odczytu) Czy przejrzałeś w sieci schematy urządzeń w których jest podłączana klawiatura matrycowa do mikrokontrolera? Na samej elektrodzie...
Witam! Proszę o pomoc. Piszę program obsługujący klawiaturę matrycową - w sumulatorze wszystko działa, ale w momencie wgrania do ATmega128 nie działa. Klawiatura wygląda tak: http://img485.imageshack.us/img485/2132/... tranzystory podpięte są do PORTC0-3 Linie wierszowe klawiatury do PORTA0-3 Dioda LED podłączona jest do PORTB0 Cały program...
Mam do napisania program ktory bedzie czytal z klawiatury matrycowej dwie cyfry dziesietne jakies liczby i zamienial je na liczbe binarna i szesnastkowa. Jak zrobic ze jak wprowadze te dwie cyfry to beda one traktowane jak jedna liczba i jak potem zamienic ja na binarna i szestastkowa? Bede wdzieczny za jakakolwiek pomoc.
Jeśli podłączymy przyciski tak, że każdy ma dwukrotnie większą wagę niż poprzedni, to mamy w efekcie zwykły DAC, gdzie kombinacja przycisków zapodaje wartość binarną. W takiej sytuacji nie ma problemu, aby rozróżnić dowolną kombinację wciśniętych przycisków Ale to tylko takie fajne jest w teorii. Praktycznie tolerancja oporników musi być wysoka, by...
bo kolejne odczyty wierszy dają opóźnienie. A jeśli efekt na wyjściu pojawi się po więcej niż powiedzmy 8 taktach to już problem tego co podłączono do portu.
Witam Chciałem wykonać małą centralkę alarmową (o ile można to tak nazwać) na początek chciałem uruchomić odczyt klawiatury matrycowej i wyświetlanie postępu wpisywania kodu. Wzorując się kursem języka C z jednej ze stron internetowych przerobiłem zamieszczony tam kod pod mojego Attiny2313 po skompilowaniu i wgraniu programu do uC program się uruchomił...
jest możesz zastosować pętle for jednak ten kod jest bardziej uniwersalny, łatwe wykonanie przypisania kodów konkretnym przyciskom oraz łatwe podłączenie klawiatury każde wyprowadzenie możne wręcz znajdować się na innym pinie procesora. poza tym NOPy są istotne, gdyż za szybie odczytanie kolumn po ustawieniu wierszy powoduje zły odczyt musi minąć co...
Jeżeli się nie mylę, w LPT jest tylko 5 pinów wejściowych (nie 4). Niestety to i tak za mało na sterowanie matrycowe. Możesz zastosować stary trik i odwrócić matrycę 8x6 na 6x8. Na wejścia LPT zamontować układ w stylu '244, który będzie multipleksował 4 z 8 kolumn. Sześć pinów wyjściowych użyć do wyboru wiersza a siódmy i ósmy do wyboru górnej lub dolnej...
Witam. Zakładam nowy temat ponieważ szukałem informacji na ten temat lecz nie znalazłem odpowiedzi. Chodzi o wprowadzania liczb 2 cyfrowych z klawiatury matrycowej. Do odczytu klawiszy wykorzystuję instrukcję "Getkbd". Nie wiem jak dokonać odczytu ile razy został wciśnięty klawisz. W celu wprowadzania liczb wielocyfrowych z klawiatury. Za pomocą zmiennej...
Snifowanie na 100kHz da się zrobić nawet na ATTiny13 (ja zrobiłem I2C slave i działa), ale i tak najpierw musisz przeanalizować w jaki sposób rzeczony Philips odczytuje klawisze, by móc zinterpretować pozyskane dane. Jak pisze (at)khoam proste to to nie będzie, ale trochę pracy i da się zrobić. Nie wiem jak początkujący jesteś więc najpierw musisz poczytać...
Witam Idea słuszna. Tyle że ta metoda nie pozwala wykryć czy naciśnięte są dwa klawisze, co nieraz może być przydatne. Patrzę w książkę i klawiszę zciągają do zera poszczególne linie i tak wygląda to u panów Gałków. k l a w i s z bit CSKB0=21h CSKB1=22h 0 0 8 1 1 9 2 2 ← strzałka w lewo 3 3 → strzałka w prawo 4 4 ↑ strzałka w górę...
No to jest oczywiste, planuję 4 wyjscia i 5 wejsc, nie wiem tylko jak zrobić sprawdzanie tego który przycisk jest wciśnięty programistycznie, bo logicznie to się wydaje wysylanie 1 na wyjscie i odczyt z wejsc i tak w petli, a nie wiem wiem jak to zapisac ani co wysylac dokladnie. Proszę poprawić pisownię. Robak
Hmmm dopiero zaczynam z ARMem a jak kolega Freddie Chopin nie chce pomóc to niech zachowa uszczypliwe uwagi dla siebie. Wydaje mi się że ten portal powstał po to aby dzielić się wiedzą i doświadczeniem a nie wygłaszać bezsensowne docinki i dzięki temu powiększać sobie liczbę pkt na koncie. Jeżeli kolega Freddie Chopin chce sobie "ulżyć" to proponuję...
Najprawdopodobniej we fusebitach masz WŁĄCZONY interfejs JTAG (bit JTAGEN), co powoduje, że piny PC5..2 są "zablokowane" Musisz wyłączyć we fusebitach interfejs JTAG, tak będzie najprościej. Możesz też spróbować na samym początku programu: [syntax=basi4gl] MCUCSR=&B10000000 MCUCSR=&B10000000 'koniecznie ta linijka ma być 2 razy - to celowe [/syntax]
LED1...5 będą działać prawidłowo, bo ich sterowanie jest całkowicie niezależne od U1..5. Odnośnie czujników U1...U5 przyznam, że nie wiem co masz na myśli. Jeżeli chcesz zrobić matrycę XY, to generalnie trzeba się wzorować na klawiaturze matrycowej XY. Wtedy czujniki trzeba łączyć w wiersze i kolumny z odpowiednimi układami wybierania wiersza i kolumny....
Główną procedują odczytu klawisza klawiatury jest podprogram Mult_kl Opis jej działania : W pierwszej pętli For.... NEXT I program przeszukuje po kolumnach klawiatury (3 kolumny klawiszy a 4 wiersze w klawiaturze). Jeśli program wykryje naciśnięty klawisz to ustawia odpowiednie rejestry DDRD. Następnie sprawda czy został nacisniety jakis klawisz If...
Obsługa klawki 4x4 void KBD_init(void) { KBD_DIR = 1<<KBD_col1 | 1<<KBD_col2 | 1<<KBD_col3 | 1<<KBD_col4 | ~(1<<KBD_row1 | 1<<KBD_row2 | 1<<KBD_row3 | 1<<KBD_row4); KBD_PORT = 0xFF; }; unsigned char KBD_read(void) { KBD_PORT=0xff; KBD_PORT &= ~(1<<KBD_col1);...
To w takim układzie jak będzie wyglądał odczyt (zakłóciło mi to cały pogląd na informacje uzyskane z książki, ale to najwidoczniej coś źle zrozumiałem ) Do tej pory próbowałem to zrobić eeprom_read_float (&ee_K_Pi, K_Pi); , czy według float eeprom_read_float (const float *__p) __ATTR_PURE__ eeprom_read_float (&ee_K_Pi) ?
tu masz kod ktory dawno temu splodzilem w asmie na C51: ASM_klawiatura: ;-------- Przemiatanie klawiatury -------------------------------------- MOV Licz,#4d MOV wynik,#0111$1111b ;wedrujaca 0 = GND Tutaj: MOV A,wynik ;przepisz do Acc RL A ;przesun w lewo MOV Port,A ;wyslanie jedynki MOV wynik,A ;zapamietaj kolumne NOP ;odczekaj chwilke ;-)...
Jezeli chcesz mam dzialajacy program w ASM do odczytów matryc na wylącznikach mono/bistabilnych. Co do 15 m kabla to jestem zdania ze łatwiej i taniej bedzi eprzeniesc atmege w strone klawiatury nawet jezeli mialaby byc osobna niz ciagnąc tyle drutów i walczyc z pojemnosciami i innymi zakłóceniami co potem wplywa niekorzystnie na jakosc dzialania programu....
Ale chodzi ci o odczyt przez RPi klawiatury podpiętej pod GPIO, czy RPi ma udawać klawiaturę? Klawiszy możesz podpiąć dowolnie dużo - zobacz np. klawiaturę z PC - ponad 100 przycisków, a potrzebne są tylko dwa GPIO. Natomiast bez przesadnych kombinacji możesz podłączyć klawiaturę matrycowo. Google ci wskażą na czym sztuczka polega.
Szukałem i zadziwiło mnie że wszędzie opisany jest sposób odczytu jednego klawisza albo zaraz całej klawiatury matrycowej. Moja jest tego 3 rodzaju - poprzez dekoder 1z15 na BCD. Poczytałem nieco helpa plus Wasze wskazówki (za które niezmiernie jestem wdzięczny) i zmieniłem nieco to co wcześniej napisałem w załączniku wyżej. '************* Konfiguracja...
W takim przypadku masz wszystko ok. Podpowiem ci tylko że jako gotową klawiaturę możesz wydłubać coś ze starych telefonów stacjonarnych, można kupić naklejane klawiaturki membranowe lub metalowe wandaloodporne. Możesz też odczytać 8 przycisków za pomocą tylko 3 linii procesora. Układem np 74LS164 liniami DATA i CLK wysyłasz 1 stan wysoki kolejno na...
Wrzucam tutaj wyrwane kawałki z "chodzącego" programu dot. obsługi kl. Nie analizowałem tego czy będzie działać. Mogłem coś jeszcze przeoczyć. Myślę, że pozwoli to się zorientować w zasadach obsługi. Program dotyczy matrycy 12klawiszowej (3 kolumny po 4 klawisze). pzdr KeyPTRDS1;licznik odczytow klawisza LastKeyDS1;ostatnio odczytany klawisz SavdKeyDS1;ostatni...
Witam. Wiesz,przede wszystkim sądzę że powinieneś zastosować jakąkolwiek eliminację drgań styków klawiatury bo wnioski z działania programu mogą być mylące. Zrób to na przykład tak: If pina.4=0 then waitms 25 if pina.4=0 then Liczba = 10 Bitwait Pina.4 , Set End If End if Każdy mikrowyłącznik drga podczas naciskania,może to powodować nieoczekiwane niewłaściwe...
Witam! :arrow: Kolego zbyrek nie musi być zaraz ADC (ten raczej wykorzystuje się do poważniejszych zadań ;-) ) - wystarczy wbudowany do uPC komparator (pomiar czasu ładowania kondensatora) i taką klawiaturę 16 przyciskową (ale nie może to być klawiatura matrycowa 4x4) można obsłużyć tylko przez jedną linię I/O mikrokontrolera. Nie mniej takie proste...
Cześć. Tak jak napisałem w nazwie tematu posiadam ARM'a STM32F072RB. Podłączyłem kolejno kolumny, później wiersze klawiatury matrycowej 4x3 do portów GPIOC1-GPIOC7. Chcę odczytywać wciskane klawisze na klawiaturze i napisałem jak na razie taki kod: [syntax=c] #include "stm32f0xx.h" #include <stdio.h> volatile uint32_t timer_ms = 0x0; void delay(int...
http://obrazki.elektroda.pl/6241985300_1... Witam. Chciałbym przedstawić projekt, który jakiś czas temu zakończyłem i użytkuję codziennie. Jest to zamiennik standardowego wyświetlacza radia Update List występującego w samochodach marki Renault, rozszerzający funkcjonalność całego zestawu o funkcje takie jak: - nawigacja GPS, - zestaw...
Witam Forumowiczów Chciałbym przedstawić kolejny swój układ, który kiedyś został zrealizowany dla uczelni w ramach projektu. Jest to 16-klawiszowa klawiatura matrycowa mająca współpracować z płytką ewaluacyjną mikrokontrolera 8051. Mimo, że jest to układ dedykowany, lecz nic nie stoi na przeszkodzie, aby znalazł zastosowanie także w innych urządzeniach....
LJMPSTART ORG100H START: LCALLLCD_CLR MOVDPTR,#KEY_CODE ;adres tablicy kodów LOOP_NO: MOVR0,#CSKB0;adres klawiszy 0..7 MOVXA,(at)R0 ;odczyt stanu klawiszy CPLA JNZKEY_YES ;czy klawisz naciśnięty INCR0 ;adres klawiszy 8.. MOVXA,(at)R0 CPLA JZLOOP_NO ;czy klawisz naciśnięty KEY_YES: ;eliminacja drgań styków MOVR2,A ;zapamiętaj stan klawiszy...
Sprawdzenie czy klawisz wciśnięty jest długo czy krótko jest bardzo proste do wykrycia jeśli czytasz dane z klawiatury używając przerwań. Zawsze po wciśnięciu klawisza zapisujesz sobie nr ostatnio wciśniętego klawisza. Jeśli przyjdzie przerwania a żaden klawisz nie jest wciśnięty to ustawiasz tą wartość na 0. W obsłudze klawiatury sprawdzasz czy aktualnie...
Tutaj jest prościej niż w pełnej matrycy, bo fizycznie niemożliwe jest zwarcie więcej niż jednego styku przez rolkę. Trzeba tylko zagwarantować na tyle dużą częstotliwość odczytu, by nie pominąć żadnej zmiany stanu rolki. Jednak, ponieważ nie ma diod przy przyciskach, w sytuacji gdy naciśnięte są równocześnie np. 3 pierwsze przyciski (MUTE, VOL- i VOL+),...
Szkoda książki, bo wszystkie przykłady w niej zawarte są przedstawiane właśnie na DSM-51. Ta książka pozwoliła mi poznać i zrozumieć asembler na 8051. Na szczęście jest jeszcze dostępna w handlu (teraz już chyba 4 wydanie). Trzeci wynik z googli: http://www.sklep.gildia.pl/literatura/46...
Witam Nie znam schematu dlatego trudno mi jest powiedzieć czy program jest napisany dobrze. Być może jest tam klawiatura matrycowa i obsługuje się ja nieco inaczej niż klawisz podpięty pod port. Druga sprawa to deklaracja portu na początku programu. Najpierw deklarujesz cały port jako wejście a następnie deklarujesz każdy pin z portu C osobno. Tak być...
Nie bardzo mi się chciało wycinać nieznaczące części programu, dlatego umieszczam go w całości. Jest to program termostatu do pieca, w którym elementami grzejnymi są pomienniki podczerwieni. Program zawiera: - obsługę klawiatury 4x4 - obsługę wyświetlania LCD - odczyt temperatury z DS'a - regulację/stabilizację temperatury i wysyłanie po RS'ie stosownego...
Sam sobie odpowiedziałeś - nie jest to możliwe. Popularne klawiatury matrycowe nie są przystosowane do wykrywania naciśnięcia kilku przycisków na raz, bo rzadko jest takie wymaganie. Powiedziałbym, że jest to ergonomicznie dosyć karkołomne. Zgadzam się z tym, że w 95% przypadków nie jest potrzebny odczyt 3 przycisków naciśniętych jednocześnie, teraz...
Bez problemu mozna zrobic obsluge klawiatury matrycowej, LCD, RS, ADC na jednym timerze + petla glowna a efekt sekwencyjnego wywolywania kodu jest i tak niewidoczny dla uzytkownika. Jak chcesz migac 3 diodami, np. 1 co sekunde, 2 co dwie sekundy, 3 co trzy sekundy to bez problemu zrobisz to na timerze wywolywanym co sekunde. A i tak jest to przerost...
Co ile masz przerwanie od timera bo jak się domyślam stan klawiatury odczytujesz kilkadziesiąt razy na sekundę?? Napisze to po raz kolejny: Wywal odczyt po IIC klawiatury z obsługi przerwania!!! I rób to tak samo jak odczyt czasu w programie głównym na podstawie flagi. Po drugie po co odczytujesz za każdym razem czas z PCF'a??? Skoro masz przerwanie...
Zasadniczo jest to dowolne, czy wysterowujesz rzędy i odczytujesz stan kolumn, czy zrobisz odwrotnie. Zgadzam się z tym w 100% ale chyba nie zrozumiałeś mojego pytania nie chodzi mi o to czy wejścia i/lub wyjścia ustawiam na rzędy czy kolumny bo tak jak piszesz nie ma to znaczenia. Chciał bym wiedzieć do których linii portuB podłączam: rząd0, rząd1,...
to ma działać z Rpi czy bez? najprościej dla takiej liczby IO w jednej rozdzielni zrobić moduły przekaźnikowe na rs485. Rok temu wykonałem taka płytkę która z jednej strony pasuje do popularnej obudowy na szynę DIN a z drugiej posiada 12 przekaźników i złącze pod arduino nano + rs485. Takie płytki można zestawiać i w zasadzie otrzymać dowolną liczbę...
Rzeczywiście, Atmega32 nie ma PCINT. Niemniej jak wspomniałem takie skanowanie lepiej jest zrealizować w oparciu o cykliczny odczyt. Wyklikałem poniższy kod ale nie gwarantuję, że jest on na 100% poprawny bo: - dawno nie pisałem w asemblerze - nie mam jak sprawdzić jego poprawności Idea jest taka, że w przerwaniu od przepełnienia T0 sprawdzamy klawiaturę...
//CIACH Widze danielbela że wykorzystujesz atmege 16 więc można tam wykorzystać przerwania PCINT (wywoływane zmianą stanu) więc można wsio robić w przerwaniu i bez diodek (jeśli nie chcemy skanować jej ciągle). //CIACH Niestety nie da się wszystkiego zrobić na przerwaniu. Tj. można zrobić odczyt samego naciśnięcia klawisza. Jednak jak będziemy chcieli...
Witam. Zacznę od konfiguracji.Do portu A atmegi32 mam podłączone wyświetlacz LCD 4x16 w trybie 4 bitowym bez odczytu flagi co powoduje że zarządzam także sygnałami E i RS(r/w do masy).Oczywiście piny danych wyświetlacza są podłączone do bitów najstarszych uC. Do tych samych pinów (PA7, PA6,PA5,PA4) mam podłączone 4 linie od klawiatury matrycowej które...
jest skręcone Zdjęcia pokazują urządzenie rozkręcone - uruchamianie takiego jest niebezpieczne więc zakładam, że można je poskręcać, dla bezpiecznych prób, zostawiając na wierzch tylko panel sterowania (ma dość długi przewód). Jak chcesz zdalnie naciskać przyciski to może podłącz 4 przekaźniki stykami równolegle z przyciskami i sterując cewkami przekaźników...
Troszkę już się programowało ale zazwyczaj zwykłe aplikacje a teraz doszedł jeszcze sprzęt , trzeba w oku mieć jakby oscyloskop, hehh . , Ps. Sprawdziłem opcję z moją poprawką hula i buczy ... zamiast 7 wpisujemy "F" no i oczywiście ze zmianą dla kolumn jak w poprzednim poście. Pozdrawiam Dodano po 14 Poniżej poprawiony kod przykładu dla klawiatury...
Temat może nie jest skomplikowany co trudny do realizacji. Zacznijmy od tego jak działa taka klawiatura instrumentu. Jest to typowa klawiatura matrycowa https://starter-kit.nettigo.pl/2017/03/o... Procesor instrumentu muzycznego przemiata określonym stanem logicznym kolejne kolumny i odczytuje jaki jest stan logiczny...
Podłączyłem klawiaturkę matrycową do AT89C4051 w sposób pokazany na rysunku. Diody służą jako zabezpieczenie, aby nie spalić portu w przypadku naciśnięcia kilku klawiszy jednocześnie. Niestety, P1.0 i P1.1 są także wejściami komparatora i działają jakoś inaczej niż pozostałe piny portu P1. Postanowiłem podciągnąć je do Vcc przez rezystory 10k. Niestety...
http://obrazki.elektroda.pl/6130528400_1... http://obrazki.elektroda.pl/2906458300_1... Witam wszystkich. Chciałbym przedstawić na łamach forum mój projekt, który powstaje już od około pół roku. Tematem projektu jest komputer 8-bitowy oparty o procesor Z80. Założeniem jest, aby zbudować funkcjonalny komputer 8-bitowy...
Witam. Próbuje uruchomić klawiaturę matrycową 3x3, Znalazłem obsługę takiej klawiatury tutaj : http://hobby.abxyz.bplaced.net/index.php... No usunąłem zbędny kod do obsługi innych rzeczy, została tylko klawiatura. Chcę uzyskać efekt, że po naciśnięciu przycisku zmienia mi się wartość na wyświetlaczu. Na tej podstawie już będę mógł później...
Witam. Kolega djFoBoS nieźle objaśnił. Ciekawe czy ktoś początkujący zakuma cos z tego. Sprawa przedstawia się nastepująco mając matrycę 4x4. Rezystorów podciągajacych nie potrzeba jeśli robi bezpośrednio na porcie gdyż kontroler ma już rezystory podciągające - to nie to co AVR że można je odłączyć. Więc na kolumny wpisujesz np. jedno "0" a na resztę...
Jestem początkujący jeśli chodzi o asemblera i mikrokontrolery i próbuję napisać sobie program do wykrycia który klawisz klawiatury został naciśnięty. Czy ten program poniżej by działał? Założenia: klawiatura matrycowa 4x4 jest podpięta do portu P1 mikrokontrolera w ten sposób, że wiersze (S0-S3,S4-S7,S8-S11,S12-S15) są podpięte pod piny P1.0-P1.3 a...
http://obrazki.elektroda.pl/1998348900_1... Witam, chciałbym wszystkim przedstawić projekt sterownika matrycowego wyświetlacza LED. Na początek proszę tylko o nie ocenianie wykonania płytki (na płytce uniwersalnej/pająk) bo jestem świadomy jak ona wygląda i jak ją wykonałem. Historia Pomysł projektu narodził się, gdy jakieś pół roku...
Troszkę masz to rozbudowane. Ja posiadam identyczną klawiaturę do twojej. Ja nie sprawdzam naciśnięcia klawisza na przerwaniach tylko w pętli. Ja rozwiązałem to tak. Przy takim rozwiązaniu nie ma powtarzania klawisza przy ciągłym wciśnięciu ale można to skonfigurować przez polecenie Debounce Doda że ten kod działa w moim sterowniku i nie miałem z nim...
Witam, od jakiegoś czasu tworzę pewien projekt, który obecnie wykorzystuje klawiaturę z drabinki rezystorowej ([url=http://majsterkowo.pl/drabinka-rez... oraz LCD zgodny z HD44780. Projekt obecnie jest na płytce stykowej, zasilany jest stabilnym napięciem +5V z USB. Sprawa zaczyna wyglądać...
Oczywiście że mogę w SDCC to będzie jakoś tak ;) char znak; While (i=1) do { znak = getkey(); printf ("To jest znak ", %c, znak); }; W Pas5x proponuję Var i: Boolean; znak: char; i:=true; ... while (i = true) begin znak := Readkey; Write ("To jest odczytany znak", znak); end; ... I powinno super działać :)
Witam! Mam problem z zamkiem szyfrowym. Mam taki kod: [syntax=cpp]/* KURS AVR-GCC cz.4 Zamek na szyfr (schemat i opis działania w artykule) układ atmega16 (1MHz) */ /**** PLIKI NAGŁÓWKOWE ****/ #define F_CPU 1000000L #include <avr/io.h> #include <util/delay.h> /**** DEFINICJE FUNKCJI ****/ /* Inicjalizacja i konfiguracja sprzętu */ void...
To jest moja opinia i nie musi być absolutnie prawidłowa dla każdego przypadku. Jak najefektywniej obsługiwać klawiaturę matrycową w C (cyfry + kilka klawiszy odpalających funkcje specjalne) ? Wydaje mi się że w obsłudze timera zrobić przemiatanie wierszy/kolumn (kwestia nomenklatury) i jednocześnie rozróżnianie klawiszy (kod klawisza dekodować na podstawie...
Może zrób tak ale ja bascoma nie polecam to straszne g*** if pinx.y and pinz.w =1 then LCD"text" end if Czy jakoś tak. Inna opcja to wiadomo jakie stany są w klawiaturze matrycowej można zrobić tak na jednym m porcie najlepiej: If pinx=0b00100100 then LCD"text" Jeśli procek ma robić za sterownik takiej klawiatury to tak łatwo się nie da ale wszystko...
Stany pinów nie mają prawa się zmienić. Klawiatura matrycowa ogólnie rzecz biorąc działa tak że trzeba na nią podawać odpowiednie sygnały żeby odczytać jaki przycisk jest wciśnięty. Poczytaj o klawiaturach matrycowych.
Dim V As Eram Byte 'zmienna V będzie umieszczona w EEPROM Dim B As Byte 'zmienna będzie w pamięci SRAM B = 10 V = B 'można normalnie korzystać z takich zmiennych B = V 'na przykład odczytać zapisana wcześniej daną albo tak Dim B As Byte WriteEeprom B , 0 'zapis do pamięci EEPROM to ci wrzucilem z helpa... powiedz czy czy ci sie przydalo albo jak to...
Coraz więcej elektroników sięga po mikrokontrolery. Na swoje potrzeby tworzą mniej lub bardziej rozbudowane systemy. W każdym z tych projektów można wyróżnić kilka podstawowych bloków. Ich realizacja sprzętowa w wielu przypadkach jest taka sama. Wniosek nasuwa się sam - systemy takie mogą być składane z modułów. Pozwolę sobie zainicjować dyskusję nad...
W c ten program gdzies w internecie widziałem.. Bedzie wymagał być moze małego dostosowania. Mam go ale niestety w asm pod atmege 16. ; Programowalny pilot RC5, obsługa interfejsów optycznych i pamięci EEPROM ; Rafał Baranowski (C) 2004 .INCLUDE "m16def.inc" ; SEGMENT DEKLARACJI .EQU OSC_FREQ= 1000000; częstotliwość pracy w Hz .EQU...
Witam. Od jakiegos czasu programujemy w assemblerze , ale dostałem na zaliczenie program ktorego za zadne skarby nie moge wymodzić ... ogólnie chodzi o szczegóły . Dostałem taki temat projektu programu na dsm51 : Na wyświetlaczu LCD wyświetla się napis "Ula" , po naciśnięciu Enter klawiatury matrycowej wyjeżdza z wyświetlacza LCD na wyświetlacz 7 segmentowy...
Witam Mam taki problem: Potrzebuje za pomoca mikrokontrolera symulować klawiature matrycowa, układ zewnętrzny który ma odczytywać jaki klawisz został wybrany przez mikroprocesor przemiata stan niski co 20ms. Czy można to zrobić tylko za pomoca software 9jeśli tak to jak??), czy trzeba dodawac dodatkowe układy np bramki transmisyjne> Z góry dziekuj za...
Witam Kolegów, Dotychczas, korzystając z timerów programowych, z powodzeniem korzystałem z prostej funkcji obsługi przycisków, która zwraca informację o krótkim/długim naciśnięciu wybranego przycisku. Ostatnio, funkcję tą zmodyfikowałem do obsługi typowej klawiatury matrycowej...jednak nie funkcjonuje tak, jak potrzeba a problem jest, jak myślę, prosty....
Mam problem, który komplikuje projekt. W projekcie używam klawiatury matrycowej puszczonej po pcf8574. Mam tam funkcję która odczytuje długie przyciśnięcie przycisku na klawiaturze: [syntax=c]void setup() { keypad.begin(); keypad.setHoldTime(1300); // ustawienie czasu po jakim przycisniety przycisk jest uwazany za przytrzymany keypad.addEventListener(sprzawdzanieDlug...
Witam, mam taki problem... ostatnio zacząłem uczyć się bascoma i teraz probuje go zmusic do tego, by z cyfr odczytanych z klawiatury matrycowej (zalozmy, ze przechowuje je np zmienna Cyfra typu Byte) stworzyc liczbe (np. Liczba typu Integer)... W C bym ja zapisal do tablicy i w odwrotnej kolejnosci pomnozyl przez kolejne potegi 10-ki a potem dodal......
Robię urządzenie , które ma być pewnego rodzaju nagrywarką sygnału DMX. Sygnał DMX to specyficzna wersja transmisji szeregowej . Muszę odczytać 128 słów 8 bitowych i zapisać je w pamięci zewnętrznej. Na każdą sekwencję zakładam 8 kroków. Te słowa są wysyłane cały czas. Jeden taki ciąg znaków określa konkretną scenę. Chcę zapisywać po kolei takie sceny...
(at)dejmos Opisałeś zasadę skanowania klawiatury matrycowej i ci wyszło, że jest ok, bo wybrałeś specyficzne kombinacje klawiszy. Teraz wyobraź sobie, że podajesz 1 na PD0 (w praktyce podaje się stan niski, ze względu na pull upy dostępne w procesorze). Użytkownik nacisnął klawisz 4, 5 i 9. Niestety twoja jedynka przeszła przez klawisz 4 na linię PD5...
Aktualnie jestem w pracy więc nie mam takiej możliwości chyba że napiszę go tu razem z wami. Po za tym nurtuje mnie jeszcze kilka pytań: 1. Co z rezystorami dla linii sda i scl czy są wymagane? W żadnym poradniku nic o nich nie piszą albo przynajmniej ja nie zauważyłem takowego który zawierał by na ich temat informacje ale na forum się o nich czyta...
Witam. Zbudowałem sobie klawiaturę matrycową 4x4 do mikrokontrolera Atmega 128. Klawiatura jest podłączona do 8 wyjść portu D. Obsługę klawiatury chce realizować poprzez przerwania wykorzystując przerwania zewnętrzne INT0...INT3 Poniżej przedstawiam kody: DEFINICJE: #define KLAD DDRD // PORT LINII STERUJACYCH #define KLAP PORTD //#define WE1 0 // LINIA...
w assemblerze i robię to w "niezawodnej" jagodzie ;p po prostu chodzi o to jak wartość odczytaną za pomocą klawiatury matrycowej (zakres liczb od 0 do 255) wyświetlić na wyświetlaczu 7 - segmentowym
jak już chesz koniecznie marnować wolne piny (bo może masz ich zbyt wiele) to lepiej podłącz sobie te przyciski przez 74HC30 i będziesz miał jeden wspólny sygnał dla przerwania INT jednocześnie wejścia 7430 podłącz pod jakiś port i w przerwaniu odczytasz sobie ich stan. Nie jest to najlepszy sposób bo to samo można zrobić w przerwaniach i uzyć klawiatury...
Witam wszystkich. Chciałbym sie dowiedzieć czy są potrzebne elementy przy wykonaniu klawiatury matrycowej 8x8: 1) czy jest konieczne stosowanie kondensatorów. Jeśli są potrzebne to jak podłączyć kondensatory, czy równolegle do każdego z przycisków (czyli 64 kondensatorów) czy może jest jakiś inny sposób na to. 2) czy jest konieczne stosowanie rezystorów...
klawiatury matrycowej kontroler klawiatury matrycowej obsługa klawiatury matrycowej
konicaminolta skanowanie iskrownik ustawić regulacja silniczków
silnik siłownika zaworu instrukcja obsługi renault scenic
Co to są decybele w elektronice? Wyjaśnienie i zastosowanie Montaż gramofonu w radiu lampowym Menuet UKF