Buongiorno a tutti,
Utilizzamo un interuttore finercosa meccanico e vorremo sapere quando chiuso o quando è aperto.
Ho collegato un pin dell'interruttore al pin 2 di Arduino e l'altro pin a GND di Arduino e tutto funziona perfettamente con Arduino Uno R4 WIFI.
Non riusciamo però a farlo a farlo funzionare con OPTA Advanced Tipo 8A.04.9.024.8320
Lo stato non cambia mai.
Potete darci una mano ?
Abbiamo provado con i pin I3,I4,I5
Grazie mille.
const int pinInterruttore = 2; // Pin a cui è collegato l'interruttore
void setup() {
pinMode(pinInterruttore, INPUT_PULLUP); // Configuro il pin come input con pull-up interno
Serial.begin(9600);
}
void loop() {
int stato = digitalRead(pinInterruttore);
if (stato == LOW) {
Serial.println("Chiuso");
} else {
Serial.println("Aperto");
}A
delay(500); // Aspetto mezzo secondo prima di rileggere
}
Il programma è giusto (a parte stato, che dovrebbe essere bool, ma addirittura puoi mettere il digitalRead nell'if). Non conosco Opta. Probabilmente è sbagliato il pin su cui legge.
Opta non sente chiusure verso massa. Bisogna fornire tensione (12 o 24 Vcc) agli ingressi I1..I8 (che sono chiamati A0..A7 o PIN_A0..PIN_A7). Gli ingressi hanno una resistenza di pull-down interna di 8,9 kΩ. Tensioni inferiori a 4,46 V vengono lette come LOW, superiori a 6,6 V vengono lette come HIGH.
scusa la domanda da principiante per massa intendi i morsetti - come da foto allegata ?
...pensa che, erroneamente credo, stavo usando GND che si trova nei morsetti del ModBus !
Un'altra cosa ho capito il tuo ragionamento, ipotizza quindi che su quel filo arrivi "un disturbo" sopra i 6,6v questo verrebbe cmq interpretato come HIGH vero ?
Morale per la mia esperienza da neofita ecco il mio ragionamento:
considerando che sarebbe quasi impossibile avere un disturbo che arriva a 24V potrei analizzare il voltaggio via codice e settare su HIGH diciamo se e solo se ho 24v ? Una sorta di filtro software insomma per capirci.
Oppure con questa configurazione sono "blindato" anche da eventuali disturbi facendo entrare o no 24V sul pin ?
Il 24V posso prenderlo da alimentatore stesso dell Opta vero ?
TI ringrazio molto per la disponibilità e mi scuso per il livello un pò "basico" delle questioni.
Un saluto,
Si per "massa" intendevo il meno dell'alimentazione (che in teoria dovrebbe essere anche il GND dell' RS485).
L'interruttore si collega semplicemente tra ingresso (I1..I8) e positivo alimentazione .
Facendo una lettura digitale non puoi valutare la tensione, però per i disturbi impulsivi si può applicare una strategia software di debounce, leggi l'ingresso tre volte a distanza di 10 millisecondi e lo consideri buono se tutte le letture sono uguali.