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...
Zajrzyj do biblioteki czy funkcja "IrReceiver.decode()" nie jest funkcją blokująca.
Najpierw pomiary uśredniasz. Co ile czasu ta pętla się wykonuje ?
Witam, Mam problem z kodem, który znajduje się w funkcji loop. Kod i cały układ ma działać w następujący sposób: - krańcówka (k2) sprawdza czy wózek napędzany przez silnik jest w pozycji skrajnej (k2==1 jeżeli nie, k2==0 jeżeli tak) - jeżeli wózek jest w pozycji skrajnej, to trzeba kręcić silnikiem, dopóki krańcówka nie zostanie zwolniona (do [sterowanie...
[syntax=C]if(randomnumer == 10) flaga=1; while (flaga) { if digitalread(a0,high) flaga=0; Tu wykonujesz pętlę drugą po else }[/syntax] To tak w C mniej więcej tak zrób dla arduino[/code]
Pętla if(czyCzujnikCośWykrył == true){ // Zapal diodę i obruć serwo }
Coś mi nie bardzo wychodzą te funkcje. Wywołuje je w określonym czasie, ale co z tego jeśli np. kręcę potencjometrem a wartość wyświetla się dopiero w drugim wyświetlaniu. :cry: To znaczy, nie jest odświeżana.
Spróbuj w programie użyć przerwań dla przycisku. Teraz program działa już tak jak powinien, pętla działa bez delaya dlatego co obieg pętli wyświetlacz się odświeża. Żeby pisać na wyświetlaczu po wciśnięciu przycisku musisz tekst dodać w warunkach przycisku a nie w głównej pętli.
nie wiem co masz na myśli z tym while(). Podstawowa pętla arduino loop() to jest właśnie TA PĘTLA, tylko trzeba ją po swojemu wypełnić, u Ciebie w związku z upływem czasu. Wkleiłeś /nadałeś być może mylną nazwę start1() - słowa są ważne, złe identyfikatory komuś obcemu, a nawet autorowi sugerują coś innego. Aktywność kodu się "przemieszcza", tzn coś...
Odpowiedzią jest pętla for. Poczytaj jak ona działa. Kluczem jest wartość początkowa pętli.
Badaj w pętli stan przycisków. Możesz wcisnąć case() do pętli. Poczytaj Książkę Kernighana i Richie'go, tam takie fikołki są dobrze opisane. Teraz twoja pętla liczy sobie zwiększając i (i++) i czeka trochę. Wciąż nie sprawdzasz tego, co przychodzi z pilota. Pętla for powinna wyglądać mniej więcej tak for(i=0;i<255;i++) { jeśli w pilocie wciśnięty...
Witam. Wystarczy w momencie wciśnięcia przycisku wczytać wartość millis do lokalnej zmiennej, a następnie w pętli odczytywać różnicę pomiędzy millis, a tą zmienną, co w efekcie da czas od kliknięcia przycisku. O ile o to chodzi ;-)
Specem od Arduino nie jestem, ale pętla nieskończona "while(1)" chyba nie ma w tym kodzie większego sensu ;) Co do położenia zerowego, są dwie opcje: - układ sprzężenia zwrotnego informujący kontroler o położeniu wału - np. transoptor szczelinowy i jakaś przesłona, enkoder absolutny itd... - jeśli ruch wału jest fizycznie możliwy tylko w jakimś zakresie...
Tego chyba szybko w Arduino nie zrobię - a to właśnie robię A dlaczego nie. Czym się różni pętla głowna w Arduino od tej w nie Arduino? IMO sam pomysł pętli głownej, jednowątkowość, brak jakiś standardowych mechanzmów IPC itd itd jest nieszczególnie dobry (albo przynajmniej bardzo niewygodny, upierdliwy w pisaniu, łatwo wpaść w poważne kłopoty) - ale...
Nie do końca rozumię tą linijkę: Zadeklarowany 500 znaków, w tym pierwsze dwa zainicjowane na '{', '\0' Ponieważ to jest w obszarze pamięci statycznej, dodatkowo wszystko te obszary są z mocy standardu wypełnione zerami, czyli dalej tez są zera (ale z innej zasady) Dodano po 3 Ta linijka: bingo
Chciałeś użyć czujnik Halla do pomiaru prędkości silnika. Nie jest on potrzebny. Zamiast niego lepiej jest użyć częstotliwości napięcia wytwarzanego przez prądnice. Zawiera ona identyczną informacje o prędkości silnika jak impulsy z czujnika Halla. Pętla sprzężenia zwrotnego w tym wypadku oznacza dodaj więcej gazu gdy częstotliwość napięcia spada.
Właśnie pisze swój pierwszy program na platformie Arduino UNO. Natrafiłem na pewien problem. Otóż, kiedy naciskam przycisk pętla while wykonuje się kilka razy. Mam na pomysł, aby zrobić przycisk który NIE będzie reagował na zwarcie wejścia do masy, ale na puszczenie przycisku. Tyle, że nie wiem jak to zrobić. Skoro to Twój pierwszy program na Arduino,...
Usunąłem tą linię kodu z opóźnieniem 10ms. Fs= 41 Hz, więc cienizna :( W tym miejscu i tak kod się nie wykonuje 2 raz, bo potem jest nieskończona pętla. Jak w Arduino zmienić tryb ADC? Zauważyłem, że bardzo spowalnia działanie ukontrolera funkcja: [syntax=c] myFile.println(cisnienie); [/syntax] Czy jest możliwość jej zastąpienia?
Myślałem że to ona odpowiada za to No nie, ona odpowiada za wyświetlanie zawsze pustego w tym wypadku Stringa. Możesz ją po prostu wywalić, albo skasować to = "" . Wtedy będzie wyświetlał to, co odebrał. Co do rozpoznawania błędu, to od tego masz if, albo switch. A jak zrobić, żeby to działało tak jak chcesz? Rozbij rozpoznawanie odebranych danych...
...poddaje się. Nie wiem jak zrobić by utrzymać diodę przy świeceniu. Pętla powtarza rozjaśnianie w kolko To ją zatrzymaj przy maksymalnej jasności i przejdź do następnego punktu zgodnie z tym co napisał piotrva . 1. Czekaj do momentu wykrycia otwarcia drzwiczek (przypuszczam otwarcie jakiegoś kontaktronu) [syntax=c]while(drzwiczki_zamkniete);[/s...
Nic nie trzeba zamieniać, nie potrzebujesz a0,a1, ... itp Zamiast a0 używasz taba[0].
Jeżeli chodzi o main() to wzorowałem się na innych programach i tam tego nie ma -może wynika to ze specyficznego języka dla arduino a jeżeli chodzi o pętle główną to wydaje mi się ,że jest to pętla loop(), ale jak napisałem ja dopiero stawiam pierwsze kroki wiec może pisze kompletne bzdury.
Potestuj bo tak na szybko przy poobiedniej kawie klapałem jedną ręką :D Może coś przeoczyłem i trzeba prześledzić. Te złożone operacje w jednej linii dla stałych Bascom robi bez problemu. Osobiście bym tego tak nie napisał. Nie wiem po co to ciągle obliczać jak można raz... [syntax=vbnet]$regfile = "m328pdef.dat" $crystal = 16000000 $hwstack = 64 $swstack...
if to nie pętla, a to czego szukasz to obsługa drgań styków. Są gotowe biblioteki w Arduino do tego i nie musisz wymyślać koła, ale za to trzeba się nauczyć ich używać - easybutton, onebutton, bounce2, setki innych, albo jednak wymyślić koło na nowo i napisać sobie obsługę samemu. A break w if to jakiś żart kolegów.
Jeżeli komuś zależy na szybkim "machaniu" pinami na AVR z Arduino HAL, to polecam bibliotekę [url=https://pololu.github.io/fastgpio-a... Ustawianie i czytanie pinów odbywa się bez blokowania przerwań i zdecydowanie szybciej.
Witam Mozę ten kurs naprowadzi i przybliży pewne rzeczy z silnikami Kurs Arduino – #8 – Sterowanie silnikami DC, pętla for
Straszny ten kod. Słyszał kolega o pętlach?
Ze mnie również żaden programista, ale tak jak przedmówca napisał- delay się NIE używa. Tym poleceniem przecież zamrażasz procesor który w tym czasie nic innego nie może zrobić. Wystarczy użyć if..millis.. i pętla leci cały czas.
Z delayami tego na pewno nie zrobisz, musisz nauczyć się zarządzać czasem - millis, timery sprzętowe, gotowe biblioteki (timerOne), millis opisane jest w kursie: https://forbot.pl/blog//kurs-arduino-pod... i raczej nie powinieneś zaczynać od jego końca. Coś takiego jak maszyna stanów, switch-case też nie zaszkodzi...
Takie rzeczy to tylko sprzętowo na timerze w trybie PWM. Twoje założenie o tym, że pętla wykona się w 1..2 us jest niezbyt realistyczne - przyjmując w uproszczeniu, że ATmega wykonuje jedną 8-bitową operację na cykl, Twoja pętla wymaga przynajmniej kilkudziesięciu takich operacji, więc jej czas wykonania wyniesie min. kilkanaście us. A poza tym - nie...
Powinna chyba, że coś jeszcze zmieniłeś w loop(). Pokaż proszę, jak wygląda teraz sama pętla loop().
Ja zakładam oscylację na poziomie 100Hz przy 50% . Próbkowanie musi być co najmniej 1000 Hz. Program będzie prosty więc pętla powinna latać szybko. Jutro jadę po panele i zaczynamy zabawę.
Jak dział ta pętla? (at)R-MIK To może być jakaś osobliwość kompilatora. Nie wiem, nie jestem w tych sprawach ekspertem. No mnie to sie nie kompiluje. Może jakieś makro Arduino? Całkiem możliwe. Jednak nie jestem pewien bo nie jestem w tych sprawach ekspertem. Tylko ciekawi mnie gdzie jest tutaj taka pętla... PS: "Makro arduino" <-- Made my day (at)mot4ba...
Ekran zazwyczaj niewiele daje, bo najłatwiej wnikają zakłócenia przewodzone. Długie przewody które działają jak anteny albo łączą punkty o różnym poziomie zakłóceń, pętle masy,
I pytanie do was jak filtrować zakłócenia na wejściu do arduino samo polecenie PulUP nie pomaga. 1. Filtrowanie programowe, którego zakładam, że nie masz. 2. Pętla prądowa. Jak tylko opcja 1 trzeba zabezpieczyć sprzętowo wejścia, co w przypadku długich połączeń jest konieczne. Bez schematu nie potrafię odgadnąć, zastosowałeś zabezpieczenia? Jeśli nie...
Opcja bez użycia EEPROMu - tarowanie jednorazowe w kodzie źródłowym: Sensor HX711 ma dwa parametry kalibracyjne: scale i offset (mnożnik i przesunięcie). Mnożnik masz wprowadzony do programu jako calibration_factor. Offset wprowadzasz za pomocą funkcji set_offset(). Offset wyliczasz mnożąc przesunięcie (w kg) wyświetlane dla nieobciążonej wagi przez...
Najprościej chyba tak: [syntax=c] uint16_t * first = &respstruct.v01; uint16_t * last = &respstruct.v16; uint16_t * iterator = first; uint32_t sum = *iterator; // pierwszy element do { // od drugiego do ostatniego iterator++; sum += *iterator; } while (iterator != last); printf("%d\n", sum);[/syntax]
I czy obsługę LCD masz na myśli żeby dać coś w rodzaju drugiej pętli loop? W Arduino Core dla ESP32 tzw. pętla loop() to tak naprawdę wątek automagicznie tworzony przy starcie: Niskim, tzn jaki byś dał? Niski, ale wyższy od 1. To zależy też od tego, co jest obsługiwane w wątku loop() i jak często ma być obsługiwane - domyślnie wątek loop() wykonuje...
Zależy co tam miałeś w tym header.h Może lepiej pisz od nowa, w sekcji setup czy init inicjalizacja wyjść wejść lcd co tam jeszcze będzie. Na początek same porty sobie zainicjuj. Natomiast nie możesz po prostu skopiować ze swoich plików jak leci. W sekcji loop będzie twoja pętla główna. Ogólnie, Arduino nazywa pliki .ino mimo że to język C++. Wszystko...
Pętla for wykonuje się, dopóki warunek jest spełniony. W tym wypadku mamy warunek OR - czyli pętla wykonuje się, dopóki choć jeden z bitów bajtu maska przyjmuje wartość binarną 1. Podobnie jest z zapisem instrukcji warunkowej if : możemy napisać : if ( bit == true ) lub może to być zapis : if ( bit ) . Oba zapisy są równoważne.
Ja bym zrobił tak: Wówczas co dziesiąty raz dioda świeciła by przez czas delay1 + delay2 [syntax=c]void loop() { count1 ++; // zwiekszamy licznik digitalWrite (ledPin, HIGH); //zapalamy diodę led delay (delay1); //czas świecenia = delay1 if (count1 == 10) //jesli dziesiata pętla { delay (delay2); // wydłużamy czas świecenia led o delay2 count1 = 0;...
W C program autora tematu wyglądałby tak: [syntax=c]#include <avr/io.h> #include <avr/interrupt.h> ISR(TIMER1_COMPA_vect) { PORTB ^= (1 << PB1); //zmień stan na przeciwny } int main(void){ TCCR1B |= (1 << WGM12) | (1 << CS12) | (1 << CS10); // Timer1 CTC, prescaller 1024 OCR1A = 0x3D08; // okres TIMSK1 |= (1 <<...
A może coś u Ciebie tworzy pętlę masy (np. termopara nieizolowana dotyka do metalowego elementu który ma połączenie z masą) ? Dobry kierunek. Wrzucam rysunek, który pokazuje sposoby/zasady łączenia różnych sensorów z wejściami kart (zwykle wzmacniacz różnicowy na wejściu). https://obrazki.elektroda.pl/9077971000_... Konfiguracja Grounded...
Witam, Chce trochę spowolnić serwa przez pętle for ale mam dylemat bo podczas kodu na serwo idzie 4 różne kąty :D Raz trzeba odejmować a raz odejmować. Kod wygląda tak. [syntax=cpp]//Ruch z miejsca 1 servoPodstawa.write(PodstawaRuch1); servoRamie.write(RamieRuch1); servoPalce.write(PalceRuch1); delay(1500); servoChwytak.write(ChwytakRuchZacisk); delay(czas1);...
[syntax=csharp]#include <SD.h> //Load SD card library #include<SPI.h> //Load SPI Library #include <Adafruit_GPS.h> //Install the adafruit GPS library #include <SoftwareSerial.h> SoftwareSerial mySerial(3,2); Adafruit_GPS GPS(&mySerial); String NMEA1; //Variable for first NMEA sentence String NMEA2; //Variable for second NMEA...
Super działa jak chciałem , Tylko jak zrobić żeby po całym cyklu wszedł w stan oczekiwania i po wykryciu ponownym ruchu odpalił pętle
Cześć, mam problem z wyjściem z pętli while: [syntax=c] else if (bt == 's'){ //stop digitalWrite(outPin,LOW); digital... while (bt == 'z') // automatyczny { scan(); fDistance = distance; if(fDistance < triggerDistance){ moveBackward(); delay(1000); moveRight(); delay(500); moveStop();...
Mógłbym poprosić o podanie nazwy tych konwerterów? Jeżeli w Polsce, to pod nazwą "konwerter stanów logicznych", jeżeli u Chińczyka, to "logic level converter" ;) Wygląda to tak, ja na poniższych obrazkach. Ten drugi to "dedykowany" dla RX/TX, ale oba się nadają. https://obrazki.elektroda.pl/8417310800_... https://obrazki.elektroda.pl/5333992500_...
Tak, bo nie zapamiętywałeś stanu przycisku. A najlepiej zrobić to zmienną pomocniczą, tzw. flagą której stan zmieniasz np. przyciskami a które sterują wykonywaniem funkcji ( "podprogramów " ). Niestety jeśli w kodzie będziesz miał nadal te delay(1000) , to zauważysz, że przyciski nie zawsze reagują na przyciśniecie - dlatego, że podczas każdego "delay(1000)"...
(at)dodelow Przykład prostego generowania zmiany flagi co 4 sekundy (prosty sposób na przełączanie temperatura/czas z wcześnieszego kodu) przy założeniu przerwań timera co 4ms : deklaracje: [syntax=c] volatile uint16_t dzielnik; volatile bool sekundy_4; bool flaga_temperatura; [/syntax] kod w przerwaniu timera: [syntax=c]if (++dzielnik > 1000) {...
Nawet jak wykomentuje millis to przełączanie wyjść działa dla obu na raz. Nie wiem dlaczego... Może dlatego, że używasz wspólnej zmiennej startMillis dla różnych LED. Natomiast currentMillis wystarczy, że będzie zmienną lokalną funkcji funkcja (), przynajmniej tak to wynika z zamieszczonego kodu. Generalnie zamiast używać kolejnych zmiennych np. pir1,...
Nie wiem czy ten czas konwersji coś wprowadza do sprawy? Na biurku działa mi na 8 DS'ach, jak ustawie 10 ms odczyt jest dużo szybszy niż jak ustawie np 1000 ms. Pomiary są identyczne. Nie mam wpiętego opornika na linii 1Wire tylko DS9503 i DS2480B może to ma wpływ? Głównym problemem jest to iż chciałbym to zdublować dla drugiego wejścia arduino żeby...
Cześć. Mam procesor Atmega8L do którego linii RxD i TxD podłączony jest układ transmitera RS485. Linia PD4 procesora steruje kierunkiem transmisji RS485. W Arduino w menadżerze płytek zainstalowałem płytkę "MiniCore", dzięki której można podobno tworzyć program dla Atmega8. Stworzyłem taki kod: https://obrazki.elektroda.pl/6140320500_...
[syntax=c] else { lcd.print("Sensor missing"); while (1) {} }[/syntax] Zapewne zatrzymuje się na tej pętli .
buttonState = digitalRead(przycisk2); - sprawdzasz stan portu tylko 1 raz, to przypisanie musi się odbywać w pętli
AVE... Po prawdzie nic i nikt nie zabrania Ci pisania bezpośrednio do rejestrów mikrokontrolera. Zyskasz trochę na wydajności przy dostępie do GPIO, choć nadal pętla główna trochę to spowolni, bo robi kilka dodatkowych rzeczy w tle. Problem w tym, że wielu użytkowników Arduino o tym też nie wie...
No tak kiedyś ludzie nawet telewizory robili w wersji DIY bo tak było taniej lub szybciej, krajowa produkcja udostępniała odrzuty w bomisach a z tych niepełnowartościowych elementów można było czasem zrobić coś wartościowego. Obecnie moduły i ułatwienia obniżają barierę wejścia i uatrakcyjniają efekty jakie można uzyskać, kiedyś przerzutnik astabilny...
Witam wszystkich serdecznie! Pewien czas temu zacząłem swoją przygodę z Arduino i jak chyba każdy trafiam na problemy, z którymi niestety sam nie potrafię sobie poradzić. Tak stało się i teraz więc już wyjaśniam na czym polega mój problem. Piszę program do sterowania drzewkiem RGB zbudowanym na diodach WS2812 i bibliotece FastLED. Póki co mój program...
(at)krzysiek78-1978 Nie blokujesz warunku w 1 if. Po naciśnięciu musisz zmienić stan lastButtonState na przeciwny aby pętla nie wykonywała się cały czas. Po puszczeniu w else zmieniasz na początkowy. [syntax=c]if (buttonState != lastButtonState) { if (buttonState == HIGH) { buttonPushCounter++; lastButtonState=1; Serial.println(buttonPushCounter);...
tak, zgadza się. Już doczytałem o co chodzi. Funkcja ta zwraca flagę dla magistrali I2C. Wracając to tematu zwiechy Arduino gdy odłączymy lcd lub gdy damy serial.print. Usunąłem znaczną część kodu, zostawiłem Setup w oryginale a w Loop'ie dałem tylko Serial printa. Efektem jest, że Arduino działa jak należy, żatem zacząłem kopać dalej i odnalazłem linijkę...
Noooo, z takiej pętli to nigdy nie wyjdziesz :) Data zawsze będzie równe 5. Musisz umieścić w tej pętli funkcje sprawdzającą czy przyszło coś z bluetooth. Jedynie tak możesz zmienić wartość data i wyjść z pętli.
https://obrazki.elektroda.pl/6034187100_... Pokażę tutaj jak można podłączyć Arduino R4 WiFi do Home Assistant poprzez MQTT w celu odbierania i wysyłania danych poprzez MQTT publish. Wykorzystam do tego bibliotekę ArduinoMqttClient. Przykładowy kod który tu zamieszczę najpierw łączy się z naszą siecią WiFi, potem podłącza się do naszego...
Hmm sprawdź prędkość skryptu bo duży wyswietlacz ile milisekund zajmuje pętla jak powyzej 5 to będziesz miał problemy z triakiem i pozostanie ci pwm do wyboru.
SIŁOWNIK TERMOELEKTRYCZNY SALUS T30NC 230V M30 Przeważnie wszystkie na 230V AC.
Czego oczekujesz po tym kodzie? Wg mnie nie ma nic wspólnego z docelową ideą. Pomijam zbyt duża algorytmikę w przerwaniach, to się wcześniej czy później zemści (a zupełnie pusta pętla główna) Wybory algorytmu (opcje) nie określa się w komentarzach, ale przez znaczące nazwy zmiennych, np nic nie mówiąca nazwa flag, zadeklarowana i inkrementowana nie...
Co do średniej: ; } srednia=suma/i; nie musisz wpisywać +1, bo zwiększasz tą zmienną o 1 dwie linijki wcześniej. W tym wypadku zwiększasz j faktycznie o 1, ale wyświetlasz wartość zwiększoną o 2.
Witam! Mam taki krótki program do sterowania diodą RGB [syntax=c] struct RGB { byte r,g,b; }; void setup() { pinMode(9,OUTPUT); pinMode(10,OUTPUT); pinMode(11,OUTPUT); pinMode (7, INPUT_PULLUP); } RGB hsvToRgb(uint16_t h, uint8_t s, uint8_t v) { uint8_t f = (h % 60) * 255 / 60; uint8_t p = (255 - s) * (uint16_t)v / 255; uint8_t q = (255 - f * (uint16_t)s...
Witam, rzecz w tym, że mam arduino do którego podłączony jest czujnik podczerwieni, przekaźnik 4 kanałowy i 4 taśmy led. Postanowiłem zrobić by po kolei wszystkie się świeciły w pętli nieskończonej włączane jednym guzikiem. Sęk w tym, że nie wiem jak zakończyć tą pętle tym samym guzikiem na pilocie. Proszę o propozycję rozwiązań dla obojętnie jakiej...
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...
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ę...
(at)SlaweK No właśnie z nich wynikają te 4s, po przecinku kot mi wbiegł na klawiaturę, nie będę edytował cytowanej treści. (at)engol Zajrzyj sobie tu: https://www.elektroda.pl/rtvforum/topic3... wrzuciłem przykład z millis(). Zamiast wykonywać akcje z led co 1s "if(fsekundy)" wykonaj jeden krok serwo co 10ms - if(fnTik). Jako dodatkowy warunek...
Zrozumiałem to, nie wiedziałem, że zmienne mogą być wyższe niż pętla i konfiguracja i zrobiłem je podobnie do twojego przykładu #include <ArduinoHttpServer.h> const char *ssidglobal; const char *passglobal; .. in class .. ssidglobal = set->inner.sta_ssid; passglobal = set->inner.sta_pass; ... A teraz działa w pętli, jak chcę. ... status...
(at)-psiak- No właśnie tego sposobu chciałem uniknąć :) Ale jeśli nie będzie żadnej innej możliwości to pozostaje metoda z timerem .. Dodano po 9 Hmm, a czymże jest przerwanie CTC ? Nie za bardzo mogę znaleźć informacje na ten temat, zwłaszcza dotyczące C++ z nakładką (Arduino IDE). Dodano po 8 Trochę informacji, na Elektrodzie nie ma w końcu wróżek...
D.... też nie działa, zmieniłem arduino, nic. ZMieniłem port usb, nic, wgrałem "knob" działa bez problemów, a to praktycznie to samo tylko pętli if nie ma. Pętla jest ok, bo odczyt na serialu jest prawidłowy, dioda włącza się tak jak powinna, a serwo stoi jak zaklęte. Wrzuć pełny kod w odpowiedzi
Po usunięciu kodu, który opisałeś masz blok kodu, gdzie program zwleka 50 milisekund, następnie dopóki na pinie jest stan niski zwleka sprawdzając co 10 milisekund czy stan się zmienił na wysoki. Jeśli tak, to wywoływana jest funkcja FurtkaSTOP. Nie wiem jak jest przyczyna, ale obstawiam błędnie napisany kod lub źle zmontowany układ. No nie do końca....
Dioda działa, ale mam jeszcze problem z tym, że na końcu chcę sprawdzić czy wpisany kod jest poprawnie wpisany, ale Zmienne kod1-4 są zmiennymi lokalnymi dla pętli for. I oczywiście ta pętla for z losowaniem liczb działa w nieskończoność.
To Ty źle potęgujesz. Powinno być: int a = 1 << x;
Ale ten start "chwilę" trwa. Noo trwa, ale co w związku z tym, przecież to nie mój pomysł, ja bym użył timera. Ale nadal nie wiem jak task oddaje czas innym gdy nie ma nic do roboty. Jak wywołuje przerwanie od WD? No musi się zawiesić czyli pętla nieskończona, WD wtedy sam się wywoła.
Niestety miernikiem za 15 zl. Jakbyś robił to oscyloskopem to byś wiedział co jest granie. Ustaw miernik na pomiar napięcia AC, co pokazuje? Przeanalizuj kod z pierwszego postu (pętla loop) krok po kroku. Nic nie widzisz?
MatiMechatronik W C jest coś takiego jak pętla for miałbyś trochę mniejszy kod. Wpisz w google "arduino state machine." Może Cię to zainteresuje [url=https://www.youtube.com/watch?v=AFU...
Kod wykonuje się zgodnie z kolejnością instrukcji, zatem jak masz np. dwie instrukcje IF to pierwsza wykonuje się ta, co jest wyżej. Pozdr
Tyle o ile ale nie mam pomysłu jak brightness'a zatrzymać na żądanym poziomie bez pętli
Witam serdecznie, zbudowałem sobie układ na Arduino UNO i mam jeden problem. W pętli void loop warunki wykonywane są cały czas w pętli, chyba że źle to rozumiem to mnie poprawcie. Mam kilka warunków które powinien sprawdzać układ, dokładnie to 6. Jeśli zapisze dla pojedynczego to wszystko sprawnie wykonuje. Nie wiem natomiast jak dodać kolejne 5 warunków,...
Przykłady z pierwszego postu należy przenieść do działu "Jak nie pisać programów". Program w miarę poprawnie zadziała przy niskiej częstotliwości taktowania uC (brak eliminacji drżenia styków) lub gdy pętla główna będzie wykonywać się długo. Tak jak napisał (at)rs6000, enkoder najlepiej obsłużyć na przerwaniach.
Jęśli chodzi o pytanie nr 3 to tak Dodano po 7 Bezpośrednia odpowiedź na pytanie Aby jednocześnie wyświetlać prędkość obrotową (RPM) wentylatora oraz ustawioną moc (np. w formie procentowego wypełnienia PWM) na wyświetlaczu dotykowym podłączonym do Arduino Mega, należy: - Zliczać impulsy z tachometru (pin TACH) wentylatora, przeliczać je na obr./min...
A co to jest AS7 ? I co może pomóc debuger jak program zacina się po 46 pętlach wykonanych poprawnie?
A możesz mi dokładnie opisać co za co odpowiada w pętli loop ??
uzupełniłem sobie piny i chciał bym na początek zrealizować jednym klawiszem tak: jedno kliknięcie- miganie diody przetrzymanie klawisza- zaświecenie się diody Tak jak Ty to robisz to jest nie bardzo poprawnie. Zauważ że kiedy robisz te delay to program tkwi tam jakiś czas i nie podgląda sygnałów wejściowych. Również tym sposobem możesz robić tylko...
To, nad czym się zastanawiasz, to deklaracja zmiennych o nazwie "i" i "obj" https://pl.wikibooks.org/wiki/C/Zmienne i pętla "for" https://pl.wikibooks.org/wiki/C/Instrukc... "int" to typ całkowity ze znakiem; szerokość typu to 16 lub 32 bity, w zależności od platformy sprzętowej.
Czy Kolega słyszał o tablicach i pętlach? to [syntax=c]String zm22; String zm23; String zm24; String zm25; String zm26; String zm27; String zm28; String zm29; String zm30; String zm31; String zm32; String zm33; String zm34; String zm35; String zm36; String zm37; String zm38; String zm39; String zm40; String zm41; String zm42; String zm43; String zm44;...
...a obecnie ten program działa? W/g mnie załącza diodę na 50ms po wykryciu stuknięcia, po czym ją gasi. Ta pętla na końcu nie ma sensu, zawsze wykona się tylko raz. Rozumiesz poszczególne instrukcje tego programu?
W arduino dostępna jest funkcja PulseIn, która służy do mierzenia długości trwania stanu https://www.arduino.cc/en/Reference/Puls... Rzecz w tym, że w/w funkcja ma swoje wymagania - tzn źle się integruje "na doklejkę" do innego kodu. To tu nic nie da. Już Ci pisałem - takiego tasiemca nikt nie będzie analizował bo to jest czas. Najpierw narysuj sobie...
i program przyjmuje te dane lecz nijak to ma się do jego działania Co dwie sekundy wysyłasz "LED is OFF" oraz "LED is ON" z Arduino. W programie na kompie czytasz Serial z Arduino z maksymalną prędkością. Stąd w konsoli PC masz najpierw "LED is OFF", a później serię komunikatów o braku odebranych danych. Pewnie po 2 s pojawia się "LED is ON", ale byłeś...
Witam Jaka jest zasada deklaracji PINów w Arduino? Potrzebuję zadeklarować kilka wejść i wyjść, kompilacja dokonuje się bez błędów, natomiast kod się nie wykonuje. Konfiguracja pinów i setup wyglada że są poprawne. Na jakiej podstawie twierdzisz że 'kod się nie wykonuje'? Dla jakiej płyty robisz kompilację, a dla jakiej płyty wykonujesz test(?). Jeżeli...
Trzeba zawartość main skopiować do głównego szkicu w Arduino, resztę plików do tego samego katalogu, doklejane pliki z C otoczyć tak: https://obrazki.elektroda.pl/9538048800_... No oczywiście wtedy Arduino IDE staje się notatnikiem z podświetleniem składni do C, nie zostanie dołączony setup i pętla loop, millis i cała reszta arduinowego...
jak napisać program w arduino powodujący miganie diody 10 razy a następnie kończący działanie? Wstępna ocena dostępnych informacji Przeanalizowałem Twoje pytanie dotyczące napisania programu w Arduino, który spowoduje miganie diody 10 razy, a następnie zakończy działanie. Celem jest stworzenie programu sterującego diodą LED, który wykona określoną...
Uważaj bo jeśli pętla wykonuje się szybko to może być tak że zadziała więcej niż raz i wtedy jest niedobrze. Tak jak pisał kaczakat, żeby nie zapisywać więcej niż raz, dodaj zmienną np. "bylZapis" i fragment wtedy wygląda tak: (...) Nie rozwiązuje to problemu, że zapis czasem może nie wykonać się. Autor pokazał fragment kodu, więc nie wiadomo, czy...
Witam, piszę pracę inżynierską w oparciu o Arduino, ma to być coś na zasadzie wysokościomierza z diodami; mam jednak problem z opóźnieniem pętli. Kawałek kodu: [syntax=c]if (altitude < 300 && altitude >= 200) { digitalWrite(2,HIGH); digitalWrite(3,HIGH); digitalWrite(4,HIGH); digitalWrite(5,LOW); digitalWrite(6,LOW); digitalWrite(7,LOW);...
tutaj [syntax=arduino]float temperature = static_cast<float>(static_cast<... * 10.)) / 10.;[/syntax] masz odczyt temperatury od razu zaokrąglonej do jednego miejsca po przecinku do zmiennej temperature. Presentation wykonuje się raz na początku, potem...
Dokładna wartość 10ms akurat jest mało istotna w moim poście. Chodziło mi to, że jeśli czas co jaki stan sczytywanego wejścia zmienia się znacznie rzadziej niż wynosi okres pętli, to wtedy błąd pomiaru czasu jest nieistotny. Inna rzecz, że do niektórych zadań ważnym jest, by pętla działała względnie taki sam czas w każdym cyklu, a wtedy do 'waita' wrzuca...
zamknięta pętla otwarta pętla pętla magnetyczna
kocio vaillant sterowa tauron licznik dwukierunkowy citizen swift
Technics SA-EH680 C70 – błąd komunikacji magistrali, taśma FFC, naprawa wieży SC-EH680 Szlamówka zablokowana w rurze – jak wyciągnąć, narzędzia fishing, hydro-jet, overshot, jar