Go Down

Topic: "IF" tra segnale analogico e digitale (Read 5704 times) previous topic - next topic

Iz2rpn


uwefed


ma è quello che voleva


Lui voleva un ritardo di spegnimento ma non un ritardo di lettura del segnale di pilotaggio. Il tuo codice non controlla se il pin di uscita é H o L e percui aspetta ogni volta che trova il segnale a L

Ciao Uwe

Iz2rpn


astru_bale

l'out di Arduino sul fotoaccoppiatore, è fatto così:


uwefed

Il circuito del optocoppler é giusto.

Ritornando al problema col digitalRead del uscita.
Che tensione misuri sul pin di arduino dove hai attacato l'optocoppler.
Quel codice del relpy  #15 funziona se scolleghi l' optocoppler dal piedino di Arduino?

Ciao Uwe


uwefed


Non ho capito scusa :P

Il tuo codice, ogni volta che legge un valore maggiore di 50, aspetta 3 secondi.
Nel "if (rx_val < 50)" deve esserci un maggiore e non un minore.
Questo ritardo di 3 secondi ha come consequenza che un valore maggiore di 50 viene rilevato non subito ma in media dopo 1,5 secondi (fino a un massimo di 3 secondi)
Ciao Uwe

Iz2rpn


gingardu


eccolo:
Code: [Select]

int cmd_tx = 5;
int analogPin = 3;
int rx_val = 0;


void setup()
{
  pinMode(cmd_tx, OUTPUT);

}

void loop()
{
    rx_val = analogRead(analogPin);
   
   
    if (rx_val > 50) { digitalWrite(cmd_tx, HIGH); } //se il valore analogico è > di 50, metto a 1 l'output cmd_tx
    if ((rx_val < 50) && digitalRead(cmd_tx) == HIGH) {  //se il valore analogico è < di 50, e cmd_tx è a 1
        delay(3000);                                                     //attendo 3 secondi
        digitalWrite(cmd_tx, LOW);                                //scrivo a zero cmd_tx
}

}





secondo me quando si fa "l'accoppiata" di   maggiore di con minore di bisognerebbe mettere   =>   al posto di >    oppure <=   al posto <
che sarebbero uguale o maggiore di     oppure uguale o minoredi

questo evita incertezze nel caso il valore sia proprio 50
Le cose si possono considerare facili in due casi: quando le si conosce bene o quando non le si conosce affatto...

Iz2rpn

si anche ma il mio codice non era giusto cmq :)

Go Up
 


Please enter a valid email to subscribe

Confirm your email address

We need to confirm your email address.
To complete the subscription, please click the link in the email we just sent you.

Thank you for subscribing!

Arduino
via Egeo 16
Torino, 10131
Italy