www.elektronik.si Seznam forumov www.elektronik.si
Forum o elektrotehniki in računalništvu
 
 PomočPomoč  IščiIšči  Seznam članovSeznam članov  SkupineSkupine  StatisticsStatistika  AlbumAlbum  DatotekeFilemanager DokumentacijaDocDB LinksPovezave   Registriraj seRegistriraj se 
  PravilaPravila  LinksBolha  PriponkePriponke  KoledarKoledar  ZapiskiZapiski Tvoj profilTvoj profil Prijava za pregled zasebnih sporočilPrijava za pregled zasebnih sporočil PrijavaPrijava 

Branje I/0

 
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija
Poglej prejšnjo temo :: Poglej naslednjo temo  
Avtor Sporočilo
ElGrigon
Član
Član



Pridružen-a: Pon 24 Jul 2006 22:38
Prispevkov: 3880
Aktiv.: 18.03
Kraj: okolica Lenarta

PrispevekObjavljeno: Sre Avg 08, 2018 10:56 pm    Naslov sporočila:  Branje I/0 Odgovori s citatom

Pozdrav,

Nekaj me zanima, ker nikjer nisem zasledil zakaj je tako.

Če berem digitalni vhod in shranim vrednost v spremenljivko, se ta shrani kot je signal na inputu (5v ali 0V).

Če pa berem input direktno v strukturi npr. "if" pa ga vedno bere kot HIGH.

Primer:
Tako deluje pravilno
Koda:

int sw=2;
int led=11;

void setup{
pinMode(sw,INPUT);
pinMode(led,OUTPUT);
}

void loop{

swstate=digitalRead (sw);

if(swstate==1) digitalWrite(led,HIGH);
else digitalWrite(led,LOW);

}




Tako pa je na inputu vedno signal oz. output je vedno HIGH
Koda:

int sw=2;
int led=11;

void setup{
pinMode(sw,INPUT);
pinMode(led,OUTPUT);
}

void loop{


if(digitalRead(sw==HIGH)) digitalWrite(led,HIGH);
else digitalWrite(led,LOW);

}

_________________
lp, ElGrigon


Nazadnje urejal/a ElGrigon Čet Avg 09, 2018 7:26 am; skupaj popravljeno 1 krat
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Peter
Član
Član



Pridružen-a: Sre 30 Jun 2004 12:55
Prispevkov: 375
Aktiv.: 1.69
Kraj: Pod krvavcem nekje

PrispevekObjavljeno: Čet Avg 09, 2018 7:15 am    Naslov sporočila:   Odgovori s citatom

Zdravo

Problem v tvoji kodi je da bereš sw ki je definiran kot int=2 potem pa primerjaš to z bool vrenostjo. Poizkusi takole in bi moralo delovati pravilno.

LP Peter

int sw=2;
int led=11;

void setup{
pinMode(sw,INPUT);
pinMode(led,OUTPUT);
}

void loop{


if(digitalRead (sw)==HIGH) digitalWrite(led,HIGH);
else digitalWrite(led,LOW);

}

_________________
Vse se da pokvarit, le če se dovol časa ukvarjaš z njo!!!
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ElGrigon
Član
Član



Pridružen-a: Pon 24 Jul 2006 22:38
Prispevkov: 3880
Aktiv.: 18.03
Kraj: okolica Lenarta

PrispevekObjavljeno: Čet Avg 09, 2018 7:29 am    Naslov sporočila:   Odgovori s citatom

Oprosti, sem spregledal in narobe napisal drugo kodo, ker sem samo kopiral (sem popravil)
Imam točno tako kot si napisal in ni vredu.
Vse dokler inputa ne shranim v spremenljivko in naprej z njo operiram mi bere input HIGH.

_________________
lp, ElGrigon
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
ElGrigon
Član
Član



Pridružen-a: Pon 24 Jul 2006 22:38
Prispevkov: 3880
Aktiv.: 18.03
Kraj: okolica Lenarta

PrispevekObjavljeno: Čet Avg 09, 2018 9:11 am    Naslov sporočila:   Odgovori s citatom

OK, hvala. Preveč sem bolil v ekran že.
_________________
lp, ElGrigon
Nazaj na vrh
Odsoten Poglej uporabnikov profil Pošlji zasebno sporočilo
Pokaži sporočila:   
Objavi novo temo   Odgovori na to temo   Printer-friendly version    www.elektronik.si Seznam forumov -> Arduino sekcija Časovni pas GMT + 2 uri, srednjeevropski - poletni čas
Stran 1 od 1

 
Pojdi na:  
Ne, ne moreš dodajati novih tem v tem forumu
Ne, ne moreš odgovarjati na teme v tem forumu
Ne, ne moreš urejati svojih prispevkov v tem forumu
Ne, ne moreš brisati svojih prispevkov v tem forumu
Ne ne moreš glasovati v anketi v tem forumu
Ne, ne moreš pripeti datotek v tem forumu
Ne, ne moreš povleči datotek v tem forumu

Uptime: 48 dni


Powered by phpBB © 2001, 2005 phpBB Group