03-02-2024, 11:39
Caly program mi dziala oprocz Tego :
chdzi mi o to? ze jesli okres: (hal high + high low , a wiec czas low + czas High)
hal high + hal low > 1000ms wtedy taktout = 1
delay(1200)
a jesli
hal high + hal low <1000ms wtedy taktout = 0
delay(1200)
nie wiem czy to zrozumiale ? mam nadzieje ze tak
Jakby kolega wyzej na posiedzeniu doradzil cos jeszcze , jakos pomogl
bylbym wdzieczny
Hardware jest OK
-------------------------------------------
a ponizej tak jak to teraz jest:
#define capin 25
#define lion 26
#define zas 33
#define lad 23
int hamin = 16;
int hamout = 32;
int hamuj = 0;
#define capout 22
#define hal 15
#define go 18
int stanAktualnyhal, stanPoprzednihal, taktout, golow, gohigh ;
uint32_t teraz, poprzednio, roznica;
void setup()
{
pinMode(lion, INPUT) ;
pinMode(zas, OUTPUT) ;
pinMode(lad, OUTPUT) ;
pinMode(hamout, OUTPUT);
pinMode(hamin, INPUT);
pinMode(capin, INPUT) ;
pinMode (capout, OUTPUT);
pinMode(hal, INPUT) ;
pinMode(go, OUTPUT);
//zmienna stanAktualnyhal ma poczatkowa wartosc 0, sprawdzdamy wstepnie co jest na pinie
stanAktualnyhal= digitalRead(hal);
stanPoprzednihal=stanAktualnyhal;
}
void loop() {
teraz=millis();
//po wejsciu w loop patrzymy na pierwsza zmiane
stanAktualnyhal= digitalRead(hal);
if(stanAktualnyhal == stanPoprzednihal)
{
// stan sie nie zmienil, jesli to potrwa powyzej 100ms to mamy <10Hz
if(( teraz-poprzednio)>500 );
taktout = 0;
}
else
{
if(( teraz-poprzednio)<=500);
taktout = 1;
//stan sie zmienil, zapiszmy czas
poprzednio=teraz;
}
chdzi mi o to? ze jesli okres: (hal high + high low , a wiec czas low + czas High)
hal high + hal low > 1000ms wtedy taktout = 1
delay(1200)
a jesli
hal high + hal low <1000ms wtedy taktout = 0
delay(1200)
nie wiem czy to zrozumiale ? mam nadzieje ze tak
Jakby kolega wyzej na posiedzeniu doradzil cos jeszcze , jakos pomogl
bylbym wdzieczny
Hardware jest OK
-------------------------------------------
a ponizej tak jak to teraz jest:
#define capin 25
#define lion 26
#define zas 33
#define lad 23
int hamin = 16;
int hamout = 32;
int hamuj = 0;
#define capout 22
#define hal 15
#define go 18
int stanAktualnyhal, stanPoprzednihal, taktout, golow, gohigh ;
uint32_t teraz, poprzednio, roznica;
void setup()
{
pinMode(lion, INPUT) ;
pinMode(zas, OUTPUT) ;
pinMode(lad, OUTPUT) ;
pinMode(hamout, OUTPUT);
pinMode(hamin, INPUT);
pinMode(capin, INPUT) ;
pinMode (capout, OUTPUT);
pinMode(hal, INPUT) ;
pinMode(go, OUTPUT);
//zmienna stanAktualnyhal ma poczatkowa wartosc 0, sprawdzdamy wstepnie co jest na pinie
stanAktualnyhal= digitalRead(hal);
stanPoprzednihal=stanAktualnyhal;
}
void loop() {
teraz=millis();
//po wejsciu w loop patrzymy na pierwsza zmiane
stanAktualnyhal= digitalRead(hal);
if(stanAktualnyhal == stanPoprzednihal)
{
// stan sie nie zmienil, jesli to potrwa powyzej 100ms to mamy <10Hz
if(( teraz-poprzednio)>500 );
taktout = 0;
}
else
{
if(( teraz-poprzednio)<=500);
taktout = 1;
//stan sie zmienil, zapiszmy czas
poprzednio=teraz;
}