A ile czasu może trwać obsługa którego przerwania? Jeśli czas obsługi przerwania do synchronizacji fazy może być porównywalny z okresem timera, to może ono powodować gubienie przerwań timera. A może da się użyć jakiegoś timera 16-bitowego do wykrywania gubienia przerwań timera? Poza tym, mam nadzieję, że timer działa samodzielnie jakimś w trybie cyklicznym,...
Kolega el2010tmp ma rację - możesz zrealizować tego typu wielozadaniowość przy pomocy przerwań czasowych. 1. Przy pomocy biblioteki Timer1 definiujesz funkcję, która wykonuje się np. co 5 ms. 2. W tejże funkcji wywołujesz coś w stylu analogWrite(led_level++), aż led_level osiągnie żądany poziom maksymalny. 3. Komunikacja między funkcją przerwania a...
(at)cinek_14 Jak rozumiem masz gotową płytkę, więc to implikuje jakie masz możliwości rozwiązania problemu. Koledzy upierają się, aby wszystko wrzucić do przerwań, co IMHO nie tylko nie rozwiązuje problemu, ale go całość niepotrzebnie komplikuje. Skoro już masz płytkę, to zrobienie 1-wire na UART raczej nie wchodzi w grę. Zresztą nie jest to potrzebne....
Jako że się trochę nudziłem to spróbowałem coś zrobić samemu i ustawiłem sobie PIN 8 arduino jako wejście i coś tam dopisałem do kodu, ale afekt jest do kitu, więcej nic nie wymyśle jestem zbyt głupi, efekt poniżej. Tak ogólnie to kierunek myślenia w miarę pozytywny. Ale kwestia szczegółów, które trzeba uwzględnić. Główna sprawa, to jest kwestia sygnału,...
Już widzę kogoś, kto opiera pętlę główną na delay() i próbuje odczytać przyciski do 3ms ;) ( swoją drogą - po co ? ) Fotokomórka zatrzymująca prasę aby niezmiarzdżyła ręki. Reakcja po np 0,7sekundy nie wchodzi w grę. Albo obsługa enkodera Dekodowanie DCF77 Mnożyć dalej przykłady? 1- w obsłudze przerwania z expandera, odczytujesz rejestry expandera...
https://obrazki.elektroda.pl/1761046600_... Pokażę tu jak uruchomić z Arduino czterocyfrowy wyświetlacz 7-segmentowy sterowany poprzez rejestr przesuwny 74HCT164 i cztery tranzystory BC546. Płytka z wyświetlaczem znów będzie odzyskana z elektrośmieci. Będzie to już kolejny temat, w którym uruchamiam wyświetlacz, gdyż omawiałem już...
https://obrazki.elektroda.pl/3545413500_... Waveshare ESP32-S3-Touch-LCD-5 to płytka oferująca 5-calowy ekran dotykowy o rozdzielczości 800x480 (w wersji B 1024x600) sterowany przez ESP32-S3 z dodatkową pamięcią PSRAM i wygodnym złączem USB-C. Dodatkowo na pokładzie znajdują się bogate peryferia, takie jak interfejs CAN, RS485, złącze...
Jeżeli używasz klasy Serial, to tam to już jest zaimplementowane. Jeżeli nie, tu uważaj na możliwe problemy linkera (duplicate reference, symbol already defined), bo domyślna funkcja main, ta, która w pętli odwołuje się do funkcji loop, ma referencję do klasy Serial i przez to, może nie być możliwe instalowanie własnej obsługi przerwania UDRE_vect,...
https://obrazki.elektroda.pl/6710486900_... Każdy, kto zaczyna swoją przygodę z Arduino, zwykle na samym początku staje przed dylematem w jaki sposób prosto i przejrzyście zarządzać zadaniami, które uruchamiane powinny być w określonych i najczęściej różnych interwałach czasowych. Jest to problem tzw. harmonogramowania zadań. W niniejszym...
https://obrazki.elektroda.pl/4504656600_... https://obrazki.elektroda.pl/4128476100_... https://obrazki.elektroda.pl/1757195800_... https://obrazki.elektroda.pl/9734649000_... https://obrazki.elektroda.pl/4717614300_... https://obrazki.elektroda.pl/4176235900_...
Sterowanie wentylatorem pwm przez arduino mega z wyświetlaczem (at)ElektrodaBot Jak to zrobić z pomocą zasilacza z dwoma wyjśćiami mianowicie 5v i 12v marki Mean Well? AI: Jaki model wentylatora PWM chcesz sterować? Wentylator Noctua NF-A14 iPPC-3000 PWM AI: Jaki typ wyświetlacza jest podłączony do Arduino Mega? Na pewno dotykowy Bezpośrednia odpowiedź...
https://obrazki.elektroda.pl/8368409700_... Celem projektu było stworzenie amatorskiego programowalnego sterownika logicznego. Motywacją do stworzenia tego sterownika była potrzeba posiadania uniwersalnego urządzenia pozwalającego w warunkach laboratoryjnych na szybkie przetestowanie różnych algorytmów sterowania przy przebiegach szybkozmiennych....
Witam zrobiłem sobie zegar widmowy na Arduino Nano - kod z internetu i schemat połączeń również, ja do tego zrobiłem płytkę PCB oraz zasilanie za pomocą transformatora powietrznego czyli bezprzewodowe. Ogólnie działa zegarek jednak ma jeden problem, do zegara trzeba dostosować precyzyjnie prędkość silnika, zastosowałem wobec przetwornicę z ustawianym...
https://obrazki.elektroda.pl/9151185000_... Druga część artykułu o najtańszych nowych mikrokontrolerach z roku 2017. Ekosystem developerski Środowisko developerskie mikrokontrolera ma ogromny wpływ na jakość pracy z nim i w konsekwencji - na produktywność. Na to składają się różne czynniki – jakość IDE, dostępne biblioteki, płytki...
napisz program dla Duemilanove w którym mierzony będzie czas od momentu pierwszego wciśnięcia guzika do momentu jego ponownego guzika. Czas ten ma być wysyłany za pomocą modułu bluetooth HC-05 do aplikacji stworzonej w MTI App Inventor. PIny są dowolne. Wstępna ocena dostępnych informacji Analiza podanych przez użytkownika danych: - Płytka Arduino:...
na pierwszym poście re_de sterowane jest z pina ESP wiec schemat który wkleiłeś później nie ma sensu. Przy okazji sam z podobnego korzystam w swoich projektach. pytam o to bo w arduino czas potrzebny na sterowanie re_de nie jest taki prosty jak się wydaje. generalnie Serial.print jest wspomagany przez system przerwań i dla dłuższych stringów obsługa...
Panowie, na szybko zapytałme chatGPT, o kod do obslugi enkodera i zapalenie diody na 1 sekunde ale żeby nie gubic liczenia impulsow. Czy taki kod jest prawidlowy: // Deklaracje zmiennych volatile int impulsy = 0; // Licznik impulsów const int enkoderPinA = 2; // Pin A enkodera podłączony do pinu 2 na Arduino Nano const int enkoderPinB = 3; // Pin B...
Jak w czystym C (AVR GCC) wyglądała by funkcja millis() ?, a może pokaż też 2 podejście (listing), gdzie milisekundy to zmienna globalna np millis. Wykorzystaj timer do przerwać dostępny na każdym AVR. W AVR GCC, funkcja podobna do `millis()` z Arduino, która zwraca liczbę milisekund od startu programu, może być zaimplementowana z wykorzystaniem timera...
Po kilku godzinach program odpaliłem ..... podświetlanie się załącza dopiero po naciśnięciu kilka razy klawisza, monitor pokazuje start i numery naciśnietych klawiszy i to nie za każdym naciśnięciem. nie wiem jak "zatrzymać" dany ekran menu żeby zrealizować inna funkcje np; zmiana stanu wyjścia /* * sterownik który wykończy mnie i innych ..............
Ale jak ktoś mógłby wyjaśnić przerwania na innych pinach niż 2 i 3 to będę wdziezny Jeżeli masz płytkę Uno, to obsługa przerwań zewnętrznych jest standardowo dostępna tylko na pinach 2 i 3: https://www.arduino.cc/reference/en/lang... Jest jednak możliwość obsługi przerwań na innych pinach, ale jest to...
Po raz kolejny użyję zwrotu "z tego co wiem". Arduino ma hardwarowy rejestr(bufor) do którego zapisywane są dane(przy komunikacji szeregowej). Jeżeli nie użyjemy przerwania od razu gdy pojawią się tam dane ( Serial.available() == 1) nic się nie stanie. Dla przykładu, obecnie korzystam z modułów sparkfun który jak na razie nie ma bibliotek umożliwiających(a...
Procesor ATmega od biedy "ma możliwość" obsługi przerwań zgłaszanych z częstotliwością 33 kHz, ale pod warunkiem, że jest programowany w C lub asemblerze, a nie w Arduino ani Bascomie. Obsługa takiego przerwania w C musi być b. uważnie napisana - kilkanaście linii kodu, bez wywołań procedur, mnożeń ani dzieleń.
Arduino to kobyła, na rejestrach traciłbyś mniej-więcej połowę czasu na pracę w ten sposób. A pozostaje jeszcze nakładka od arduino, inne źródła przerwań i obsługa wejścia ;) Ewidentnie masochizm, zwłaszcza jeśli chodzi o zwykłe machanie pinem. Nie prościej zrobić wstawkę w c/asm ? 6 linijek kodu i zapominasz o tej sprawie.
Witam. Mam napisany program na Arduino UNO, który ma oddzielnie obsługiwać 2 serwa podpięte pod wyjście 9~ i 10~. Oba serwa działają, jednak zauważyłem że serwo podłączone do wyjścia 10 bardzo nierówno pracuje. Co chwile są jakieś skoki, na chwile się zatrzumuje, czasami potrafi się cofnąć. Nie jest to wina samego serwa, ponieważ po zamianie wejść,...
Tobie wystarcza bo pewnie używasz AVR. Zauważ, że dla (at)tmf 3,4Mb/s jest za mało. Jesteś mistrzem w odwracaniu kota ogonem. Wskaż, gdzie tak napisałem, albo nazwę cię kłamcą. Pokazałem przykład licznika resetów uC, niezależny od EEPROM w uC. AVR ma fuse EESAVE, z którego często kożystałem ale gdy wymienisz uC żaden EESAVE nie pomoże. Kolejny chybiony...
Arduino opiera się na C++, ale... jakość tych programów bywa fatalna i często znajdziesz programy pisane w gołym C w starym standardzie. Zdecydowanie programy dla Arduino nie są dobrym źródłem nauki. W mojej ocenie, jeżeli chcesz się skupić na C++, to najpierw na piszesz i ćwiczysz na PC, a później bierzesz się za mikrokontrolery. Arduino zaczynało...
No to chyba tak, jak kombinowałem ( tylko może źle to opisałem ). Wybrałem grupę interruptów PCINT, a potem wybrałem dwa interesujące mnie PCINT'y. I w następnej linii kodu ustawiłem flagę "I" komendą sei(). Czyli spełniłem trzy warunki GIMSK = (1<<PCIE); (albo GIMSK = 0b00100000;) -> Włączyłem przerwania PCINTx PCMSK = 0b00011000 ; (albo...
Witam Potrzebuję podpiąć się pod zegar sterujący PWM arduino aby uzyskać przerwania co 50 do 100ms czyli co np 50 ms nastąpiło by przerwanie i wywołanie odpowiedniej funkcji. Niestety nie potrafię tego kodu co znalazłem w internecie rozgryść czy ktoś mógłby mi wyciągnąć z poniższego kodu co jest niezbędne do zrealizowania tego i wytłumaczyć co z czym...
Mam do rozwiązania pewien problem związany ze sterowaniem wartością PWM w zależności od stanu dwóch przełączników hebelkowych SW1 i SW2. Zmiany muszą uwzględniać włączanie i wyłączanie tych hebelków. Scenariusz wygląda następująco: SW1 i SW2 są wyłączone - PWM = 0 Włączam SW1 przy wyłączonym SW2 - PWM = 153 Przy włączonym SW1 włączam SW2 - PWM po upływie...
Witam Robię na arduino prosty tester uSwicha który, wyzwala cewkę która, załącza i wyłancza przełącznik. W programie wykonuje sprawdzanie czy ilość powtórzeń zgadza się z odczytaną ilością z przełącznika. Mój problem polega na tym, że błędnie odczytuje mi ilości zmian stanów. W programie wykorzystuje przerwanie aby wykryć zmianę zbocza, gdy wykonałem...
Co do LCD, najlepiej podłączyć bezpośrednio do uC a nie przez jakieś ekspandery I2C zwłaszcza przestarzały PCF8574. Jeśli już to użyj nowszego, szybszego, 16 bit, najlepiej z SPI PCF8574 wprawdzie jest starą konstrukcja, ale do celów obsługi wyświetlacza alfanumerycznego LCD w zupełności wystarczającą. Użycie szybszych ekspanderów I2C nie wpłynie na...
Witam Chcę się komunikować z moim uC (arduino UNO) za pomocą UART. Mikrokontroler jest podłączony z PC za pomocą USB, konwerter UART <-> USB jest wmontowany w moją płytkę. Napisałem kod w języku C aby po wysłaniu za pomocą Monitora portu szeregowego jakieś komendy (w moim przypadku jest to liczba) zaświeciła się dioda, dodatkowo dodałem aby wysłano...
Witam. Zrobiłem programator czasowy na Arduino, który steruje przekaźnikami i utknąłem - wyłączyła mi się logika :( Mam taki kod i działa ok: [syntax=c] // pora nocna poniedziałek - piątek if(dt.hour == godz_on_tydz and dt.minute == min_on_tydz and weekend == 0 and marker == 0) { marker = 1; } if(dt.hour == godz_off_tydz and dt.minute == min_off_tydz...
(at)laeleigh Jeżeli ten przycisk jest podłączony jak na rysunku, to raczej nie zadziała, ponieważ naciskając przycisk robisz zwarcie do masy. Druga opcja, to stałe zwarcie, ale wtedy nic nie powinno działać. Przycisk powinien być podłączony tylko i wyłącznie do GND i do pinu Arduino, tutaj D3, skonfigurowanego jako wejście z podciąganiem. Wbudowany...
Witam mam mały problem w bardzo prostym kodzie który przedstawiam poniżej. [syntax=c] int pin1 = 1; int pin2 = 2; int pin3 = 3; int pin4 = 4; int pin5 = 5; int pin6 = 6; int pin7 = 7; int pin8 = 8; int buttonPin0 = 0; int buttonPin1 = 1; int delay1 = 5000; int delay2 = 100; void setup() { //pinMode(pin1, OUTPUT); //pinMode(pin2, OUTPUT); pinMode(pin3,...
Witam, Mam pytanie odnośnie obsługi przerwań w mikroprocesorze Atmega16. Procesor ten ma możliwość pracy z trzema przerwaniami zewnętrznymi. Powiedzmy, że aktywuję wszystkie trzy przerwania. Występować one będą średnio co 3,33ms i będą spowodowane detekcją zera na trzech kolejnych fazach zasilania trójfazowego. Czas trwania przerwania będzie się wahać...
Witam, Mam następujący kod, który w pętli loop sprawdza jaka jest wartość zmiennej "flag_menu" i w zależności o tego wywołuje odpowiedni funkcje. Wszystko w programie szło fajnie, aż do momentu chęci dodania funkcji, której działanie mogło by być przerwane przez interwencję użytkownika: if (buttonState == HIGH && flag==1) ...{ to również...
Witam Otóż mam taki dylemat ... Mam taki prosty programik robiący mi za licznik modulo 8. Samo liczenie odbywa się w przerwaniu timer'a ale to nie jest kwestia którą chce poruszyć. Po wywołaniu zewnętrznego przerwania, nie da się go przez czas paru/parunastu sekund wywołać. Czego to może być wina ? (pomijając że moja). Czy przypadkiem nie powinno to...
Witam, Mam problem z programem poniżej (używam Arduino Uno). Program powinien przełączać zmienna "state" na przerwaniu generowanym na pinie2 (na zbocze RISING) (do pinu 2 podłączony jest pilot rc na układzie PT2262-generujący stan wysoki na naciśniecie przycisku pilota) (Dodam, że na zbocze FALLING działa poprawnie) Czy któś może mi powiedzieć, dlaczego...
To jest ogólne pytanie do mikrokontrolerów. Wcześniej używałem w większości arduino ide. Zacząłem się uczyć stm i natknąłem się na przerwania. I teraz się zastanawiam nad ich sensem i czy się o nich uczyć a później zatruwać sobie życie kolejną zbędną warstwą abstrakcji myśląc błednie. Dopiero teraz się tego dowiedziałem bo wcześniej nigdy nie było mi...
Witam, jestem w trakcie pisania programu dla line follow'era i chciałbym za pomocą switcha włączać i wyłączać robota (konkretnie serwa), coś na zasadzie przycisku on/off. Do tego celu chcę użyć przerwań zewnętrznych w ATmedze8 i switcha, za pomocą którego będę zmieniał stan na pinie PD2 (INT0). Program niestety nie działa jak należy. Raz na kilka przypadków...
Witam, udało mi się zrobić przerwanie zegarowe. Teraz potrzebuję przerwania takiego, żeby zadziałało, gdy napicie na pinie analogowym osiągnie odpowiednią wartość. A ta wartość będzie wpisana w arduino i porównywana z tą z pinu wejściowego.
Oto kod, gdyby ktoś chciał pobawić się podobnym systemem. long Htime; //integer for storing high time long Ltime; //integer for storing low time long Ttime; //integer for storing total time of a cycle long frequency; //storing frequency ISR(TIMER1_OVF_vect) // interrupt service routine { TCNT1 = 3035; // Interrupt runs once a second (at)...
Witam, Jestem początkującym elektronikiem i postanowiłem zbudować prostego robota z użyciem arduino. Jego zadaniem byłoby omijanie przeszkód wykrytych za pomocą dwóch ultradźwiękowych czujników odległości. W tym wypadku po wykryciu przeszkody zależnie od tego którym czujnikiem jedno z kół zaczęłoby się obracać w druga stronę na określony czas, aby skręcić,...
Hej, Mam pewną wątpliwość co do sposobu działanie przerwań w avr`ach i ich obsługi przez avr-libc 1.4.4. Co się stanie jeżeli w momencie, w którym procesor obsługuje jakieś przerwanie zostanie zgłoszone następne przerwanie. Z dokumentacji zrozumiałem że nie zostanie ono obsłużone od razu ponieważ ISR albo Signal mają wyłączone globalne zezwolenie na...
Widzę, że nie korzystasz z przerwań? Obsługa tego MPU bez przerwań to raczej bardzo karkołomne wyzwanie. Podaj linki do tych bibliotek których używasz. Przypuszczam, że przyczyną problemu może być to o czym napisałem już wcześniej. [url=https://forbot.pl/blog/budowa-robot... też do teorii, tu jest chyba to...
Rozumiem ze będzie tu potrzebne wykorzystanie millis. Do PWM? Można ale to kiepska metoda. Mała rozdzielczość, kiepska precyzja (duży jitter). W przypadku zawieszenia przerwań (np obsługa 1-Wire przez GPIO), PWM zostaje zatrzymany. Taki PWM to do regulacji kontrastu LCD się nadaje. Praktycznie każdy mikrokontroler ma sprzętowy PWM a AVR każdy (może...
Musisz więc w loop() sprawdzać stan wybranego pinu funkcją digitalRead() Naliczyłem 17 delay, których czas ustawiony jest na 100ms. Daje to łącznie 1,7sekundy i może być tak, że po takim czasie program zareaguje na zmianę stanu wejścia. Pierwsza rzecz jaką bym zrobił to wywalił delay i sterowanie zrealizował na przerwaniach od timera. Przy takim podejściu...
Arduino ma tę zaletę, że można kupić płytkę za 30zł i coś na niej robić. Gdyby nie to, że osoby które prowadzą laboratoria po prostu kupiły kilka zestawów Arduino, to zajęcia laboratoryjne z mikrokontrolerów jednoukładowych byłyby prowadzone wyłącznie w oparciu o dwa zestawy DSM-51 i ew. mocno niedorobiony emulator tego systemu na PC. Można się nauczyć...
Problem bierze się stąd, że rzadko kiedy przerwanie jest wywoływane co jakiś "okrągły" czas, np. co 100us. Zwykle użyty kwarc i preskaler powodują, że odmierzane odcinki czasu pomiędzy przerwaniami nie są "okrągłe", a co za tym idzie łatwe do liczenia. Dodatkowa zmienna f ułatwia nam zliczanie milisekund. Akurat w podanym przykładzie przerwanie ma być...
Pewnie kolego można to znacznie uprościć, miałem pod ręką arduino i miał to być prototyp. Nie chciało mi się męczyć z żelazkowym transferem a tu same gotowe klocki. Oczywiście można usypiac atmegę i wzbudzać po 13 minutach i po innym dowolnym czasie przerwaniem zewnętrznym i inne różne bajery też można. To jest tylko hint dla ludków co już mają w5100...
Zapewne da się to zrobić inaczej. Da się tak jak w C przy czym w Bascomie wystarcza tylko poprawne wykorzystanie przerwań i obsługa "manualna" kilku rejestrów co akurat dla większości bascomowców jest problematyczne, bo język sam z siebie przyzwyczaja do rozwiązań podanych na tacy. A skoro już trzeba robić coś ręcznie, żonglować bitami w rejestrach,...
nie trzeba analizować całości :) ale mogę się mylić Możliwe, możliwe też że problem leży w ogarnięciu siekanego stylu pisania programu. Przecież obsługa tego typu sprowadza się w zasadzie do dwóch etapów. Zapisania startu czasu przy wciśnięciu, i sprawdzaniu czy ten czas został przekroczony. W sumie z początku myślałem że chcesz tylko mieć czas trwania...
Witam, w pierwszych słowach: zdaje sobie sprawę że można zrobić to lepiej, ale uczę się i czerpię z tego rozrywkę. problemem numer jeden są przerwania i to chcę naprawić. Do rzeczy: bawiąc się chcę poskładać zegar binarny. Reprezentacja godzin za pomocą diod. Odwrócona logika: dioda świeci gdy na nóżce jest stan LOW. Chcę zmieniać wartość godzin i minut...
Arduino - platforma - mikro kontroler - ATmega328 Problem polega na tym że kod: root.ls(LS_DATE | LS_SIZE); wysyła bezpośrednio na rs dane i nie wiem jak np. zapisac je do zmiennej, ewentualnie może jest na to inna funkcja lub nawet inna potrzebna biblioteka, piszę tutaj , bo może ktoś coś podobnego robił. oto kod programu (jest tam sporo deklaracji...
Witam Mam arduino + ethernet sheld + tft toutchscreen scheld. Jak zrobić przerwania, bo jak wiadomo ten mikrokontroler jest jedno wątkowy. Przy obsłudze toutch screen wyświetlacza tft oraz ethernet sheld niestety wszystko się haczy. Potrzebowałbym by zrobić tak aby obsługa toutchscreen miała najwyższy priorytet potem ethernet sheld potem wyświetlacz...
Chyba powinno się w przerwaniu z ADC odczytywać napięcie z tego czujnika. Nie wiem jak używa się tego przerwania w Arduino. Ma ktoś jakieś przykłady? Jeżeli używasz Uno/Nano, to przykład obsługi ADC w przerwaniach jest tutaj: [url=http://www.glennsweeney.com/tutoria...
czyli mam rozumieć że trzeba floata wyrzucić? i przejsć lepiej na uint... Tak, jest to zbędne obciążanie czasu procesora w obsłudze przerwania.
Funkcje obsługi przerwań powinny mieć dodany atrybut umieszczający je w IRAM. zobacz tutaj: https://forum.arduino.cc/index.php?topic...
Obsługa WS2812 na AVR nie może działać przy aktywnych przerwaniach z jakiegokolwiek źródła. Obsługa DMX korzysta z przerwania UART i masz jeszcze przerwanie timera. Proste? Zmień mikrokontroler.... Z ATmega WS2812 DOBRZE nie popędzisz.
Biblioteka Adafruit_NeoPixel blokuje przerwania więc Możesz mieć problem z obsługą klawiatury podczas jej działania.
Jakie zarzuty tam były? Sterowanie czasem otwarcia triaka jeśli dobrze pamiętam. Ale jak tak teraz patrzę to i detektor przejścia przez 0 załatwia sprawę. To chyba jednak spróbuję zrobić to na arduino Autor znał i używał przerwań? Watpię. Wydawało mu się, ze zna? Np odwalanie pętli w obsłudze przerwania? Arduino nie jest złą elektroniką do projektów....
Panowie, proszę o pomoc w poprawnym odczycie pozycji enkodera inkrementalnego przez Arduino. Czemu nie użyjesz gotowej biblioteki [url=https://github.com/PaulStoffregen/E... dla Arduino? Będziesz miał wtedy możliwość obsługi tego enkodera z przerwań (dla obu pinów enkodera lub tylko jednego ) lub też bez przerwań. Natomiast w tym [url=https://www.electroschematics.com/1...
Tak, niedokładność czasu delay wynika głównie z tego, że dodaje się do tego czas wykonania innych funkcji, w tym szczególnie funkcji obsługi przerwań. W przypadku odpowiedniego użycia timera tej niedokładności nie ma, a w każdym razie nie akumuluje się ona, tak jak w przypadku delay. Oczywiście jeśli coś ma być wykonywane w superdokładnych odstępach...
Zrób obsługę tego encodera w przerwaniu, a nie w pętli typu for(1). (Na stronie, z której masz ten kod jest przykład z przewaniem ang. interrupt). Polecam przeczytać całą tą stronę z arduino playground. Dla innych, chodzi o [url=http://playground.arduino.cc/Main/R... P.S. Moim zdaniem najprościej to napisać w gołym C, a nie w tym całym...
Niepotrzebnie mieszasz myślowo różne systemy walutowe. [syntax=c] #include <avr/io.h> #include <avr/interrupt.h> #include <Arduino.h> unsigned long FlagTime; void setup(){ // to jest odpowiednik main Serial.begin(9600); DDRB &= ~(1 << DDB0); // ustawienie pinu B0 jako wejście ( wejście licznika ICP1) PORTB |= (1 <<...
A ja stawiam na błąd w oprogramowaniu - zła obsługa przycisków bez eliminacji zakłóceń, ktśre - jak widać - w tym środowisku występują. Oprócz tego przyjrzałbym się połączeniom przekaźników i zasilaniu płytki mikrokontrolera. Na początek pokaż procedurę obsługi przerwania timera z obsługą przycisków.
stm32 obsługa przerwań obsługa przerwań bascom atmega obsługa przerwań
filtr paliwo mitsubishi radio słońce manual premium
zablokowana stacyjka mercedes polon zasilacz
Hydraulika ciągnika: nie działa TUZ i TUR – diagnostyka, New Holland, Ursus, Zetor LA3401, dekoder MPX, brak odbioru stereo FM – diagnostyka, pilot 19 kHz, rezonator, kondensatory