Najlepiej zapomnij o używaniu funkcji delay i używaj timerów/liczników oraz przerwań. Na tym Forum wyszukasz wiele tematów na ten temat. Na innych stronach będzie tego miliony. Na przykład tutaj: http://www.elektroda.pl/rtvforum/viewtop...
Potrzebuję pomocy w przerwaniu pętli while (linijka 146) założenie jest takie jeżeli BlutoothDane=s to ma wykonać tą pętle a jeżeli BlutoothDane=d to ma ją przerwać. problem jest taki, że nie przerywa pętli cały układ ma działać jako sterownik Led na bluetooth. Proszę o szybką pomoc. Masz tu kilka nieprawidłowości; Jakie znaczenie i zastosowanie ma...
Napisz tak swoje podprogramy by były w nich powtarzalne pętle, wtedy można użyć poleceń break (dla pętli) i return (dla całej funkcji) by ją przerwać gdy przycisk zostanie wciśnięty: if (digitalRead(A2) == 0) return;. Można to wstawiać dowolnie często, ale jak odpowiednio napiszesz funkcję (podprogram) z millis to ona może działać cały czas "równolegle"...
Witam, ostatnio zacząłem przygodę z Arduino, kupiłem sobie podróbkę i najpierw żeby komunikowało się musiałem zainstalować sterownik na USB i wszystko działało idealnie, bawiłem się na silniku krokowym 28BYJ-48 i dzisiaj chciałem zobaczyć działanie tego pierwszego programu https://arduino-info.wikispaces.com/Smal... Podczas wgrywania programu...
kod wygląda tak : [syntax=c]case 0xF728D7: int liczba = 0; while(liczba < 20) { digitalWrite(Relay_1, RELAY_ON); delay(50); digitalWrite(Relay_1, RELAY_OFF); delay(50); digitalWrite(Relay_2, RELAY_ON); delay(50); digitalWrite(Relay_2, RELAY_OFF); delay(50); digitalWrite(Relay_3, RELAY_ON); delay(50); digitalWrite(Relay_3, RELAY_OFF); delay(50); digitalWrite(Relay_4,...
Witam, próbowałem obniżyć prąd w moim Arduino i wkleiłem kod ze strony. I przeoczyłem, że występuje on w dwóch miejscach i odciąłem sobie dostęp do AVR. Jak to przywrócić :)? [syntax=c] ADCSRA = 0; PRR = 0b00000111; MCUCR |= (1<<BODS) | (1<<BODSE); MCUCR &= ~(1<<BODSE); // must be done right before sleep[/syntax]
Hej, mam taki projekt w średnio-zaawansowanym stadium, mianowicie: 1. Skrzynki na warzywa są. 2. Same rośliny są. 3. Zasilacz, pompa, elektro-zawory i oświetlenie dla pierwszych 7 skrzynek złożone podłączone. 4. RPI HA, Arduino z Firmatą, dysk twardy i moduł 16 przekaźników podłączony. 5. Wiadro z wodą i 'hydrauliką' też. PS. wszystko od zasilacza dalej...
Witam. Testowałem swój układ na Arduino (sterowanie tranzystorami które uruchamiały diody-chyba po 0,5W) Działało jako tako, ale coś co jakiś czas nie stykało. Ruszałem więc płytką na której były podłączone tranzystory, dociskałem poszczególne elementy itp. Nagle wszystkie diody przygasły i jakby tylko się żarzyły. Poruszałem więc dalej elementami z...
Witam, Opis dzialania: Czujnik TCRT5000, podpiety do pinu 2 lub 3, dioda nadawcza podciagnieta przez opornik 150ohm, tranzystor przez 10kohm. Standardowe podlaczenie, i wszczystko dziala prawodlow. Uklad ma liczyc impulsy z tarczy oborotwej, i robi to prawidlowo. ;) Problem: W miescu gdzie to pracuje ze czujnik siwetla, ktory ma w sobie przekaznik,...
Witam dopiero zaczynam swoją przygodę z arduino i wszystkie proste projekty wychodzą mi okej ( jakies migający diody ) ale gdy próbuję zrobic coś bardziej skomplikowanego (samochodzic sterowany bluetooth ) napotykam na ten błąd. Niewiem co moge zrobić aby zniwelować ten błąd Proszę o pomoc Szkic używa 2658 bajtów (8%) pamięci programu. Maksimum to 32256...
Witam, mam pewien problem a mianowicie zrobiłem sobie sterownik pieca C.O a dokładniej samej pompki. Układ jest oparty na mikrokontrolerze Atmega 328P. Napisałem do tego program i wszystko pięknie działa do pewnego momentu. W programie napisałem że pompka ma się wyłączyć jeżeli temperatura spadnie do 42 stopni. Gdy czujnik osiąga tą temperaturę to ją...
\ 1. Rozumiem, że ustawienie odpowiedniej częstotliwości da mi czas, który jest mi potrzebny? Tak, program z tego postu demonstruje rejestry i bity których odpowiednie ustawienie spowoduje daną częstotliwość przerwać timerów, a w konsekwencji odpowiednią częstotliwość wysyłania tekstu / migania diodą, jednak obecny ustawiony czas jest przykładowy, nawet...
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...
Cześć, Szukałem po forum, nie znalazłem sensownego rozwiązania. Mam podłączone dwa Arduino Serialem do siebie, oba na osobnych zasilaczach. Jedno Arduino steruje przekaźnikiem który uruchamia zaliczasz do drugiego Arduino. No i wszystko pięknie by było gdyby nie utworzyła się pętla. Oczekiwałem efektu tego typu: 1. wyłączam arduino I 2. wyłacza mi się...
Witam proszę o poradę gdyż, losowo podczas załączania i wyłączania obwodu przez przekaźniki zdarza się ponowny restart programu w Ardunino UNO. Przekaźnik zasila dwa silniki (równolegle) 24V DC, pobór prądu przez jeden to 0,6A, rezystancja uzwojeń wacha się od 2,5 do 4,5 Oma. Początkowo myślałem, że przepięcia pochodzą z Cewek, ale po odłączeniu silników...
Witam, Wykonując prosty sterownik dla projektu napotkałem na niespodziewane problemy. Układ składa się z Arduino Uno R3 + shield wyswieltacza i przyciski + zaprojektowanej i wykonanej własnoręcznie płytki to której dołączone są zewnętrzne moduły. Układ ma sterować siłownikiem elektrycznym, napięcie 12v na siłownik podawane jest przez MOSFET n. dodatkowo...
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...
Witam Mam problem ze stanem na pinach cyfrowych 0 oraz 1 na których są linie TX oraz RX. Mam do nich podłączony wyświetlacz 7 segmentowy i podczas uruchamiania arduino czy resetu na tych pinach pojawiają się jakieś stany wysokie które powodują miganie na wyświetlaczu podłączonych tam segmentów. Czy jest możliwość wyłączenia tego żeby podczas retestu...
Witam. Podłączę się do zamkniętego tematu: /* * LCM1602 & Arduino Uno * VCC - > 5 V * GND - GND * SCL -> A5 * SDA -> A4 */ int odczytanaWartosc = 0; int czas = 0; #include <Wire.h> #include <LiquidCrystal_I2C.h> LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { lcd.begin(16,2); lcd.clear();...
https://obrazki.elektroda.pl/5856179500_... Witam wszystkich. Tym razem chciałbym zaprezentować układ synchronizatora zegara I2C z czasem pobieranym z Internetu. Korzystając z wcześniej prezentowanego zegara na Z8, pomyślałem, że warto go rozbudować o taką możliwość, stąd powstał prezentowany układ. Sam układ zbudowany jest w oparciu...
https://obrazki.elektroda.pl/3222529000_... Kto zna mnie na forum, albo czytał moje artykuły, ten wie, że delikatnie rzecz ujmując Jeden standard, by wszystkimi rządzić Projektowanie układów z użyciem Arduino jest proste. Płytki Arduino i moduły rozszerzeń do nich mają standardowy kształt i rozstaw złączy, dzięki czemu możemy ułożyć...
https://obrazki.elektroda.pl/8691272400_... Witam, poniższy mini-projekt powstał z inspiracji Część elektroniczna Urządzenie bazuje na dwóch PCB (4x wyświetlacz LED + płyta główna) połączonych ze sobą taśmą flex z jakiejś drukarki. Wyświetlacze to wylutowane z czegoś 7-segmentowe pojedyńcze kostki ze wspólną anodą i czerwonym filtrem...
Czy po wciśnięciu przycisku program ma wykonywać w kółko wybraną sekwencję? Pewne tak, a wtedy: jak w trakcie wykonywania sekwencji program ma reagować na wciśnięcie przycisku? Ma dokończyć wykonywaną sekwencję, czy ją przerwać? Jeśli program ma rozpoznawać wciśnięcie przycisku w czasie wykonywania sekwencji, to zamiast _delay_ms() trzeba wstawić własną...
To potwierdza teorię o uszkodzonym stabilizatorze 5V. Same Arduino prawdopodobnie wytrzymało (Atmega ma zdumiewającą odporność na nadmierne napięcie). Shield ramps zasila Arduino przez weiście Vin. Musisz przerwać ten obwód (usunąć diodę D1 na shieldzie, albo sam pin) oraz zapewnić Arduino inne zasilanie 5V. Sam wyświetlacz prawdopodobnie do wymiany.
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...
W pętli ustawiasz zmienną i=0 i warunek, że pętla ma się wykonywać aż i osiągnie wartość co najmniej 255. Żeby przerwać tę pętlę trzeba ustawić i na wartość większą od 255. Jeśli pętla ma reagować na wartość zmiennych inne niż i, to trzeba te zmienne badać wewnątrz pętli i ustawić zmienną i albo wywołać break.
Żeby animacja trwała w nieskończoność to musisz "ogarnąć" dwie sprawy - kod samej animacji musi się wykonywać w "nieskończoność", a druga to taka że po wciśnięciu przycisku musi się przerwać i przejść do kolejnej animacji :) Celowym wydaje się użycie przerwań.
Panowie i Panie, udało mi się już poniekąd wyjść z sytuacji, okazało się, że wystarczy na zwykłym arduino nadać stan wysoki na pin, poczekać 2000 mikrosekund, nadać niski sygnał i znów 2000 mikrosekund (w pętli), czas odstępu między high/low to nasza prędkość. Docelowo ma to siedzieć na jakimś AVR. Jak uczyłem się programować mikrokontrolery, zrobiłem...
Lib z założenia musi blokować przerwania. A raczej sam driver tj. procedura transmitująca dane do LEDów. Jednakże przypuszczam, że poza funkcją drivera przerwania są odblokowywane, więc to nie problem. Problemem leży w tym, że funkcje efektów są napisane w ten sposób, że nie można ich przerwać w połowie. Trzeba by je napisać od nowa. Na przykład raibowCycle...
przypuszczalnie te sygnały są na tyle wolne w porównaniu z szybkością działania procesora, że można to zrobić całkowicie programowo. Rozwiązanie programowe raczej nie wchodzi wgrę ponieważ oprócz wyświetlania obrotów program będzie zarządzał całym system chłodzenia wodnego komputera dondu napisał: Korzystaj z nich, bo po to właśnie są, a zaoszczędzisz...
Witam. Oczywiście same problemy. Podczas wgrywania nowej płytki z bazy zwanej biblioteką a dokładnie esp8266 program się zawiesza i przestaje pobierać już na samym początku. Nawet nie można przerwać pobierania. Dopiero "trzech króli" umożliwia wyłączenie programu. Taka sytuacja ma miejsce na dwóch komputerach z zainstalowanym windowsem 7 prof. Gdy...
udało mi się zrobić pętle tylko teraz mam problem z jej przerwaniem i włączeniem innej funkcji, wyczytałem że na arduino uno przerwania działają tylko na pinie 2 oraz 3, więc zmieniłem pin na 3, następnie dodałem na koniec pętli "if(data!=5){break;}", niestety w tedy pętla w ogóle nie działa, wie ktoś jaką komendą to przerwać żebym mógł wywołać inną...
Warto jednak się upewnić, czy aparat na jednym z tych złącz nie posiada już elementu wysokonapięciowego, bo wówczas podwójna separacja może nieprawidłowo działać. Raczej nie ma to znaczenia, wejście aparatu jest sterowane zwarciem do masy, jak już tu wielokrotnie wspominano, tak więc ile by zabezpieczeń nie wstawić, układ będzie działał dalej, jeżeli...
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ż...
Już mnie to Arduino zaczyna trochę wkurzać... A ten stół oparty właśnie o Arduino to chyba troszkę przerost formy nad treścią. Poza tym co będzie jak wszystkie panele zgasną, a ktoś dalej będzie mówił? Przewodniczący spotkania tak czy tak będzie mu musiał przerwać więc na jedno wychodzi czy zrobi to gdy zgaśnie ostatnie światełko na stole czy patrząc...
Dzięki za odpowiedzi. e marcus, wybrałem diodę wbudowaną, bo jest ona na płytce i sygnalizuję mi pracę programu (wyszło to przypadkiem, bo gdy nie jest wykonywana żadna funkcja dioda miga szybko, natomiast podczas wykonywania operacji przestaje migać) Proces ten jest realizowany za pośrednictwem millis() (jeszcze się tego nie nauczyłem - skopiowałem...
Witam, nie mogę ujarzmić Wemos D1 mini pod względem millis(). Próbuję naskrobać kawałek kodu w którym po odebraniu polecenia z przeglądarki załączy wyjście w tym przypadku do celów testowych "fabryczną diodę led" na 1 sekundę, wyłączy na 2sek i znowu załączy na 3 sek a następnie wygasi. Nijak nie mogę ujarzmić liczenia czasu. Można pójść na łatwiznę...
W przypadku mikrokontrolerów bez czytania not i tak się nie obejdzie. Debugger właśnie pozwala zajrzeć w to co się dzieje w procku i przejąć nad nim kontrolę. Możesz przerwać wykonywanie programu i sprawdzić co robi procek, możesz zmienić jego stan niezależnie od programu, możesz podglądnąć zmienne, kolejność wywołania funkcji itd. Skoro masz budżet...
tylko którą scieżke ja w swoim silniczku mam przerwać?
poszukaj w google opisu do biblioteki TimerOne.h, generuje przerwanie, można określić interwał.
Ten odczyt musi być dokładnie co kilka sekund? Nie wystarczy do tego millis()?
Można oba odczyty dać do przerwania. Zliczać je i co któreś przerwanie robić odczyt. Czyli timer, np. przerwanie co 250 ms - co 3 przerwanie robisz odczyt temp. (w pierwszym dajesz polecenie konwersji, w 3 odczyt), co 8 przerwanie odczyt wilgotności.
W Arduino 1, w funkcji receiveEvent() nie powinieneś wywoływać Serial.print() - [url=http://www.gammon.com.au/forum/?id=...
Oj, ale Kolega słabo szuka: http://www.arduino.cc/playground/Code/Ti... Aktywujemy przerwania i przerwanie od timera, przypisujemy jakąś funkcję, potem zmieniamy okres co jaki ma następować przerwanie - bez ani jednej bezpośredniej operacji na rejestrach...
A jakie są priorytety przerwań? Do odmierzania czasu musi być przerwanie o wyższym priorytecie, inaczej zostanie zaburzone przez inne przerwanie.
A nie lepiej przerwanie?
Arduino Nano wystarczy. Przerwanie zewnętrzne w Nano jest obsługiwane na pinach 2 i 3. A przekaźnik wysterowujesz z dowolnego wybranego pinu przez tranzystor - jaki? To już musisz dobrać zależnie od przekaźnika. Tu masz dokumentację: https://www.arduino.cc/reference/en/lang... Zobacz sobie przykładowy...
Przecież natężenie zależy od tego ile prądu pobiera arduino I=U/R to że na wyjściu USB komputerowego "Jest" 1,5 A to jest to ilość prądu która może zostać oddana z tego USB a nie która nieprzerwanie "płynie" przez urządzenie. Jestem pewny że arduino nic się nie stanie
Witam, [syntax=c]attachInterrupt(ENK1, enkoder, FALLING);[/syntax] Na pinie 3 (PB3), nie ma przerwania INT, które włącza ta funkcja. Attiny85 ma przerwanie INT0 na pinie 2 (PB2), więc wystarczy pozamieniać piny, np. tak: [syntax=c]#define ENK1 2 #define ENK2 4 #define RST 0 #define DATA 1 #define CLK 3[/syntax] Później zmienić to: [syntax=c]attachInterrupt(ENK1,...
Ostatnio postanowiłem zrobić sobie zegar na arduino uno i wpadłem na pomysł aby generować przerwanie co sekundę przy pomocy WDT Proponuję, abyś zapoznał się z informacjami zawartymi w: https://folk.uio.no/jeanra/Microelectron...
Kolego shady79, zbudowałeś komparator okienkowy, a czy zastanawiałeś się jak szerokie jest okienko? I jaki czas upłynął od rzeczywistego przejścia przez zero napięcia w sieci, do sygnalizacji przez transoptor? Te "Okienko" daje minimalny offset który jest stały dla każdego impulsu synchronizacji, więc nie wpływa to na poprawne wysterowanie triaka....
W Oprogramowanie SDU-X Kod źródłowy dla Arduino można pobrać z repozytorium na portalu Thingvserse: #define REQUESTER , powinna być aktywna. A w przypadku układu, który odpowie i odeśle dane, ta linia musi być zakomentowana. W głównej pętli programu znajduje się sekcja do wyboru schematu modulacji, która ma zostać użyta. Jest kilka typów, ale w pełni...
Napisałem skecz który uruchamia buzzer po wykryciu stanu wysokiego na pinie 13 . Dodałem też przycisk do pinu 10 i chciałem aby po podaniu stanu niskiego na pin 10 program wyłączał buzzer . Skecz działa lecz po podaniu stanu niskiego na pin 10 nie wyłącza buzzera . Proszę o pomoc , gdzie popełniłem błąd . [syntax=actionscript]void setup() { pinMode...
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.
Czy ktoś podzieli się przykładem lub podpowie co robię źle? Arduino IDE i ESP32. Potrzebuję przerwanie co 2 ms od sprzętowego timera. Wszystkie przykłady dotyczą arduino w starszych wersjach, gdzię między innymi funkcja timerBegin przyjmuje 3 argumnty. Od wersji 3.0 z tego co wyczytałem przyjmuje tylko jeden. Bazuje na tym https://espressif-docs.readthedocs-hoste...
Witam, Możesz częściej wywoływać przerwanie ale nie licz na więcej ;) . Do odczytu enkodera w PLC masz specjalne wejścia i bloki. Pozdrawiam,
Po co zaraz przerwanie? W pętli głównej odczytuj pomiar, uśrednij jakąś ilość aby układ nie reagował na chwilowe zaciemnienie i po prostu ustal warunki progowe.
Sądzę, że problem pojawia się gdy przerwanie zostanie wywołane w trakcie zapisu lub odczytu zmiennej z RAM Bardzo słusznie sądzisz. 1. Czy jest to normalne zachowanie, czy raczej efekt źle skonfigurowanego środowiska Arduino? Nie ma pojęcia jak się zachowuje Arduino, bo nie używam, ale podejrzewam, że podobnie jak C czyli sam musisz się przed tym zabezpieczyć....
Pewnie ten z #13 da najdokładniejsze 50%, jeśli _delay_us() jest zaimplementowany przez pętlę. Z timerem może wyjść jakiś rezonans. Nie wiem, czy Arduino (czy jaki uC tam masz) ma możliwość użycia przerwań i czekania na przerwanie do synchronizacji - to by dało najlepszą dokładność.
Dziwić się temu może tylko ten, co nie zagłębia się w sprzęt. Skoro przerwanie jest ustawione, to i się wykonuje... Dodatkowe uwagi: - Przyciski z kondensatorami nie łączy się bezpośrednio, kondensator w szeregu powinien mieć 100Ω, bo inaczej za jakiś czas będzie nie dwa wywołania przerwań, tylko 100 z powody wypalenia się styków prądem uderzeniowym...
Konfiguracja timera oraz funkcja przerwania na pierwszy rzut oka wyglądają się być poprawne. Swoją drogą doszedłeś do momentu, w którym powinieneś przesiąść się na język C i pozbyć się ograniczeń Arduino: http://mikrokontrolery.blogspot.com/2011... http://mikrokontrolery.blogspot.com/2011...
A przerwanie CTC?
https://www.arduino.cc/reference/en/lang... Jak działa przerwanie - Jeśli arduino wykryje zmiane stanu pinu, niezależnie co się w tym momencie dzieje (delay, jakaś funkcja) automatycznie uruchomi wybraną funkcje.
Tę PCB było gotowe, czy sam je zrobiłeś? Jeśli chodzi o blokadę nadawania, to chyba jedyna metoda to przerwanie sygnału PTT mikrofonu.
arduino przerwać obsługa przerwać arduino arduino przerwać dioda
wałek dremel ładowarka wkrętarka rezystor śruby nietypowe
kuchenka mikrofalowa kuchennka mikrofalowa
TSOP17xx, VS1838B, HX1838 – gdzie jest GND w odbiornikach IR? Układ pinów i identyfikacja masy Asus ExpertBook B1 – specyfikacja, RAM, BIOS, rozbudowa, modele B1402CVA, B1503CVA