Go Down

Topic: Condizione if su uscita digitale (Read 466 times) previous topic - next topic

geco87

E possibile utilizzare come condizione di un if lo stato di un uscita digitale? Grazie mille

Silente

Si, perché non dovrebbe? Puoi usarlo anche direttamente (senza salvarlo in variabile) e puoi leggere anche le uscite con la digitalRead. Sappilo

uwefed

Sul Arduino UNO, Mega o Leonardo e similari che montano gli stessi controller puoi leggere con digitalRead(pin) lo stato del pin anche se é definito come uscita.

Quanto mi ricordo non funziona col l'Arduino DUE.

Ciao Uwe

gpb01

Si, credo funzioni solo con MCU della serie AVR ... ::)

Guglielmo
Search is Your friend ... or I am Your enemy !

SukkoPera

#4
Jun 13, 2018, 11:32 am Last Edit: Jun 13, 2018, 11:32 am by SukkoPera
Credo che l'implementazione di Arduino lo faccia funzionare anche sulla Due (mi pare di averlo visto una volta).

In ogni caso a me non sembra una buona scelta progettuale ed eviterei di farlo. Usa sempre della variabili per conservare queste informazioni.
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

uwefed

In ogni caso a me non sembra una buona scelta progettuale ed eviterei di farlo. Usa sempre della variabili per conservare queste informazioni.
Non so dire se é una cosa da evitare o un butto stile di programmazione.
Sicuramente la lettura del Pin digitale é piú lenta rispetto la lettura delo stato da una variabile boolean o byte.
Ciao Uwe

gpb01

#6
Jun 13, 2018, 01:05 pm Last Edit: Jun 13, 2018, 01:05 pm by gpb01
... In ogni caso a me non sembra una buona scelta progettuale ed eviterei di farlo ...
Concordo al 100% !

Guglielmo
Search is Your friend ... or I am Your enemy !

SukkoPera

Comunque confermo:

https://github.com/arduino/ArduinoCore-sam/blob/master/cores/arduino/wiring_digital.c#L117
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

docdoc

Comunque confermo:
Giusto. E tra l'altro si vede anche che non effettua fisicamente la lettura ma usa il suo array degli stati, per cui il timore di uwe mi pare infondato.
Alex "docdoc" - ** se ti sono stato d'aiuto, un punto karma sarà gradito, clicca su "add" qui a sinistra, vicino al mio nome ;) **

geco87

In pratica vorrei visualizzare su lcd lo stato di un uscita, arrivato a questo punto, realizzo un rlc che mi va a comandare l'uscita e automaticamente vado anche a leggere per il display. Grazie mille

SukkoPera

Ma l'uscita la piloterai ben tu, no? Per cui hai modo di impostare anche una variabile al valore che dovrebbe avere.
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

Silente

Perché usare una variabile per conoscere lo stato di un pin?
 Personalmente preferisco leggere direttamente il PIN ogni volta di cui mi serve saperne lo stato. Poi, se la cosa non fosse possibile ( ma bisogna saperlo nel caso specifico) posso collegare il meno dell'oggetto collegato al pin di output ad un pin di input. in caso io non possa leggere neanche I pin di input cambio scheda

Standardoil

Sarebbe vero se le variabili costassero più dei pin
Invece è  meglio risparmiare pin e usare variabili, sono vendute in scatole più grandi....
Prima legge di Nelson (che sono io):
A parità di risultato
maggiore è il pensiero,
minore il lavoro.
Quindi prima di fare pensa!

Silente

Si, ma non esistendo una correlazione diretta stato variabile stato pin meglio verificare (ti dimentichi di aggiornare la variabile dopo una digitalWrite e ciao)

SukkoPera

Perché a livello teorico il fatto che il tuo pin sia ad un certo livello dovrebbe essere una conseguenza dello stato interno del tuo programma, non è il flusso del tuo programma che deve dipendere dal livello di un pin di OUTPUT sotto il tuo controllo esclusivo.

Il fatto che su alcune piattaforme le lettura di un pin di output non sia nemmeno possibile dovrebbe già far riflettere. Poi beh, ci sono situazioni particolari, stili personali e quant'altro.
Make your Sega MegaDrive/Genesis region-free with Arduino! https://goo.gl/X7zBcq

Guida rapida a ESP8266: https://goo.gl/kzh62E

Go Up