Mikrokontrolery - Jak zacząć?

... czyli zbiór praktycznej wiedzy dot. mikrokontrolerów.

sobota, 22 stycznia 2011

Drgania styków: Przykłady eliminacji - Konkurs bezterminowy


Autor: Dondu


22 stycznia 2014r.

Problem drgania styków przycisków, przełączników, przekaźników, kontaktronów, enkoderów,  itp. można rozwiązać na tysiące sposobów.

Można to zrobić sprzętowo lub za pomocą programu bez lub z wykorzystaniem timerów itp.


W związku z tym, ogłaszamy:

Niekończący się konkurs na
własne autorskie rozwiązania eliminacji drgań styków
za pomocą programu i/lub dowolnych wewnętrznych
"bebechów" dowolnego mikrokontrolera.

... czyli jak rozprawiacie się z problemem:





Nagrody

Każde przedstawione rozwiązanie będzie nagrodzone kodem rabatowym -50% na zakup książek wydawnictwa Helion z dziedziny elektroniki lub informatyki w wersji eBook (ich zalety w stosunku do książek papierowych opisałem tutaj).

Jeżeli artykuł będzie napisany super fajnie i pokazywał także dodatkowe funkcje, jak np. reakcja na zwarcie lub rozwarcie styków przez określony czas, autopowtarzanie po określonym czasie zwarcia styków, itp. będziemy nagradzać dodatkowym kodem rabatowym -50%.

Kody rabatowe mają co najmniej kilkumiesięczne terminy ważności, możesz je więc spokojnie przetrzymać w szufladzie.

Sponsor nagród




Zasady konkursu

W skrócie ogólne zasady:
  1. piszesz artykuł wg poniższych wymagań,
  2. sprawdzamy artykuł w miarę możliwości bez zbędnej zwłoki,
  3. publikujemy.
  4. otrzymujesz nagrodę.
Innymi słowy, nie ma rywalizacji - każdy nagrodę otrzyma :-)



Można się wzorować

Jeżeli nie masz własnych rozwiązań, możesz wzorować się na tych zamieszczonych na niniejszej stronie, a w szczególności na:
W przypadku MegaSuperDebounce możesz wręcz pokazać jak wykorzystałeś tę bibliotekę w swoim programie.



Wymagania

Spełnić należy następujące wymagania dot. artykułu i programu:
  1. program ma być autorski, czyli utworzony przez uczestnika konkursu, który ma do niego pełne prawa autorskie lub wzorował się na rozwiązaniach wymienionych powyżej,
  2. napisany w języku C lub C++ lub wersji na Arduino,
  3. nie używanie opóźnień programowych opisanych na czerwono w ramce poniżej,
  4. napisany za pomocą systemu pisania artykułów dostępny w menu Moje konto,
  5. dokładnie tłumaczący zasadę działania programu w szczególności w części dot. eliminacji drgań styków (w taki sposób, by każdy początkujący mógł dokładnie zrozumieć, jak eliminacja drgań jest realizowana),
  6. szczegółowo komentowany kod źródłowy,
  7. opisać w osobnych punktach zaletywady danego rozwiązania,
  8. schematy nieobowiązkowe lecz mile widziane (mogą być uproszczone tylko do sposobu podłączenia styków).

Brak opóźnień w postaci pętli, czy dedykowanych funkcji zawierających pętle jakimi są np. _delay_ms(), itp.

Innymi słowy algorytm nie może wstrzymywać mikrokontrolera (metoda nieblokująca) w wykonywaniu innych jego zadań w czasie, gdy oczekiwanie na zakończenie drgań jest realizowane.


Informacje dodatkowe
  1. Artykuł nie ma przedstawiać problemu drgań styków - zakładamy, że wszyscy wiedzą na czym on polega.
  2. Jeżeli masz możliwość, to zastosuj ATmega8. Jeśli nie, to dowolny inny mikrokontroler.



Instrukcja edycji artykułów

Instrukcję jak używać edytora artykułów znajdziesz tutaj: Instrukcja edycji artykułów



Regulamin

1. Organizatorem konkursu jest blog Mikrokontrolery - Jak zacząć?

2. Uczestnik - osoba, która spełni wymagania określone niniejszym regulaminem.

3. Uczestnik może zgłosić więcej niż jeden artykuł do niniejszego konkursu, ale muszą to być znacząco różne wersje eliminacji drgań styków.

4. Konkurs nie zawiera elementów rywalizacji.

5. Zgłoszenia konkursowe są przyjmowane wyłącznie w postaci artykułu napisanego z wykorzystaniem systemu pisania artykułów, dostępnego dla zarejestrowanych na niniejszej stronie użytkowników (menu: Moje konto). W tym celu należy dokonać darmowej rejestracji oraz zapoznać się z Instrukcją edycji artykułów.

6. Artykuł musi być zgodny z wymaganiami opisanymi w punkcie Wymagania w niniejszym zawiadomieniu konkursowym.

7. Termin zgłaszania artykułów: Bezterminowo

8 Zgłaszając swój artykuł do niniejszego konkursu, uczestnik wyraża nieodwołalną zgodę na:
8.1 publikację na stronie organizatora opracowanych przez siebie i załączonych do artykułu wszelkich materiałów pod swoim pseudonimem lub imieniem i nazwiskiem (decyduje uczestnik),
8.2 wykorzystanie  do celów niekomercyjnych przez czytelników strony organizatora wszelkich materiałów przedstawionych przez autora w jego artykule.

9. Uczestnik do wykonania swojego artykułu może również wykorzystać wszelkie materiały znajdujące się na stronie organizatora, ale powinien jednoznacznie wskazać materiały wykorzystane.

10. Artykuły nie mogą być reklamami komercyjnych produktów, programów (w tym bibliotek), usług, czy innych towarów.

11. Organizator zastrzega sobie prawo do żądania od uczestnika dokonania zmian w artykule lub w przypadku odmowy dokonania zmian nie przyjęcia artykułu, w którym uczestnik wykorzystuje materiały objęte prawami autorskimi osób, które w przeszłości i/lub aktualnie bezprawnie i/lub bez naszej zgody wykorzystują zawartość strony organizatora lub publikują w internecie bardzo nieprzychylne lub nieprawdziwe informacje. Punkt ten ma na celu jedynie ochronę strony organizatora przed sytuacją, w której promowane byłyby na niej treści w/w osób, nawet w przypadku posiadania przez uczestnika ich zgody. Punkt ten dotyczy wszelkich materiałów, a w szczególności bibliotek, schematów, programów (bądź ich fragmentów), zdjęć, grafik, adresów, imion i/lub nazwisk, pseudonimów oraz linków. W przypadku wątpliwości uczestnika co do wykorzystania jakichś materiałów, uczestnik powinien zapytać indywidualnie organizatora za pomocą formularza kontaktu.

12. Organizator zastrzega sobie prawo dokonywania zmian w warunkach konkursu i/lub regulaminie wraz z odpowiedziami na pytania czytelników, co ma na celu jego jednoznaczne rozumienie.

13. Organizator zastrzega sobie prawo zakończenia konkursu w dowolnym momencie.

14. W sprawach spornych oraz dot. regulaminu wiążące decyzje podejmuje organizator, a uczestnicy są zobowiązani je respektować.


Pytania?

Pytania nie związane z pkt 11. regulaminu prosimy zadawać w komentarzach do niniejszego zawiadomienia konkursowego.


Oceń artykuł.
Wasze opinie są dla nas ważne, gdyż pozwalają dopracować poszczególne artykuły.
Pozdrawiamy, Autorzy
Ten artykuł oceniam na:

7 komentarzy:

  1. Czyli wystarczy zaprezentować swoje rozwiązanie tego problemu w taki sposób, by początkujący dokładnie zrozumiał i kod rabatowy otrzymam?

    OdpowiedzUsuń
  2. Sprawa jest prosta, najpierw waitms 25 następnie program czeka na zwolnienie przycisku i ->Akcja :)
    Tak się robi żeby nie świrowało :)

    Pozdrawiam

    OdpowiedzUsuń
    Odpowiedzi
    1. ... i marnujesz zasoby wstrzymując główny potok mikrokontrolera na 25 milisekund ... to cała wieczność :-)

      Usuń
  3. Koledzy, czy macie jakąś dobry i sprawdzony sposób na obsługę impulsatora obrotowego? Please, szukam i szukam czegoś na prawdę dobrego

    OdpowiedzUsuń
    Odpowiedzi
    1. Impulsatorem się jeszcze nie bawiłem, ale ja bym jego wyjścia podłączył kolejno do jakiegoś portu i sprawdzał jego wartość przy użyciu maskowania. O maskowaniu Pan Mirekk36 zrobił fajny poradnik na swoim blogu.
      W PICach18 aby ciągle nie sprawdzać odpowiednich pinów, to 4 starsze bity PORTuB mogą generować przerwanie po zmianie stanu któregokolwiek z nich. Możliwe, że ATMegi też mają coś takiego. A jak nie no to Timer co 1ms. i sprawdzasz co się dzieje na impulsatorze porównujesz z tym co było wcześniej. Jak coś się zmieniło to po przebiegu z dokumentacji sprawdzasz kierunek obrotu i robisz odpowiednią akcję.

      Przynajmniej tak mi się wydaje.:)

      Usuń
    2. Dobry i sprawdzony kod obsługi impulsatora masz w przykładach do mojej książki "Język C dla mikrokontrolerów AVR. Od podstaw do zaawansowanych aplikacji". Ściągnij przykłądy ze strony Helionu i masz gotowca.

      Usuń

Działy
Działy dodatkowe
Inne
O blogu




Dzisiaj
--> za darmo!!! <--
1. USBasp
2. microBOARD M8


Napisz artykuł
--> i wygraj nagrodę. <--


Co nowego na blogu?
Śledź naszego Facebook-a



Co nowego na blogu?
Śledź nas na Google+

/* 20140911 Wyłączona prawa kolumna */
  • 00

    dni

  • 00

    godzin

  • :
  • 00

    minut

  • :
  • 00

    sekund

Nie czekaj do ostatniego dnia!
Jakość opisu projektu także jest istotna (pkt 9.2 regulaminu).

Sponsorzy:

Zapamiętaj ten artykuł w moim prywatnym spisie treści.