# define TASTOSET 6 # define TASTORESET 7 # define RELE 8 int ValueRELE = 0; void setup() { pinMode(TASTOSET, INPUT ); pinMode(TASTORESET, INPUT ); pinMode(RELE, OUTPUT); Serial.begin(9600); } void loop() { //********** TASTO SET ******************** int valoreTastoSET = digitalRead(TASTOSET); if (valoreTastoSET == HIGH) {digitalWrite(RELE, HIGH);} //********** TASTO RESET ******************** int valoreTastoRESET = digitalRead(TASTORESET); if (valoreTastoRESET == HIGH) {digitalWrite(RELE, LOW);} }
giovedì 29 novembre 2012
Set Reset
Iscriviti a:
Commenti sul post (Atom)
Ciao, mi sa non corrisponde ad un vero Set/Reset. Penso che il relè resta eccitato solo finché il Tasto set è attivo, non appena viene rilasciato si diseccita anche il relè. E' corretta la mia interpretazione? Ciao
RispondiEliminaE' da molto che un uso più Arduino....ma mi pare di averlo testato.Provalo. Ciao
RispondiEliminaCiao, io l'ho pensato ispirandomi a quanto riportato sul progetto 10 dello starter-kit: collego un pulsante al pin 5 ed uno pin 7 utilizzati come input e poi un led al pin 9 configurato come output. Uso una variabile di controllo "controlVar" per azionare o meno l'output. Ad ogni ciclo le variabili "previousOn" e "previousOff" vengono aggiornate ed utilizzate per rilevare il cambiamento di stato dei pulsanti. Il programma è il seguente:
RispondiEliminaconst int inputOnPin = 5;//pulsante On
const int inputOffPin = 7;//pulsante Off
const int outputPin = 9;
int controlVar = 0;// variabile di controllo inizializzata a 0
int On;
int Off;
int previousOn = 0;
int previousOff = 0;
void setup() {
// put your setup code here, to run once:
pinMode(inputOnPin, INPUT);
pinMode(inputOffPin, INPUT);
pinMode(outputPin, OUTPUT);
digitalWrite(outputPin,LOW);// led inizialmente spento
}
void loop() {
// put your main code here, to run repeatedly:
On = digitalRead(inputOnPin);
delay(1);
Off = digitalRead( inputOffPin );
if (On != previousOn) {
if (On == HIGH){
controlVar = 1; //set
}
}
if (Off != previousOff) {
if (Off == HIGH){
controlVar = 0; //reset
}
}
if (controlVar == 1) {
digitalWrite(outputPin,HIGH);
} else if( controlVar == 0) {
digitalWrite(outputPin,LOW);
}
previousOn = On;
previousOff = Off;
}