podmínky

Wiring, C++, C, Java, ...
Pravidla fóra
Toto subfórum slouží k řešení obecných otázek kolem programování (konstrukce, knihovny, alokace paměti, ...)
Odpovědět
paclikc
Příspěvky: 3
Registrován: 14 dub 2019, 12:35
Reputation: 0

podmínky

Příspěvek od paclikc » 14 dub 2019, 12:46

Dobrý den.

nedaří se mi zprovoznit základní zápis "if"

Kód: Vybrat vše


int s_dest_cerpadlo = 22; //nastavení promenných
int d_dest_cerpadlo = 23;
int h_dest_cerpadlo = 24;
int s_akumulace = 25;
int d_akumulace = 26;
int h_akumulace = 27;
int s_studna = 28;
int d_studna = 29;
int h_studna = 30;
int hhhhhhhh = 31;
int cerpadlo_jimka = 50;
int xxxx = 51;
int cerpadlo_dest = 52;
int cerpadlo_studna = 53;


void setup(){ 
  pinMode(s_dest_cerpadlo, INPUT_PULLUP);//nastaví s_dest_cerpadlo jako vstup
  pinMode(d_dest_cerpadlo, INPUT_PULLUP);
  pinMode(h_dest_cerpadlo, INPUT_PULLUP);
  pinMode(s_akumulace, INPUT_PULLUP);
  pinMode(d_akumulace, INPUT_PULLUP);
  pinMode(h_akumulace, INPUT_PULLUP);
  pinMode(s_studna, INPUT_PULLUP);
  pinMode(d_studna, INPUT_PULLUP);
  pinMode(h_studna, INPUT_PULLUP);
  pinMode(cerpadlo_jimka, OUTPUT);
  pinMode(xxxx, OUTPUT);
  pinMode(cerpadlo_dest, OUTPUT);
  pinMode(cerpadlo_studna, OUTPUT);
  
}

void loop(){
  if ((h_dest_cerpadlo == HIGH) && (d_dest_cerpadlo == HIGH))
  
  digitalWrite(cerpadlo_dest, HIGH);


   else { 
   
       digitalWrite(cerpadlo_dest, LOW);

      }
  }
nemužu přijít na to kde dělám v zápise chybu :(

díky za reakce

martinius96
Příspěvky: 381
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: podmínky

Příspěvek od martinius96 » 14 dub 2019, 13:33

oprava:
if sa ti splní vždy, keďže vstupy, ktoré overuješ sú input pullup, teda sú HIGH a nerobíš nové merania, ktoré by zmenili stav vstupu
Naposledy upravil(a) martinius96 dne 14 dub 2019, 13:56, celkem upraveno 1 x.
Portfólio realizovaných projektov: https://arduino.php5.sk
Nové projekty netvorím!

paclikc
Příspěvky: 3
Registrován: 14 dub 2019, 12:35
Reputation: 0

Re: podmínky

Příspěvek od paclikc » 14 dub 2019, 13:50

Díky za reakci.

IDE to přeloží bez problémů.

Jen při testech to nedělá co má, PULLUP by neměl vadit když spojím pin s GND mam LOW? Pokud jsem to pochopil dobře.

Nerozumím poznámce o novém měření, to se neprovede při každém průchodu LOOP? :?:

Riso
Příspěvky: 27
Registrován: 24 srp 2018, 15:36
Reputation: 0

Re: podmínky

Příspěvek od Riso » 14 dub 2019, 13:53

Skús to takto.

Kód: Vybrat vše


int s_dest_cerpadlo = 22; //nastavení promenných
int d_dest_cerpadlo = 23;
int h_dest_cerpadlo = 24;
int s_akumulace = 25;
int d_akumulace = 26;
int h_akumulace = 27;
int s_studna = 28;
int d_studna = 29;
int h_studna = 30;
int hhhhhhhh = 31;
int cerpadlo_jimka = 50;
int xxxx = 51;
int cerpadlo_dest = 52;
int cerpadlo_studna = 53;


void setup(){ 
  pinMode(s_dest_cerpadlo, INPUT_PULLUP);//nastaví s_dest_cerpadlo jako vstup
  pinMode(d_dest_cerpadlo, INPUT_PULLUP);
  pinMode(h_dest_cerpadlo, INPUT_PULLUP);
  pinMode(s_akumulace, INPUT_PULLUP);
  pinMode(d_akumulace, INPUT_PULLUP);
  pinMode(h_akumulace, INPUT_PULLUP);
  pinMode(s_studna, INPUT_PULLUP);
  pinMode(d_studna, INPUT_PULLUP);
  pinMode(h_studna, INPUT_PULLUP);
  pinMode(cerpadlo_jimka, OUTPUT);
  pinMode(xxxx, OUTPUT);
  pinMode(cerpadlo_dest, OUTPUT);
  pinMode(cerpadlo_studna, OUTPUT);
  
}

void loop(){
  if (digitalRead(h_dest_cerpadlo) && digitalRead(d_dest_cerpadlo))
    digitalWrite(cerpadlo_dest, HIGH);

  else 
    digitalWrite(cerpadlo_dest, LOW);
  }

martinius96
Příspěvky: 381
Registrován: 01 srp 2017, 19:29
Reputation: 0
Bydliště: Poprad
Kontaktovat uživatele:

Re: podmínky

Příspěvek od martinius96 » 14 dub 2019, 13:55

Nerobíš merania cez digitalRead() funkciu. To je problém. Riso to napísal správne, takto ti to bude fungovať.
Portfólio realizovaných projektov: https://arduino.php5.sk
Nové projekty netvorím!

paclikc
Příspěvky: 3
Registrován: 14 dub 2019, 12:35
Reputation: 0

Re: podmínky

Příspěvek od paclikc » 14 dub 2019, 14:02

Díky :D
Teď z učebních důvodu : Vysvětlíte mi proč byl můj zápis špatně? :?

Diky

Uživatelský avatar
SkullKeep
Příspěvky: 191
Registrován: 23 srp 2017, 18:51
Reputation: 0
Bydliště: Brno
Kontaktovat uživatele:

Re: podmínky

Příspěvek od SkullKeep » 14 dub 2019, 16:26

Testoval jsi podmínku, která byla nastavena jednou. Případná změna na PINech by neudělala požadovanou změnu, proto se tam dáva to digitalRead(číslo pinu). To načte z vstupu hodnotu ,kterou pak porovnáváš.
:twisted: :?: :arrow: :geek:

Odpovědět

Kdo je online

Uživatelé prohlížející si toto fórum: Žádní registrovaní uživatelé a 1 host