Mikrokontrolery

W większości urządzeń wyświetlacz jest niezbędnym elementem interfejsu użytkownika. Współcześnie większość urządzeń jest wyposażanych w wyświetlacze LCD, jednak w pewnych aplikacjach nadal świetnie sprawdzają się wyświetlacze LED, które są niedrogie, łatwe do sterowania, działają prawidłowo w niskiej temperaturze i są czytelne również w kiepskich warunkach oświetlenia. czytaj więcej
Arduino jest nie tylko świetną platformą prototypową. Ogromy wybór modułów dodatkowych umożliwia budowanie funkcjonalnych urządzeń. Unika się przy tym konieczności zaprojektowania płytki drukowanej i jej montażu. W artykule prezentujemy kilka „klocków”, z których można poskładać funkcjonalne urządzenia oraz metody ich obsługi programowej. Tu zastosowano je do budowy funkcjonalnego zegara. czytaj więcej
Arduino jest nie tylko świetną platformą prototypową. Ogromy wybór modułów dodatkowych umożliwia budowanie funkcjonalnych urządzeń. Unika się przy tym konieczności zaprojektowania płytki drukowanej i jej montażu. W artykule prezentujemy kilka „klocków”, z których można poskładać funkcjonalne urządzenia oraz metody ich obsługi programowej. czytaj więcej
Poprzednio opisałem podstawy multipleksowania wyświetlaczy LED. Teraz nauczymy się, jak wykorzystać tę umiejętność w praktyce do wyświetlania wartości liczby. Posłużymy się przykładem nieskomplikowanego programu zegara czasu rzeczywistego, odmierzającego czas z użyciem systemu przerwań mikrokontrolera. Wspomniane przerwanie będzie współistniało z użytym wcześniej przerwaniem obsługi wyświetlacza. czytaj więcej
Flow Code ma specjalne makra przeznaczone do obsługi wyświetlaczy LED. Co ważne, dzięki parametryzacji są one przygotowane do obsługi wyświetlaczy multipleksowanych. Można to robić na dwa sposoby – albo układając pojedyncze wyświetlacze 7-segmentowe, albo posługując się komponentem o nazwie „led7seg4”. Jest to makro przeznaczone do obsługi wyświetlacza 4-cyfrowego, np. modułu E-blocks o symbolu EB008-00-1. W którymś z kolejnych artykułów pokażemy, jak zastosować taki wyświetlacz do zbudowania zegara, jednak teraz nauczymy się elementarza, to jest jak dołączyć taki wyświetlacz oraz jak obsłużyć go korzystając z przerwań. czytaj więcej
Jaka jest różnica pomiędzy tzw. lock bit (bit zamykający, blokujący dostęp) a fuse (bezpiecznikiem)? Jakie są konsekwencje ustawiania, czy też kasowania wyżej wymienionych? Czym różnią się między sobą i czy ich ustawienia są odwracalne? W tym artykule postaram się odpowiedzieć na tak zadane pytania. Myślę, że ta wiedza bardzo przyda się zwłaszcza stawiającym pierwsze kroki w dziedzinie mikrokontrolerów i posłuży lepszemu zrozumieniu podstawowych zasad programowania. czytaj więcej
Wiele z mikrokontrolerów ST7 ma wbudowany w strukturę przetwornik analogowo – cyfrowy. Celem niniejszego artykułu jest pokazanie (abstrahując od strony realizacji interfejsu sprzętowego) w jaki sposób zaprząc przetwornik do pracy i zmierzyć napięcie doprowadzone do jednego z wejść analogowych oraz przedstawić wynik jego pomiaru w [V]. W przykładzie posłużono się mikrokontrolerem ST7FLITE19. Program napisany jest w języku asembler ST7. czytaj więcej
Ten artykuł jest związany z poprzednio prezentowanym (>>>TUTAJ<<<), jednak zaproponowano rozwiązanie umozliwiające zaoszczędzenie wyprowadzeń mikrokontrolera. Pole odczytowe wyświetlacza ma 6 cyfr LED, po 7 segmentów każda. Doliczając kropkę dziesiętną można powiedzieć, że wyświetlacz wymaga do sterowania 8 bitów, więc same sterowanie segmentami zajmie jeden pełny port. Jeśli użyjemy metody podobnej do tej z poprzedniego przykładu, to dodatkowo sterowanie tranzystorami kluczami załączającymi napięcie na anody cyfr, będzie wymagać następnych sześciu bitów portu. To już razem 14 linii! A jeśli jeszcze konieczne stanie się jakiś układów zewnętrznych takich, jak na przykład klawiatura? Może braknąć wyprowadzeń mikrokontrolera... Prezentowane rozwiązanie to wynik napotkania przeze mnie w przeszłości podobnego dylematu. Chcę pokazać na praktycznym przykładzie jak można zmierzyć się z tak przedstawionym problemem. Pokażę również jak wykorzystać to rozwiązanie do budowy układu prostego licznika impulsów. Użyję w nim przerwania generowanego przez Timer 1 do obsługi wyświetlacza LED oraz przez opadające zbocze sygnału na wejściu INT0 do zliczania impulsów prostokątnych. Użyję również wskaźników i ich arytmetyki – będzie okazja, co nieco się nauczyć. czytaj więcej
Sterowanie pojedynczą cyfrą LED wymaga dołączenia co najmniej dziewięciu wyprowadzeń. Należy bowiem dołączyć 7 segmentów cyfr, kropkę dziesiętną i wspólną anodę czy katodę wyświetlacza. Z tego osiem wyprowadzeń (segmenty i kropka dziesiętna) musi być połączone z mikrokontrolerem lub innym układem sterującym. Co zrobić, gdy jest niezbędne wyświetlenie liczby na przykład na 6 pozycjach? To aż 48 wyprowadzeń! Mało który mikrokontroler ma ich aż tyle. W takiej sytuacji jedynym ratunkiem jest multipleksowanie cyfr, czyli przełączanie ich w czasie wyświetlania tak, że w danym momencie świeci tylko jedna z nich. Multipleksowanie powinno być robione na  tyle szybko, aby oko ludzkie nie dostrzegało zmian cyfr. Ma się wówczas wrażenie, iż wszystkie cyfry świecą światłem ciągłym. To cała tajemnica. czytaj więcej
Projektując system kontroli dostępu mający pracować w pomieszczeniach o dużym zapyleniu postanowiłem do identyfikacji osób wchodzących zastosować karty zbliżeniowe o wymiarach standartowej karty plastikowej ISO. Problemem był zakup odpowiedniego czytnika, gdyż dostępne w handlu były zbyt drogie. Ze względu na bardzo ograniczony budżet projektu postanowiłem wykonać własne czytniki. W zbudowanym systemie znajduje się kilka czytników kart, które są sterowane przez centralkę. To ona podejmuje decyzję o dostępie lub odmowie. Sam czytnik w zaprezentowanej wersji oprogramowania nie zawiera żadnych mechanizmów decyzyjnych – jego zadania sprowadzają się do odczytania kodu zawartego na karcie, przekazania go na żądanie centralki oraz sterowania zamkiem elektromagnetycznym, również zgodnie z poleceniami centralki. czytaj więcej