Nie znam Arduino ale chyba tak: 1: while (digitalRead(kontaktron)); 5: while (!digitalRead(kontaktron));
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...
Można wykorzystać bibliotekę "OneButton". Przykład: [url=https://www.mathertel.de/Arduino/On... albo funkcję millis(): [syntax=arduino]while (button not pressed) {} long start = millis () ; while (button pressed) {} long time_on = millis () - start ; if (time_on < 3000) { // pressed for up to 3 sec } else if (time_on < 5000)...
https://obrazki.elektroda.pl/9235682700_... Przedstawię tutaj poprawki, uruchomienie i rozwinięcie biblioteki ArduinoHttpServer na platformie Arduino R4 WiFi. Celem tematu będzie ułatwienie nam operacji związanych z protokołem HTTP, a dokładniej parsowania żądań HTTP (przetworzenie nagłówka, ścieżki zasobu oraz argumentów GET) oraz...
Zakupiłem ostatnio 2 wyświetlacze na sterowniku ST7789. Po przeczytaniu krótkiego poradnika podłączyłem wyświetlacz i użyłem prawidłowej biblioteki. Po wgraniu testowego szkicu na Arduino Nano wyświetlacz pokazał bardzo blady i nieprawidłowy obraz. Myślałem, że egzemplarz, który kupiłem, jest wadliwy, lecz gdy kliknąłem przycisk "reset" na Arduino,...
Deklarujesz zmienną jako globalną volatile.
Obawiam się, że masz nieskończoną pętle przy while (bt == 'z')
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 <<...
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]
Odtwarzać plik dopóki w buforze znajduje się "p" używając while?
Oczywiście dotyczy to mikrokontrolerów AVR. Bitwait możesz zasymulować prostą pętlą: while (PINB & (1<<PINB0)); czeka, aż B0 otrzyma wartość 0; wtedy przejdzie dalej. while ((PINB & (1<<PINB0)) ==0); czeka, aż B0 otrzyma wartość 1; wtedy przejdzie dalej.
Niestety kod działa w taki sposób, że zapalają się wszystkie zadeklarowane LEDy, a nie jedna po drugiej (oczywiście migają). Wszystko się zgadza. Tak, właśnie napisałeś kod :) Musiałbyś w pętli loop obsługiwać dwie dodatkowe zmienne, które wskazują na konkretny kolumnę i rząd dla leda, która ma się zapalić, a po 500ms zgasnąć - te zmienne musiałaby...
Koledzy wracając do tematu jest ktoś w stanie podpowiedzieć czemu może się tak dziać że String "dane" jest pusty jak tylko użyję funkcji " do... while" ?
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...
ten kod [syntax=c]while(digitalRead(P1)==LOW); //sprawia, że pomimo trzymania przycisku wcisnietego zmiana nastapi tylko raz { delay(10); }[/syntax] nie różni się niczym od [syntax=c]while(digitalRead(P1)==LOW); //sprawia, że pomimo trzymania przycisku wcisnietego zmiana nastapi tylko raz delay(10);[/syntax] Nie wiem czy taki miałeś zamiar (średnik...
Loop jest wykonywane raz po resecie procka Jesteś pewny?? Nie. Można w loop dać: [syntax=c] while( 1 ) { } [/syntax] ale nie popadajmy w skrajności.
if( jeżeli ma coś po przecinku while( dopóki ostatni znak to '0' remove usuń ostatni znak
Witam. Mam problem z zakupionym ostatnio na cele budowy drukarki 3d zestawem ArduinoMEGA2560 v3. Płytka jest klonem a w zasadzie podróbką (nie powinna się nazywać Arduino). Niemniej jednak po podłączeniu do komputera daje się zainstalować ze steronikami ze środowiska Arduino i widoczna jest w systemie. Początkowo wgrany był do niej chyba jakiś program...
Masz poniżej fragment kodu w c, 6x ustawia stan wysoki i niski z 0,5s opóźnieniem na portcie B, potem przez nieskończoność nie robi nic. Ale przecież ustawienie pinu i programowego opóźnienia to jest najłatwiejsza rzecz jaką można zrobić z mikrokontrolerem... [syntax=c]DDRB = 0xFF; PORTB = 0xFF; _delay_ms(500); PORTB = 0x00; _delay_ms(500); PORTB =...
Mój szkic nie działa Rozwiń tą wypowiedź. Dodano po 4 Nie masz żadnych instrukcji do wykonania w funkcji while.
(at)Gienek Na początek sprawdź, co konkretnie zwraca WiFi.status() w pętli while(). https://arduino-esp8266.readthedocs.io/e...
Nie wytłumaczyłeś dokładnie co twój program ma robić więc ja zrozumiałem po swojemu a jeśli tak to totalnie bez sensu jest odczyt tych danych. Spróbuj tak: [syntax=c]void loop() { Serial.println("Podaj x/10, barbot ma nalac z 1 butelki"); while (!Serial.available()); wlej(7, Serial.read()); Serial.println("Podaj x/10 z drugiej butelki"); while (!Serial.available());...
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,...
(at)Lucek20 Spróbuj nieco zmodyfikowaną wersję kodu (fragment z postu #1):[syntax=c]char c; while (Serial.available()) { c = Serial.read(); altSerial.write(c); // zmiana } altSerial.flushOutput(); // dodatkowa komenda[/syntax]
[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]
Witam. while( warunek, drugie naciśnięcie klawisza )
Może tak?: while(BluetoothDane=='s' && !(BlutoothDane=='d'))
A jak dodasz oczekiwanie na puszczenie klawisza to może pomoże. [syntax=c]if(klawisz) { ... while(klawisz); }[/syntax]
O wstawianiu komunikatów dioagnostycznych już pisałem. Dlaczego tego nie robisz? Ja tego napewno nie zrobię. Arduino nie ma debugera, musisz więc kombinować. Wstaw w pętli [syntax=c] while(true){ obrotLewo(); } [/syntax] za "obrotLewo();" wysyłanie informacji na port szeregowy. Zobaczysz, czy przogram wychodzi z funkcji "obrotLewo()". PS Podpowiedź:...
Chciałbym, żeby kod poczekał na puszczenie przycisku i dopiero zezwolił na kolejną akcję. Trochę niezrozumiały opis. Mógłbyś wyszczególnić w punktach jak ma reagować na przycik? Z kodu widzę: Naciśnięcie przycisku włącza zgrzewarkę na zadany czas. Chodzi ci oto aby czekał na zwolnienie przycisku? Funkcja while( przycisk naciśnięty); while(digitalRead(7)...
Pewnie można, ale miało być jak "switch", czyli te if (bez else) trzeba by w "do {} while (0)" wsadzić, żeby brake działało.
dobra, juz wszystko ogarnałem. Wystarczy to zrobic za pomocą pętli while plus polecenia Serial.parseInt()
Witam. Wiadomosc kieruje do kol. MiG25 [syntax=c]// dodanie DATY I CZASU od 02.05.2020 aby PVMONITOR przyjmowal dane #include <NTPClient.h> #include <WiFiUdp.h> // Define NTP Client to get time WiFiUDP ntpUDP; NTPClient timeClient(ntpUDP, "ntp.itl.waw.pl", 3600, 3600); //NTPClient timeClient(ntpUDP, "tempus2.gum.gov.pl", 3600, 3600); //...
Dla rozpoczynających to arduino nie jest złe bo nie trzeba walczyć z konfiguracją peryferiów i wczytywać sie datasheet (po to zresztą arduino stworzono chyba). Tak wogóle to arduino to jest C /C++ oraz arduino API. Przecież gdzieś pod maską arduino jest main() i wywołanie funckji setup() oraz w pętli while funkcji loop(). Zatem pisząc w arduino ćwiczymy...
To czemu kilka linijek wcześniej działa? Bo wcześniej jest kod, który sprawia że program działa inaczej niż oczekujesz. Na przykład będą while z której nigdy program nie wychodzi.
Sprawdź czy zadziała [syntax=c]int IRpin=7; int LED = 10; //boolean stan=0; void setup() { Serial.begin(9600); pinMode (IRpin, INPUT); pinMode (LED, OUTPUT); } void loop() { if (digitalRead(IRpin) == LOW) { delay (20); //stan=!stan; digitalWrite(LED, HIGH) ; delay(500); digitalWrite(LED, LOW) ; while (digitalRead(IRpin)==LOW) ; delay(20); } }[/syntax]...
Arduino Core jest zaprojektowane z myślą o łatwości programowania i używania, co może prowadzić do pojawienia się złych praktyk programistycznych, takich jak nadużywanie pętli while lub for. Wyjaśnij, dlaczego nadużywanie pętli while lub for jest złą praktyką programistyczną? Nie rozumiem tego stwierdzenia.
Możesz mieć tylko jedną funkcję loop(), to jest funkcja główna, pełniąca podobną rolę jak funkcja main() w klasycznym C++. Pętle możesz sobie używać normalne (for, while, do while) wewnątrz tej funkcji.
Wrzucajcie proszę kod w znacznikach "code" (do wyboru z menu edytora postu). To już drugi w tym tygodniu który zlewa się z tekstem posta. //Sprawdzenie wciśnięcia przycisku otwierania/zamykania furtki void KontrolaPrzycisku () {if (digitalRead(OpenCloseFurtkaButt... == LOW) {delay(50); while(digitalRead(OpenCloseFurtk...
Może być opóźnienie kilku sekund :P ważne abym mógł coś odebrać na arduino, cokolwiek ;P Dodano po 14 W pliku index.php umieściłem linijkę: $file = file_get_contents("http://192.168.0.110/... http://obrazki.elektroda.pl/2142666200_1... Po drugie w arduino: [syntax=c] while (client.connected()) { if (client.available())...
Nie przerwiesz pętli for, while, do while jeśli nie będziesz w każdym obiegu pętli sprawdzał stanu, który ma to przerwać. Ta część: if (irrecv.decode(&results)){ long int decCode = results.value; się nie wykona w żadnej takiej pętli. Musiałbyś obsługę tego przenieść w przerwanie, czyli cyklicznie co np. 10ms sprawdzać stan (irrecv.decode(&results),...
Witam. Pracuję nad projektem latarki rowerowej na Arduino. Latarka świeci gdy jest ciemno i za pomocą przycisku wybieram tryb świecenia. Utknąłem na sposobie automatycznego włączania gdy zrobi się ciemno. Jako czujnik używam fototranzystora. Jak to obsłużyć w programie? Chyba powinno się w przerwaniu z ADC odczytywać napięcie z tego czujnika. Nie wiem...
Zamiast "client.print("kod html");" użyj "client.print(PSTR("kod html"));" To jest dla starego kompilatora, ale jeśli twój program daje się łatwo skompilować, to pewnie taki właśnie masz. W pliku "ETHER_28j60.h": [syntax=c] void print(const char* text); //dodajesz tą linię między "void print(char* text);" i "void print(int value);" [/syntax] W pliku...
Może masz niewłaściwy bootloader wgrany. Ze strony Arduino: "NOTE: We have updated the Nano board with a fresh bootloader. Boards sold by us from January 2018 have this new bootloader, while boards manufactured before that date have the old bootloader. First, check that Tools > Board > Boards Manager shows you have the Arduino AVR Boards 1.16.21 or...
while(N_kon == LOW) Czyli nie będzie pracować, ponieważ N_kon jest w stanie HIGH, a warunek (N_kon == LOW) równy jest false . Wyjaśnienie masz już w moim poprzednim poście. https://en.cppreference.com/w/cpp/langua...
Hej, Próbuje zbudować urzadzenie, które znalazłem w internecie. Pomysł opiera się na stworzeniu zestawu urządzeń LED, które użytkownicy muszą dezaktywować za pomocą czujnika zbliżeniowego tcrt5000. Po dezaktywacji jednego urządzenia, inne urządzenia losowo zostają aktywowane, zapalając diody LED jedno po drugim. Chciałbym was podpytać o pare rzeczy...
W pętli while sprawdzenie stanu pinu ?
W funkcji imieniny () nie sprawdzasz poprawności argumentów wejściowych miesiac oraz dzień np. kiedy zotanie podany 30 luty. W takiej sytuacji plik zostanie otwarty i odczytany z karty, a funkcja imieniny () zwróci losowy ciąg znaków, a plik "imieniny.txt" na karcie nie zostanie zamknięty . Kompilator generuje ostrzeżenie:[syntax=bash]../Arduino/sket...
Tam są dwie funkcje: void _delay_ms (double __ms) void _delay_us (double __us) A Twój demo program jest napisany dla arduino. Arduino ma zaimplementowane delay: void delay(unsigned long ms) { uint32_t start = micros(); while (ms > 0) { yield(); while ( ms > 0 && (micros() - start) >= 1000) { ms--; start += 1000; } } } Co i tak nie rozwiązuje problemu...
Witam Podałem przykład.... :) [syntax=c]while( I1=0 & I3=0 & I5=1)[/syntax] Arduino tego nie łyka chyba że w nawiasie pokopałem coś ze składnią. Wszystkie przykłady jakie znalazłem pokazują tylko jeden warunek w nawiasie. Pozdrawiam ROZWIĄZANO :) doszedłem metodą prób i błędów, że każdy z warunków musi być w osobnym nawiasie, wtedy się kompiluje poprawnie,...
[syntax=c] else { lcd.print("Sensor missing"); while (1) {} }[/syntax] Zapewne zatrzymuje się na tej pętli .
jak w pewny sposób odczytać stan przycisku i zamienić to w działanie bistabilne w Arduino. Nie można użyć przerwań. Aby odczytać stan przycisku i skonstruować działanie bistabilne w Arduino, możesz wykorzystać pętlę while i zmienne. Pierwszym krokiem jest zadeklarowanie zmiennych. W przykładzie poniżej użyjemy zmiennej 'stanPrzycisku', aby przechowywać...
Zmień pętlę główną na: Dodano po 6 Jeszcze kilka drobnych poprawek. Tak powinno już działać: [syntax=c]void setup() { pinMode(8, OUTPUT); //pompka jako wyjście pinMode(7, INPUT_PULLUP);//Czujnik pomiaru jako włacznik digitalWrite(8, LOW); //Wyłączenie pompki } #define MAX_CZAS_DEBOUNCINGU (20UL) int odczytCzujnika() { static int dlugoterminowyStanCzujnika...
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_...
To jest program pierwszy który działał do tej pory bez zarzutów ale są te nieszczęsne delay() i nie mogłem zastosować WDT do resetu bo przekracza 8 Sek. Skoro działa bez zarzutu, a chciałby zastosować WDT, to możesz użyć własnej wersji funkcji delay(): [syntax=c]void myDelay(unsigned long ms) { uint32_t start = micros(); while (ms > 0) { wdt_reset();...
Przy tym programie nie ma to najmniejszego sensu. [syntax=c] prevmilis = millis(); while(millis() - prevmillis < delay);[/syntax]
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
Alarm.delay() przyjmuje jako argument liczbę milisekund . Gdzie w powyższym kodzie jest te 15 minut? Ponadto do czego służy poniższa funkcja? rinsingdelay powinna być typu unsigned long . Generalnie Alarm.delay() jako argument wejściowy przyjmuje unsigned long.
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ś...
Nie mam pod ręką Arduino, żeby spróbować, więc przerobiłem program tak, by móc przetestować jego działanie pod Linux-em bez Arduino - i działa. Przy zdefiniowanym symbolu ARDUINO kompilują się te elementy, które są dla Arduino; bez niego te, które są do Linux-a. [syntax=c]#ifdef ARDUINO #include <TM1637Display.h> #define ZEGAR A5 #define DANE...
[syntax=c]char a[5000]; int main(void) { while(1) { printf("%c", a[1]);[/syntax] i juz masz errora SeverityCodeDescriptionProjectFileLine Error Program Memory Usage :406 bytes 2.5 % Full Data Memory Usage :5012 bytes 489.5 % Full(Memory Overflow)read_dataread_data0
Spróbuj nieco zmodyfikowanej funkcji serialEvent(): [syntax=c] void serialEvent() { while (Serial.available()) { char inChar = Serial.read(); if (inChar != '\n') inputString += inChar; else { stringComplete = true; const char Display_string[12] = "Staly tekst"; FTImpl.DLStart(); FTImpl.ColorRGB(0xFF, 0xFF, 0xFF); FTImpl.Cmd_Text(FT_DISPLAYWIDTH / 2,...
Po weekendzie poza domem w końcu mam czas dla siebie. (at)mocnyamper sprawdziłem to wgrywając taki oto kod do Arduino uno: [syntax=c] #include <IRremote.h> IRsend irsend; void setup() { } void loop() { while(true) { irsend.sendSony(0xa90, 12); delay(40); } } [/syntax] i odbiornik cały czas wykrywa sygnał(działa). Oczywiście jestem ograniczony...
No to akurat Cię cofnęło do etapu kompilacji, to już zupełnie inny błąd. Zrób restart programu, Windowsa, a ewentualnie instalacja na nowo. O ile w międzyczasie nic nie zmieniałeś w programie. No można jeszcze spróbować skompilować dla np. Leonardo czy DUE i potem wrócić do Pro mini. A main sugeruje, że wziąłeś program z Eclipse i dokleiłeś go do Arduino,...
[syntax=c]Serial.print("AT+CMGF=0\r"); Serial.print("AT+CMGS=18\r"); while(1) { if(Serial.available()) { Serial.write(Serial.read()); } }[/syntax]
...Twój kod ma jedną szczególną cechę: po naciśnięciu klawisza (analogRead(A0) > 1000), a następnie puszczeniu, jeżeli wystąpi wartość równa lub większa niż 500 (w wypadku przycisku pojemnościowego może się to zdarzyć), to ponowne naciśnięcie przycisku nie wywoła żadnej reakcji.... Tak to prawda - ale założyłem, że przycisk autora działa tak jak...
Spróbuj ten kod /* Ver. 1.02 - 2020-03-29 Kod emulujący kierownicę Thrustmaster TMX Pro, umożliwiający podłączenie Arduino do bazy TMX Pro i emulację naciśnięć przycisków. */ #include <Arduino.h> byte wheelState[8]; // Stan przycisków volatile byte next_byte; volatile byte next_byte_idx; // Zmienne do debouncingu byte lastState[2] = {0xFF, 0xFF};...
[syntax=c]#include <SoftwareSerial.h> SoftwareSerial mySerial(4, 2); String odpowiedz = "OK"; String command = ""; void setup() { Serial.begin(9600); Serial.println("Wpisz komende AT"); mySerial.begin(9600); } void loop() { if (mySerial.available()) { while(mySerial.available()) { command += char(mySerial.read()); } //Serial.print(command); if(command.equals(odpowiedz))...
Zamiast: if(value >= 50 && stan == 1) pisz: while(!(value >= 50 && stan == 1)); w następnych if(...) również.
Prawdopodobnie nie został zainstalowany driver USB z emulacją COM: Installing drivers for the Arduino Uno with Windows7, Vista, or XP: Plug in your board and wait for Windows to begin it's driver installation process. After a few moments, the process will fail, despite its best efforts Click on the Start Menu, and open up the Control Panel. While in...
Spr u buję pomóc, choć przynajmniej w tym poście - pytająco: 1. Dlaczego piny które nie są rekonfigurowane w trakcie pracy zamiast w setup() konfigurowane są wielokrotnie w loop()? (wywołania pinMode() ) 2. Jaki cel mają puste pętle " while (...) {} "? Zasadniczo psuje to wzorzec narzucony przez Arduino. Słuszną drogą jest bieżące i cykliczne sprawdzanie...
Witam, próbuję nawiązać komunikacje Wemos d1 mini i Arduino Pro Mini poprzez bibliotekę WiFiesp.h, w tym celu pobrałem przykładowe użycie biblioteki i przy próbie wgrania w Arduino IDE wyświetla się błąd. W czym tkwi problem? Czy mogę w SoftwareSerial użyć pinów analogowych? Czy wemosa mam podłączyć bezpośrednio do USB czy może do zasilania Arduino?...
Mam problem z SIM800L nie działa, nie wysyła sms, nie odbiera, nic nie robi tylko miga w czym może być problem? https://obrazki.elektroda.pl/6647698500_... SCHEMAT https://obrazki.elektroda.pl/2045588000_... KOD #include <SoftwareSerial.h> SoftwareSerial gsm(2, 3); // Piny 2 i 3 do komunikacji z SIMxxx...
Jak to zrozumiesz to sobie sam napiszesz :) [syntax=c] long odliczanie = 0; // zmienna long do zapisania czasu pojawienia się '1' void setup() { Serial.begin(9600); // komunikacja serial baudrate 9600 } void loop() { if (Serial.available()){ // jesli ktoś coś wklepał w serial monitorze char p = Serial.read(); // odczytaj to co wklepał i zapisz jako...
Nie używaj tego while(1), zwłaszcza wewnątrz instrukcji warunkowych bo to zapętli program, jak kolega (at)tzok napisał. Chyba, ze w pętli while(1) bedzie break :-)
Posiadam arduino leonardo, chcę je przesterować tak aby po wciśnięciu przycisku na pilocie wysyłało by sygnał o stanie wysokim,.np na pin 13.Próbowałem tego dokonać na podstawie różnych programów które inni pisali lecz wyskakują mi błędy.Proszę o pomoc i wyrozumiałość :D Oto przykład: [syntax=c] #include <IRremote.h> #define MAX_TIME 150 #define...
Problem jest taki, że diody "pokazują" dźwięk z 3-4 sekundowym opóźnieniem. Na początek przełóż strip.show(); za wewnętrzną pętlę for. Nie ma po prostu sensu wielokrotnie wywoływać przesył (który swoje trwa) dla jednej wartości height. A w pętli zostaną tylko mało czasochłonne operacje wpisu do tablicy w RAM (setPixelColor). Operacje w pętli loop,...
Ja tydzień walczyłem aby podłączyć i zaktualizować onieważ zarówno pin RX0, jak i TX0 mają po 5V. A ile mają mieć Kolego? http://obrazki.elektroda.pl/1489350100_1... Problemem arduinowców jest odporność na wiedzę, przekazywaną w postaci pisma a nie filmów i animowanycg gifów oraz umiłowanie do schematów obrazkowych. Czy naprawdę trzeba...
Na początek zmodyfikuj pętlę while(), jak poniżej:[syntax=c]while (true) { if (readResult = SP->ReadData(incomingData, dataLength)) { printf("Bytes read: %i\n", readResult); incomingData[readResult] = 0; printf("%s", incomingData); } }[/syntax]
Hello, I signed up your site for this topic. Thank you for your work. I uploaded the source code to arduino nano. I connected pins 0 and 1 to the tx and rx inputs on the mini iso. But it didn't work. Radio does not switch to cd changer mode. I wanted to build a prototype with Arduino and then build the circuit. Model number of the radio: bp2347 4 6064480...
Pewnie jest istotne, jaki jest 'channel' - włączasz dodatkowe nuty tylko dla channel=1, a wyłączasz niezależnie od kanału - jak po wyłączeniu powtarzania puścisz klawisz w innym kanale, to skasujesz informację, że coś miało być wyłączane. Poza tym, w 'C' tablice indeksuje się od 0, więc w MyHandleNoteOn najpierw wpisuj do tablicy, potem zwiększaj indeks,...
Najpierw jak wspomniałem zamiast brać się za kod, postaraj sobie zaprojektować jakiś protokolik komunikacji. Mogę tutaj napisać jakiś kod - ale zapewne nie będzie on optymalny dla twojego rozwiązania. Protokół komunikacji do wysyłania string i odbioru przedstawiłem w temacie bo tyle udało mi się jedynie przesłać. W sensie wysyłaniem liter sterowałem...
Witam, Tematu nie dodałem do arduino ze względu problemu z modułem a nie arduino. Świeżo odebrałem paczkę z chin, więc otwieram moduł podłączyłem głupi ja pod 5v. I pyk nie działało, później znalazłem datasheet i tam że działa od 3,4 do 4,2. Teraz podłączyłem pod zasilacz. I mi fajnie dioda mruga co ok 0,6s. Ale moduł nie reaguje. Włączam go i wyłączam....
Witam, Zaczynam przygode z komunikacją GSM. Zdecydowałam się na moduł GSM sim 800l z antena, taki jak na aukcji: https://diolut.pl/modul-gsm-gprs-sms-sim... Po podłączeniu do arduino mega oraz po zalogowaniu się modułu do sieci, komunikuje się z modułem za pomocą komend AT. Niestety, przy wpisywaniu komendy mającej wysłać smsa pod...
Kod na ESP [syntax=c]#include <Wire.h> #include <LiquidCrystal_I2C.h> const int hallSensorPin = 4; // GPIO4 (D2 na ESP8266) const unsigned long sampleTime = 1000; const int maxRPM = 1260; int rpmMaximum = 0; LiquidCrystal_I2C lcd(0x27, 16, 2); void setup() { lcd.begin(); pinMode(hallSensorPin, INPUT_PULLUP); Serial.begin(115200); lcd.backlight();...
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 <<...
Poprawiłem pewność działania przycisku OSD On/Off, okazało się to banalnie proste :D; https://filmy.elektroda.pl/33_1678778711... I są lekkie prześwity białego przy wyłączeniu OSD, to chyba nie powinno być uciążliwe. Dwie bramki 74HC86 są niewykorzystane, więc może spróbuję ich użyć do opóźnienia sygnałów synchronizacji (trzeba będzie "podnieść" HC86...
Pominąłeś kawałek kodu z obsługa przepełnienia kolejki i nie obsługujesz resetowania FIFO: [syntax=c] if ((mpuIntStatus & 0x10) || fifoCount == 1024) { mpu.resetFIFO(); Serial.println(F("FIFO overflow!")); } else if (mpuIntStatus & 0x02) { while (fifoCount < packetSize) fifoCount = mpu.getFIFOCount();[/syntax] Pozdrawiam GREGOR
[syntax=cpp]void loop() { licznik=0; startCzas=millis()+1000; // końcowy czas odliczania while(millis()<startCzas) if(digitalRead(2)==LOW) ++licznik; Serial.println("czas: "+czas); Serial.println("licznik: "+licznik); }[/syntax]
Mam nadzieję, że taki schemat wystarczy i będzie czytelny. https://obrazki.elektroda.pl/8958719100_... Spróbuję połączyć się szeregowo z modułem i sprawdzę czy poprawnie reaguje na komendy AT. [syntax=c] #include <SoftwareSerial.h> SoftwareSerial gsm(11, 12); // Piny 11 i 12 do komunikacji z SIMxxx String atCommand; void setup()...
Jestem trochę świeży z Arduino, trochę pamiętam na temat przerwań i timerów z programowania Atmegi8 w C. Czy chodzi mniej wiecej o coś takiego: Jeden timer to ten "twój" zw ze sprzętem, a jakiś inny wyznaczający równo tykające "zdarzenie". jedno zdarzenie (przerwanie) ustawia pewne stany, drugie analizuje i wykonuje. Pewien rodzaj "super mikro systemu...
Nie trzeba tego robić z arduino, wszystkie nagłówki i biblioteki są tam. Musiałbyś stworzyć plik makefile, a także dostosować beken HAL. Btw, znalazłem ciekawą funkcję w źródle, może jest przenośna na openbeken (dla ds18b20/dht)? void delayMicroseconds(uint32_t us) { uint64_t m = (uint64_t)rtos_get_time_us(&... if(us){...
Na wstępie napiszę: korzystam z arduino mega, konwertera RS232 TTL- RS485 i modułu W5100 dla arduino, zaznaczam, że swoje doświadczenia opieram na arduino, języku programowania c++, czy wirring...tak to się nazywa w środowisku IDE? Nie jestem też z zawodu programistą, więc jakieś złośliwe komentarze proszę sobie darować, natomiast konstruktywne uwagi...
Przypominam że arduino to nie język, tylko zbiór bibliotek c++ ;) [syntax=c] int main() { setup(); while(1) { loop(); ... } } [/syntax] Oczywiście biblioteki te nawet się nie otarły o optymalizację i "pomryganie" ledem zajmuje 1kB, I2C niby używa buforów ale i tak jest to pooling, a "hello world" przez uarta to ok. 2kB (tymczasem w C 442 bajty - z buforami...
https://obrazki.elektroda.pl/2408248100_... https://obrazki.elektroda.pl/4414580400_... [syntax=c][/syntax]
Trochę metodą prób i błędów ale błędów podczas kompilacji nie było żadnych. ... wstaw se na początku kodu while(1) { } i też błędów kompilacji nie będzie żadnych... :)
. Problem pojawia się na każdym pilocie, Piny: 0 i 1 (PD0 i PD1) są te same Rx i Tx co służą do komunikacji z komputerem zarówno podczas wpisywania programu jak i później dla komunikacji w serial monitor; raczej więc unikaj coś do nich podłączac, chyba że jesteś w desperacji braku pinów. Ostatnia rzecz, dla której możesz poświęcic nieco uwagi to salut...
Kłopotem jest biblioteka Wire.h. Niestety zawiera ona błąd(niedociągnięcie). Gdy dochodzi do momenty gdzie czeka na sygnał i go nie dostaje to wisi w pętli while(). Sprawdź połączenie na kablach. Dodano po 1 (at)ICEMANIK czy używasz płytki Arduino Mega2560 czy czegoś mniejszego?
Dziękuje bardzo. Musiałem przerobić program pod bibliotekę UIPEthernet(delikatne zmiany),ale już jest ok. Chyba za wczesnie zamknalem transmisje przy odbiorze. W kazdym badz razie juz dziala. Dla potomnych: [syntax=c] #include <UIPEthernet.h> byte mac[] = { 0xDE, 0xAD, 0xBE, 0xEF, 0xFE, 0xED }; IPAddress serwer(192,168,8,253); IPAddress ip(192,...
Kod wygląda tak: [syntax=arduino] #include <LiquidCrystal.h> #include <EEPROM.h> LiquidCrystal lcd(12,11,5,4,3,2); #define CLICK1 6 #define CLICK2 7 #define LED1 9 // czerwona dioda #define LED2 10 // zielona dioda void setup() { Serial.begin(9600); pinMode(LED1, OUTPUT); pinMode(LED2, OUTPUT); pinMode(CLICK1, INPUT_PULLUP); pinMode(CLICK2,...
while atmel instrukcja while petla while
tuleja głowicy seicento klema uszczelniacze zaworowe
wyłacznik selektywny wyłacznik selektywny
Realtek RTL8188ETV - Jak ponownie włączyć adapter? Kondensatory w sprzęcie elektronicznym po zalaniu fekaliami – czy wymiana jest konieczna?