Stranica: 1/1.

Kako korstiti pinMode u specifičnoj situaciji

Postano: pet ruj 13, 2019 7:27 pm
Postao/la domagoj#6058
Pozdrav ekipo!
Pitanje je vezano uz pinMode naredbu, odnosno treba li biti npr. pinMode(0,OUTPUT) ili pinMode(0,INPUT)
prilikom namjere da se invertira trenutno stanje pina 0 ovakvom naredbom:
digitalWrite(0,!digitalRead(0));
Dakle, na pin 0 i pišemo i čitamo, pa me zanima koja je ispravna definicja obzirom na pinMode.
Za ovakav slučaj, u svojim programima sam izbjegao pinMode i sve radi super, ali me zanima je li to korektno. Istina, ništa nisam skurio, ali ne bi trebao imati takav pristup problemu.
Pozdrav, Domagoj

Re: Kako korstiti pinMode u specifičnoj situaciji

Postano: uto ruj 17, 2019 8:26 am
Postao/la david.zovko#3075
Hej Domagoj

ako radi i ako nije neka specijalna namjena (npr. napajanje s baterije), to je sve u redu. Ako nemaš nigdje pinMode, pinovi su ti po defaultu inputi. Inače, "usred" koda možeš raditi pinMode također, pa bi nekako logično bilo:

Kod: Označite sve

pinMode(pin, INPUT);
int stanjePina = digitalRead(pin);
pinMode(pin, OUTPUT);
digitalWrite(pin, stanjePina);
Nisam vidio ovakav primjer do sada. Možeš li nam reći što točno radiš s tim pinom pa želiš postaviti njegov izlaz na njegov ulaz?

Re: Kako korstiti pinMode u specifičnoj situaciji

Postano: uto ruj 17, 2019 9:06 am
Postao/la domagoj#6058
David, bok!
Pa nemam neku konkretnu namjeru, igrao sam se ledicom na Dambi da žmiga svake sekunde, a mjesta gdje bi se to moglo koristiti je puno. Npr. prema nekim kriterijima provjeravam sanje digitalnog izlaza i recimo da želim da mu promijenim stanje u odnosu na trenutno. Naravno, mogao bi imati neku varijablu koja prati zadnje stanje i onda provjeravati nju, pa bi tako samo imao digitalWrite. Ali znaš kako je, ovakva varijanta me baš zainteresirala, pa sam zato zapeo za nju.
Vidiš, nisam znao da pinMode možeš pozvati bilo kada, već samo u setupu. U tom slučaju kod koji si priložio je korektnije rješenje. Na tu ideju sam zapravo došao još prije kada sam se igrao s temp. senzorom. On po istoj žici i čita i piše, tako da je očito da se to može unutar programa, a ne samo da se u setupu definira je li pin za čitanje ili pisanje. I nisam znao da su izlazi po defaultu input. Eto, dobro je pitati. :D

Re: Kako korstiti pinMode u specifičnoj situaciji

Postano: sri ruj 18, 2019 11:22 am
Postao/la david.zovko#3075
To si dobro rekao. Ne vidim prepreku u korištenju na ovaj način sve dok komponenta spojena na taj pin ne utječe na stanje pina, a to LEDica neće raditi.

Za komunikacije, ovdje je jedna slika kako može pisati i čitati sa iste žice: http://www.mosaic-industries.com/embedd ... 2c-bus.png
Dakle, za izlaz (pisanje) ima open-drain tranzistore, a za čitanje ima buffer koji je signal provoditi samo u jednom smjeru, prema mikrokontroleru.