Liczba postów: 104
Liczba wątków: 30
Dołączył: Dec 2017
Reputacja:
1
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
Liczba postów: 31
Liczba wątków: 2
Dołączył: Apr 2018
Reputacja:
0
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
Liczba postów: 31
Liczba wątków: 2
Dołączył: Apr 2018
Reputacja:
0
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
Liczba postów: 104
Liczba wątków: 30
Dołączył: Dec 2017
Reputacja:
1
Wielkie dzięki. Zaczynam analizować kurs! Jak nie ogarnę tematu mogę liczyć na pomoc i ewentualnie kilka wierszy kodu?
Pozdrawiam
Liczba postów: 856
Liczba wątków: 2
Dołączył: Nov 2017
(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{
licznik++;
Delay( 1000 );
}
Później jednak, lepiej użyc biblioteki "timer" lub funkcji millis ale ta ma mały błąd. Licznik przepełnia się po oo 72 dniach o ile pamiętem.
Liczba postów: 104
Liczba wątków: 30
Dołączył: Dec 2017
Reputacja:
1
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;}}
**************************************************************************
}
Liczba postów: 2,368
Liczba wątków: 0
Dołączył: Oct 2017
Reputacja:
240
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.