Buongiorno,
premesso che sto cominciando ora con arduino ide (ma cmq sono bravino in VBA) e mi scuso per la banalità della richiesta ma sto cercando di automatizzare il mio cancello di entrata con l'ausilio dei ESP8266-01 ora la domanda. Perché questo codice funziona;
void setup() {
pinMode(3, OUTPUT);
}
void loop() {
digitalWrite(3, HIGH); // accende il led (HIGH è il livello logico alto)
delay(1000); // attende un secondo
digitalWrite(3, LOW); // spegne il led (LOW è il livello logico basso)
delay(1000); // attende un secondo
}
e sostituendo il 3 con 0 non va invece ? in rete non ho trovato nada.
il codice (scolastico) finale dovrebbe essere questo;
/* Imposto le variabili Globali) */
#define Pin_Rele 0 // GPIO0 viene usato per pilotare il rele
#define Pin_Tastiera 1 // assegno tx a GPIO1 e lo uso per impulso in entrata (contatto magnetico)
#define Pin_Magnetico 3 // assegno rx a GPIO3 e lo uso per ad impulso in entrata (codice)
#define CHIUSO 1
#define APERTO 0
#define CHIUDI 0
#define APRI 1
int Stato_Tastiera = 0;
int Stato_Magnetico = 0;
int Aux_Stato_Magnetico =0;
void setup(){
pinMode (Pin_Rele, OUTPUT);
pinMode (Pin_Tastiera, INPUT);
pinMode (Pin_Magnetico, INPUT);
digitalWrite(Pin_Rele, LOW);
}
/* inizio ciclo programma */
void loop(){
Stato_Tastiera = digitalRead(Pin_Tastiera);
Stato_Magnetico = digitalRead(Pin_Magnetico);
if (Stato_Tastiera == 1) {
delay (500);
if (Stato_Tastiera == 1) {
digitalWrite(Pin_Rele, APRI);
delay(10000);
digitalWrite(Pin_Rele, CHIUDI);
}
}
if (Stato_Magnetico != Aux_Stato_Magnetico && Stato_Magnetico == CHIUSO )
{
digitalWrite(Pin_Rele, APRI);
delay(5000);
digitalWrite(Pin_Rele, CHIUDI);
}
Aux_Stato_Magnetico = Stato_Magnetico;
}
grazie per l'attenzione