[bascom] program do ramienia robota

Jeśli jesteś modelarzem lub interesujesz się robotami i chcesz się podzielić swoim doświadczeniem to weź udział w dyskusjach na tym forum.
Awatar użytkownika
c4v2
Użytkownik
Posty: 426
Rejestracja: 22 lis 2005, 15:14
Lokalizacja: z przed monitora

Post autor: c4v2 » 22 sty 2011, 17:19

Diody są potrzebne aby można było naciskać wszystkie przyciski na klawiaturze jednocześnie.
Proszę zauważyć co stanie i jakie stany wierszy będzie "widział" mikroprocesor dla klawiatury bez diod (multipleksowane kolumny) gdy naciśnięte zostaną wszystkie przyciski w tym samym wierszu, A co stanie się gdy razem z już naciśniętymi naciśnięty zostanie przycisk z sąsiedniego wiersza w dowolnej kolumnie?

[ Dodano: 2011-01-22, 18:21 ]
Dla "wystawionej" masy na multipleksowanej kolumnie PORTB.0 jednoczesna naciśnięcie przycisków S1, S2, S3 w wierszu PORTC.2 i przycisku S5 w wierszu PORTC.3 będzie prawidłowo "widziane" przez mikrokontroler na liniach wierszy (oba wiersze "ściągnięte" do masy, S1, S5 naciśnięte). Natomiast dla "wystawionej" masy na multipleksowanej kolumnie PORTC.1 mikroprocesor będzie "widział" przekłamaną informację że naciśnięto przyciski S2 i S6. Przycisku S6 przecież nie naciśnięto. Analogiczna sytuacja będzie dla kolumny PORTC.0. Dlaczego tak się dzieje ilustruje załączony rysunek. Czerwone strzałki obrazują rozpływ prądów dla dla "wystawionej" masy na multipleksowanej kolumnie PORTC.1. Problem przestanie istnieć gdy zostanie wstawiona dioda w miejscu niebieskiego okręgu (w praktyce tak dioda musi występować przy każdym przycisku). Zastosowanie diod jest więc konieczne.
Załączniki
kbd_no_diode.png

ODPOWIEDZ