Problema con programma "gestioneserranda.ino"

Salve a tutti,

ho appena comprato Arduino Uno per azionare le tapparelle dopo il post ke ho visionato, da premettere ke non sono un proigrammatore, quindi sto cercando di capire come funziona il tutto.

Una volta caricato su ARTDUINO IDE "gestioneserranda.ino" dato in concessiona dal Inter1908, il mio problema è ke nn riesco a trovare il comando del pin 2 e 3, in cui all'atto fisico gli collego un relè nc - na ke gli dirà di aprire e chiedere le serrande, ma nello stesso tempo dovrei aggiungere un comando ke controlla lo spegnimento e l'accendimento del condizionatore tramite il telecomando.

Sul forum ho trovato come fare diventare Arduino per la ricezione e la trsmissione dei codici del telecomando, ma non so dirgli quando trasmettere il codice al condizionatore, perchè non riesco a capire l'input del pin 2 e 3.

Qualcuno mi aiutiii per favore

>gaspare72: essendo il tuo primo post, nel rispetto del regolamento, ti chiedo cortesemente di presentarti QUI ([u]spiegando bene quali conoscenze hai di elettronica e di programmazione[/u] ... possibilmente evitando di scrivere solo una riga di saluto) e di leggere con MOLTA attenzione il su citato REGOLAMENTO ... Grazie.

Guglielmo

P.S.: Qui una serie di link utili, [u]NON[/u] necessariamente inerenti alla tua domanda: - serie di schede by xxxPighi per i collegamenti elettronici vari: ABC - Arduino Basic Connections - pinout delle varie schede by xxxPighi: Pinout - link [u]generali[/u] utili: Link Utili

Nessuno mi aiuta!!!!

Forse perché hai dato poche informazioni? Managi tanto per iniziare potresti inserire il programma gestioneserranda.ino perché senza è difficile che qualcuno possa sapere cosa fa il programma e quindi aiutarti. Poi ti dico già che se stai parlando di serrande reali alimentate a 230V il tread verrà immediatamente chiuso per via del regolamento del forum

Grazie fabpolli,

hanno spostato il mio post in uno nuovo tread, hai ragione il programma era caricato in un altro tread da Inter1908, allegandolo non vorrei incorrere in qualche sbaglio dato che sono nuovo e non so come vanno le cose.

Cmq le serrande/tapparelle sono a 230V, ma il programma comanda i relè a 12v, quindi non credo ci dovrebbero essere problemi.

Il mio problema è solo che nn riesco a capire quale riga di comando fa funzionare l’uscita del pin 2 per la discesa di tutte le serrande e il pin 3 x la salita di tutte le serrande.

C’e soltanto questo comando che parla del pin 2 e 3

void setup() {
  // initialize serial communication:
  Serial.begin(9600);
  iNrSerrande = 0;
  InizializzaSerrande();
  
  Dom.AggiungiSerranda(4,5,6,7); /* PIN pulsante Discesa, PIN pulsante Salita, PIN Serranda ON/OFF, PIN comado SALITA/DISCESA */
  Dom.AggiungiSerranda(8,9,10,11); /* PIN pulsante Discesa, PIN pulsante Salita, PIN Serranda ON/OFF, PIN comado SALITA/DISCESA */
  Dom.AggiungiPulsGen(2,3); /* PIN pulsante Discesa, PIN pulsante Salita */
}

Al comando pin 2 e pin 3 devo immettere il codice del telecomando del climatizzatore per spegnerlo ed accenderlo, ma non so che fare???

Ringrazio in anticipo, e chiedo se posso allegare il programma gestioneserrande.ino

gaspare72: Cmq le serrande/tapparelle sono a 230V, ma il programma comanda i relè a 12v, quindi non credo ci dovrebbero essere problemi.

Finché agisci SOLO sulla parte a 12V comandando dei relé, non c'è problema.

Guglielmo

Ciao, il problema è che senza il sorgente ci si capisce poco, vista l'inizializzazione dell'oggetto Dom credo che sui pin 2 e 3 ci sia un pulsante fisico che alza o abbassa tutto, per far ciò credo che nel software vengano controllati i pin 2 e 3, se ricevono un impulso alzano/abbassano tutte le tapparelle aggiunte con le istruzioni AggiungiSerranda, quindi credo che la modifica che stai cercando di effettuare sia un vero e proprio stavolgimento della logica dell'oggetto e che quindi dovrai creare tu stesso quella parte di programma, non credo de il programma originale gestisca altro furoché le serrande

Ciao, grazie sempre per la risposta, allego la sorgente ed il disegno del collegamento dei relè.

La gestione delle tapparelle dovrebbero essere tre, in questo momento solo 2, nella terza tapparella ancora devo acquistare il motore e tutto.

Attualmente il progetto prevede le seguente funzionalità:

  • Premendo il pulsante di salita o discesa si aziona la serranda rispettivamente in salita o discesa, la stessa si ferma se il pulsante è rilasciato entro 3 secondi;
  • Premendo il pulsante di salita o discesa per più di 3 secondi la serranda continuerà la sua salita o discesa e si bloccherà con il finecorsa. Dopo 60 secondi dal primo contatto i relè saranno disabilitati in modo automatico (non restano eccitati);
  • Se la serranda è in salita o discesa automatica e si ripreme il pulsante di salita o discesa la serranda viene bloccata;
  • Premendo contemporaneamente il pulsante di salita e discesa (scenario anomalo) la serranda viene bloccata (non sale ne scende)

Il software è già predisposto per la gestione di N serrande in modo da poterlo utilizzare con facilità nei seguenti scenari:

  • Un unico Arduino che gestisce N serrande (bisognerà espandere le GPIO visto che la gestione di ogni serranda occupa 2 pin in ingresso e 2 in uscita). Da aggiungere la gestione dei pulsanti generali (salita e discesa automatica di tutte le serrande);
  • Gestire una sola serranda in modalità indipendente
  • Gestire come slave una serranda (un Master deciderà quando chiudere tutte le serrande)

Da un punto di vista hardware, abbiamo che:

  • PIN 2 -->Pulsante di discesa (configurato con resistenza di PULL-UP e pertanto pulsante risulta premuto quando si chiude verso la massa)
  • PIN 3 -->Pulsante di salita (configurato con resistenza di PULL-UP e pertanto pulsante risulta premuto quando si chiude verso la massa)

download.png

GestioneSerranda.ino (14 KB)

Come avevo ipotizzato dal codice che hai postato la gestione è prevista solo per le serrande. Dubito che sono con quel file ino funzioni poiché la definizione dell'oggetto Dom manca quindi non si riesce a sapere esattamente cosa fanno le funzioni, se le hai incollate sotto al loop dal file che definisce dom sicuramente manca la funzione

AggiungiPulsGen

ma a logica fa quello che ho descritto in precedenza, quindi va a comandare le tapparelle che conosce per farle aprire/chiudere tutte assieme (spero non proprio tutte assieme ma una sequenzialmente all'altra ma questa è un'altra questione). Quindi se vuoi interfacciare il telefomando del climatizzatore dovrai implementare tu quella parte, cosa vorresti ottenere interfacciando il telecomando del climatizzatore? Oppure vuoi l'esatto contrario, ovvero da arduino accendere/spegnere il clima?

ciao sempre grazie, il programma sul banco funziona, con i motori ancora non ho provato.

A me serve che arduino comandi la chiusura delle tapparelle e lo spegnimento del climatizzatore.

Al pin 2 collegherò un relè, all'uscita della casa il relè darà il comando ad arduino, all'entrata della casa il pin 3 verrà azionato, quindi si alzeranno le tapparelle e si azionerà il clima.

A quando ho capito il programma non funziona???

Il programma funziona così come hai indicato, ovvero i singoli pulsanti collegati ai vari pin comandano la singola tapparella in salita/discesca mentre i pulsanti collegati ai pin 2 e 3 fanno in modo che il programma alzi/abbassi tutte le tapparelle che conosce, ora tu vuoi che ti accenda/spenga il climatizzatore quindi, non conoscendo quello che fa la funzione AggiungiPulsGen e cosa farà il programma all'arrivo dell impulso su pin 2 e 3, posso solo ipotizzare due soluzioni:

  • Modifichi il programma in modo che la routine che risponde ai pin 2 e 3 faccia anche altro dopo aver alzato/abbassato tutte le tapparelle. Nel tuo caso potrebbe lanciare una funzione che si occuperà della parte clima
  • Aggiungi una tapparella fittizia e sui due pin (salita/discesa) di questa colleghi un altro micro che attenda l'impulso in arrivo da questi due pin comandi la parte clima

Considera comunque che pilotare un climatizzatore emulando il telecomando non è la cosa più semplice che si possa affrontare in quanto i telecomandi dei climatizzatori non sono come quelli della tv che su un singolo pulsante inviano il comando e stop, i telecomandi del climatizzatore solitamente inviano una stringa complessa contenente molte informazioni (Es. temperatura desiderat, funzionalià, data/ora, ecc.) e ogni clima è storia a se o quasi. Alcuni climatizzatori prevedono un ingresso per poterli pilotare dall'esterno, se il tuo lo prevede forse sarebbe più semplice, se adirittura in caso di impulso sull'ingresso il clima si accende/spegne non ti serve neanche l'hardware esterno della soluzione due ma potresti interfacciare la "tapparella fittizia" direttamente al clima

Ok, è quello ke voglio fare:

Modifichi il programma in modo che la routine che risponde ai pin 2 e 3 faccia anche altro dopo aver alzato/abbassato tutte le tapparelle. Nel tuo caso potrebbe lanciare una funzione che si occuperà della parte clima.

Il mio problema ke nn sono un programmatore e nn dove aggiungere la funzione per farlo funzionare.

Per quando riguarda il climatizzatore ho già utilizzato un programma con arduino ke riceve il segnale dal telecomando "la stringa che dicevi tu" e poi la può ritramette.

Quindi nn devo far altro che copiare il comando di trasmissione e immetterlo in corrispondenza del pin 2 e pin 3, ma nn so dove collocarlo nel programma "gestioneserrande".

La questione è che non puoi metterlo in corrispondenza dei pin 2 e 3 ma occorre per forza modificare il programma in modo che alla ricezione dell'evento sul pin 2 o 3 trasmetta il codice al climatizzatore, ovvero eseguire quella parte di programma che dici di aver già provato in un altro programma. Visto che nell'altro thread l'utente che ha creato il programma a cui ti stai appoggiando dice di voler continuare a supportarlo e implementarlo anche grazie ad altri utenti potresti chiedere nell'altro thread se può aiutarti ad aggiungere una funzione al suo programma che possa chiamare una tua funzione al ricevimento del comando sul pin 2 o 3, in questo modo dentro questa funzione metterai l'invio del comando al climatizzatore e saresti a posto. Se non può farlo non ti resta che rimboccarti le maniche e provare ad effettuare la modifica al programma che sati usando

Ciao, dall'altro thread mi hanno spostato in questo nuovo, li cerano un molti utenti ke avevano modificato il programma.

Ho mandato pure un messaggio privato all'utente che a condiviso il programma, ma nulla.

Io di programmazione non ne capisco un tubo, non riesco a trovare il comando del pin 2 e 3 per poterci mettere la stringa del telecomando, mi sa ke devo trovare un altro metodo non con arduino.