Pages: [1]   Go Down
Author Topic: mettere HIGH un pin solo se un numero aumenta o diminuisce minimo di 2  (Read 290 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
God Member
*****
Karma: 8
Posts: 691
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

come fare per far si che una variabile long passato un secondo dall'ultima variazione
se aumenta o diminusce almeno di due unita porta alto un pin
Logged


Le cose si possono considerare facili in due casi: quando le si conosce bene o quando non le si conosce affatto...

0
Offline Offline
Shannon Member
****
Karma: 117
Posts: 10113
:(){:|:&};: TOX id: fcb8e918bef08581e23f6ddf9d4dba77697c25b217bf372736ed959a95fde36df5b8c5b90fbb
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

non puoi collegare "eventi" ad unsa semplice variabile.

esempio di classe in pseudocodice farlocco:
classe numeroVariabile:
 set numero: vecchioNumero = numer, numero = x, dataModifica = millis();
 get numero: return numero
 getStatoPin: if abs(vechioNumero-numero) >= 2 and millis() - dataModifica > 1000 {retun acceso}else{return false;}

ogni loop fai digitalWrite( pin, classe.getStato() )
ovviamente per settare il valore dore in poi on farai più numero = X o classe.numero=x, ma dovrai fare classe.setNumero(x). Per evitare errori puoi fare che la varibaile numero nella classe è private (ovvero la vede solo la classe) mentre ovviamente dovrai fare i get e il set pubblici, alrimenti non potrai usarli dal resto codice

se non vuoi fare ogni loop, ma con gli interrupt, allora ogni setNumero dovrai impostare un timer per fare il conto alla rovescia, ed intercettare il suo interrupt con aspposita ISR (vedi le librerie timer di leo72 per maggiori info)

ovviamente si può fare anche senza classe, ma ovviamente nasce il problema che ogni volta che setti il numero devi ricordarti di fare le operazioni che ci sono nella setnumero (potresti usare una funzione) oltre al problema che puoi accedere a numero direttamente(essendo globale), e magari per errore fai casino. Insomma la classe ti limita le possibilità di fare casino, poi vedi te.
Logged

my Arduino code: https://github.com/lestofante/arduinoSketch
sei nuovo? non sai da dove partire? leggi qui: http://playground.arduino.cc/Italiano/Newbie

Offline Offline
God Member
*****
Karma: 8
Posts: 691
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

mi sa che devo andare dallo psicologo per vedere cosa mi è successo  smiley-twist
quello che hai scritto  è comprensibile  smiley-grin
Logged


Le cose si possono considerare facili in due casi: quando le si conosce bene o quando non le si conosce affatto...

Pages: [1]   Go Up
Jump to: