Pomocy w napisaniu programu - Wersja do druku +- Arduino Polska Forum (https://forum.arduinopolska.pl) +-- Dział: Korzystanie z Arduino (https://forum.arduinopolska.pl/dzial-korzystanie-z-arduino) +--- Dział: Piaskownica (https://forum.arduinopolska.pl/dzial-piaskownica) +--- Wątek: Pomocy w napisaniu programu (/watek-pomocy-w-napisaniu-programu) Strony:
1
2
|
Pomocy w napisaniu programu - OMK - 20-06-2018 Witam wszystkich. Jak zrobić (napisać) coś takiego: Do pinu x podłączony jest czujnik ruchu a do pinu y żarówka. Chcę aby żarówka się zapalała np. na 5 min jak czujnik wykryje ruch a gasła dopiero jak przez te 5 min. ruchu nie będzie. Dla znającego C i trochę logiki to pewnie pestka a dla kogoś kto nie ma pojęcia to schody nie do przejścia. A nie chciałbym aby program się zatrzymywał na te 5 min. Będę bardzo wdzięczny za te kilka linijek programu. Pozdrawiam Pomocy w napisaniu programu - zbyszko125 - 20-06-2018 W arduino ide masz prosty przykład blink możesz zmodyfikować kod pod czujnik ruchu i żarówkę.pytanie tylko jak chcesz to pokleic ,żarówka jaka, jaki czujnik itd. Wysłane z mojego Redmi Note 4 przy użyciu Tapatalka RE: Pomocy w napisaniu programu - OMK - 20-06-2018 (20-06-2018, 16:21)zbyszko125 napisał(a): W arduino ide masz prosty przykład blink możesz zmodyfikować kod pod czujnik ruchu i żarówkę.pytanie tylko jak chcesz to pokleic ,żarówka jaka, jaki czujnik itd. To bez znaczenia. Czujka ruchu na pinie x robi stan niski lub wysoki. Żarówka sterowana jest przekaźnikiem który ma izolację optyczną od arduino. Blink to nie to. Jak już to coś bardziej "Blink without Delay". RE: Pomocy w napisaniu programu - kaczakat - 20-06-2018 Brawo, a tu jest o tym artykuł. polecam cały kurs: https://forbot.pl/blog/kurs-arduino-ii-wielozadaniowosc-opoznienia-z-millis-id18418 . Pomocy w napisaniu programu - zbyszko125 - 20-06-2018 Kurs Forbota chyba jeden z lepszych a nie wiem czy nie najlepszy. Przekaźniki można zastąpić triakiem wraz z optiotriakiem. Przekaźnik stuka, z czasem się zużyje.triak w zasadzie będzie wieczny. Wysłane z mojego Redmi Note 4 przy użyciu Tapatalka RE: Pomocy w napisaniu programu - OMK - 21-06-2018 Wielkie dzięki. Zaczynam analizować kurs! Jak nie ogarnę tematu mogę liczyć na pomoc i ewentualnie kilka wierszy kodu? Pozdrawiam Pomocy w napisaniu programu - zbyszko125 - 21-06-2018 Warto przebrnąć przez kurs Forbota. Co do układu z triakiem tu masz link do opisu i sxhematu http://elektro--hobby.blogspot.com/2016/03/uklad-wykonawczy-z-triakiem.html?m=1 Wysłane z mojego Redmi Note 4 przy użyciu Tapatalka RE: Pomocy w napisaniu programu - es2 - 21-06-2018 (21-06-2018, 10:01)OMK napisał(a): mogę liczyć na pomoc i ewentualnie kilka wierszy kodu? Pomoc, oczywiście. Umieść kod na forum, z pewnością znajdziesz pomocną dłoń. Jeśli natomiast chce, aby za ciebie napisano program, daj ogłoszenie, napisz jaki czas realizacji za jakie wynagrodzenie. Z pewnością znajda sie chętni. W programie musisz zadeklarować wejście i wyjście. W pętli sprawdzaj czy wejście jest aktywne, jesli tak, zeruj licznik. Licznik zwiększaj co sekunde o jeden. Gdy osiągnie zadany czas, wyłączasz wyjście, jeśli licznik ma mniejszą wartość wyjście uaktywniasz. Na początek liczenie możesz zrobic najprościej jak sie da, czyli Kod: void loop{ RE: Pomocy w napisaniu programu - OMK - 21-06-2018 Pomóżcie mam coś takiego w tej chwili i teraz nie wiem jak zrobić aby jak na "D5" jest LOW to na "D1" przez np. 5 min jest HIGH liczone od ostatniego impulsu LOW na "D5" Wykasowałem swoje wypociny w millis bo niestety nic mi nie udawało się. Wiem że w Blynk jest jakiś timer ale nie potrafię go też użyć . Poprawi mi ktoś fragment od gwiazdki do gwiazdki ? Pozdraawiam ========================================================= #define BLYNK_PRINT Serial #include <ESP8266WiFi.h> #include <BlynkSimpleEsp8266.h> // You should get Auth Token in the Blynk App. // Go to the Project Settings (nut icon). char auth[] = "xxxxxxxxxxxxxxxxxxxx; // Your WiFi credentials. // Set password to "" for open networks. char ssid[] = "YYYYYYYYY"; char pass[] = "12345678"; int val = 0; int val2=0; int onoff=0; unsigned long aktualnyCzas = 0; unsigned long zapamietanyCzas = 0; unsigned long zapamietanyCzas2 = 0; void setup() { // Debug console Serial.begin(9600); //Blynk.begin(auth, ssid, pass); // You can also specify server: Blynk.begin(auth, ssid, pass, "blynk-cloud.com", 8442); pinMode(D1, OUTPUT); pinMode(D5, INPUT); digitalWrite(D2, LOW); digitalWrite(D1, LOW); } void loop() { aktualnyCzas = millis(); Blynk.run(); Blynk.setProperty(V5, "color", "#8AB2FC"); onoff = digitalRead(D5); val = digitalRead(D3); if (val>=1) {(val=255);} Blynk.virtualWrite(V5, val); ************************************************************************************ { if (digitalRead(D5) == LOW) { digitalWrite(D1, HIGH); zapamietanyCzas2 = aktualnyCzas - zapamietanyCzas; } else {digitalWrite(D1, LOW); } if (digitalRead(D5) == HIGH) {zapamietanyCzas = aktualnyCzas;}} ************************************************************************** } RE: Pomocy w napisaniu programu - kaczakat - 22-06-2018 Wywarzasz otwarte drzwi. Wystarczy, że otworzysz przykład z blinkiem bez delay, wywalisz wszystko co jest do migania led, wstawisz w środek zmienną S, którą będziesz zwiększał o 1 (jeśli jest mniejsza równa 300, lub jakaś stała zmienna definiowana, jakbyś chciał sobie szybko zmienić ten czas), zamiast wywalonej zmiany stanu led. Jak zmienna S przekroczy 300 sekund to wyłączasz D1. Włączasz jak odczytasz stan niski (i stan nie był włączony ewentualnie) i zerujesz zmienną S. Wyzerowana S znowu zacznie się zwiększać wewnątrz tego tiku co 1s. Potem sobie doklej resztę z BLINK. |