Errore TIP120 e switch

Salve,
ho realizzato questo progetto con Arduino uno che allego sia in formato 3D(permettendo di vedere i collegamenti fisici della board) e lo schema circuitale classico.
Riscontro due problematiche, ovvero:

  1. i 3 Transistor TIP120 devono svolgere la funzione di interruttori, HIGH e LOW, che mi servono per pilotare la pompa dell’aria e le due elettrovalvole e non capisco perché non svolgono questa funzione (permettono il passaggio della corrente sempre);
  2. il secondo problema risiede nello switch, ovvero arduino non mi legge le due posizioni dello switch e quindi non mi permette di controllare l’interno circuito.
    Impostando la lettura tramite digitalRead (switch_pin==HIGH)–> seguono le istruzioni del mio progetto.

L’interno circuito viene alimentato a 12V-1A da un alimentare esterno(vedi cavo rosso e nero alla dx della board), elettrovalvola e pompa richiedono 12V, mentre il convertitore DC-DC mi fornisce la tensione ad Arduino (8V) e successivamente Arduino finisce la tensione di 5V al sensore di pressione.
Tutto dovrebbe funzione in funzioni dello switch cosa che non accade.

Grazie per il vostro aiuto.

lo schema circuitale in allegato


Perché hai messo 2 resistenze sul interuttore?
Non so se i transistori sono collegati in modo corretto (immagine breadboard).
Ciao Uwe

Grazie per la risposta.
Ho inserito le 2 resistenze ed il capacitare da 100nF per l’antirinbalzo.
Se sono collegati in maniera errata i TIP120 sulla board cosa devo cambiare per ottenere un collegamento giusto?
Emettitore primo pin a sx collegato a massa, base secondo pin collegato tramite un resistore da 2,2Kohm al pin arduino ed il terzo pin il collettore collegato in serie al parallelo tra il diodo 1N4001(che ho inserito per evitare tensioni inverse provenienti dai solenoide che possono rompere il TIP120, quando commuta da ON ad OFF) e l’elettrovalvola.

Ma se uso i TIP120 in configurazione Darlington come faccio a pilotare le 2 eletteovalvole e la pompa d’aria con tre pin diversi di arduino?
Deve funzionare così:
Il primo tip120 deve pilotare la pompa d’aria , il secondo ed il terzo tip120 le due elettovalvole. Quando la pompa d aria funziona il tip120 è HiGH, il 2 tip120 deve essere LOW( non deve alimentare l’elettrovalvola) ed il terzo tip120 deve essere HIGH( alimentare l’elettro valvola).

Ziostep:
Impostando la lettura tramite digitalRead (switch_pin==HIGH)

digitalRead(switch_pin) == HIGH;

Ziostep:
Ma se uso i TIP120 in configurazione Darlington come faccio a pilotare le 2 eletteovalvole e la pompa d’aria con tre pin diversi di arduino?
Deve funzionare così:
Il primo tip120 deve pilotare la pompa d’aria , il secondo ed il terzo tip120 le due elettovalvole. Quando la pompa d aria funziona il tip120 è HiGH, il 2 tip120 deve essere LOW( non deve alimentare l’elettrovalvola) ed il terzo tip120 deve essere HIGH( alimentare l’elettro valvola).

Non Ti seguo.
I 3 TIP120 sono uguali e messi in modo uguale. Accendi l' utenza mettendo il Pin corrispondente a HIGH.

Ciao Uwe

Non capisco lo schema elettrico. In particolare le batterie inserite in serie alle elettrovalvole. Ma quante batterie hai? E da quanti volt?

Ciao,
P.

Parto dal problema 2). Vedendo SOLO il tuo disegno fatto con Fritzing (presuppongo) quello switch "cablato" in quel modo non leggerà mai due posizioni... Presumibilmente ti darà sempre low in lettura... è il pin centrale dell'interruttore che deve leggere arduino, in foto hai collegato "quello di destra"... quindi fai così, dei 3 pin dello switch, quello di sinistra ci metti una resistenza da 1k verso +5v il centrale lo porti al pin di arduino, quello di sinistra lo metti a massa... Prima pensa a collegare bene i componenti, poi pensi al debounce (che teoricamente non dovrebbe darti particolari problemi).
Il tip120 è un transistor di tipo darlington, non è che lo mettiamo noi in configurazione darlington. Al massimo noi, in questo caso, lo "configuriamo" come interruttore. detto questo, parti dall'ottima immagine postata da Brunello22.
Bene, la Base del tip120 devi collegare una resistenza da 2,2k verso il pin di Arduino; l'emettitore va collegato a massa (al negativo della batteria), il collettore deve essere collegato al negativo del motore (anche se il negativo del motore dipende dal senso di rotazione che vuoi avere). Infine aggiungi il diodo flyback in antiparallelo su motore, ovvero l'anodo sul collettore del tip120 (che a sua volta è collegato al negativo del motore) ed il catodo sul positivo del motore.

Grazie per le delucidazioni. Allego lo schema cosi vediamo se ho capito le modifiche da dover apportare. Il post #2 contiene lo schema circuitale classico dell’intero circuito per chi voglia vederlo.

Ovviamente si tratta di una pompa d’aria compressa (non un motore ma nel programma era presente solo un motore DC), mentre i due elementi uguali (alla destra del motore) rappresentano due elettrovalvole a solenoide.

(i due cavi rosso e nero alla destra della breadboard) sono i collegamenti di un trasformatore(da corrente alternata domestica in uscita mi da corrente continua) a 12V-1A che alimenta l’intero circuito. L’elettrovalvole e la pompa d’aria necessitano di 12V per il loro funzionamento, mentre il convertitore DC-DC mi da in uscita 8V che alimentano Arduino, ed Arduino mi alimenta il sensore di pressione.

Quel disegno non aiuta. Non si vede come hai collegato il TIP120. Percui non possiamo dirti se sono messi giusti o errati.
Fai una foto del Tuo circuito.
Ciao Uwe

La base non è al centro!

Ecco la foto della parte della board che comprende i TIP120. I cavi verde, arancio e giallo sono i pin di Arduino. Sono montati i Tip120(partendo da sx verso destra–>base-collettore-emettitore).
La base tramite il resistore è collegato ad Arduino, mentre l’alimentazione positiva è portata al catodo del diodo a cui è collegata il parallelo il positivo dell’elettrovalvola, mentre negativo e anodo sono collegati al collettore. L’emettitore è posto a massa. Ditemi se va bene il collegato dei TIP120, cosi poi passiamo allo switch. Se faccio foto intera non si capisce nulla.

IMG_50344.zip (427 KB)

secondo me non ci siamo
se non sei capace di fare uno schema e di controllare un cablaggio è inutile che tu vada avanti
è come l'autista di professione che non sa cambiare, gli manca qualcosa di fondamentale, non combinerà mai nulla se non impara almeno il minimo

Standar vedi che i cablaggi e i collegamenti sono corretti, avevo sbagliato solo le entrate dei pin dello switch. Voglio solo la conferma al 100% in modo da capire se l'errore risiede nel codice o nel circuito.

se il cablaggio è corretto l'errore è nel codice
come diceva il mio amico Conan (Doyle): una volta eliminato l'impossibile ciò che resta per quanto improbabile deve essere la verità

Bastava che tu guardassi il circuito del post #2 e gli allegati fatti con un programma di modellizzazione 3D di tutti i componenti (ho fatto questo per far capire meglio i collegamenti, in quanto le foto fatte direttamente sul circuito non fanno capire bene i collegamenti) per vedere che l'errore era nel collegamento dei pin dello switch. Almeno penso che il primo errore stava li e il secondo molto probabilmente sta nel codice e non nel collegamento Hardware dei Tip120.

beh, il codice non lo hai messo (o sbaglio?)
le foto non le hai fatte, ma hai messo una modellizzazione...
cosa dovremmo controllare? una cosa che non esiste e una che non c'è?

Standard capisco il caldo ma basta poco per capire che non hai aperto neanche i file allegati. Se avessi aperto i file allegati avresti visto con i tuoi occhi che la modellizzazione 3D rispecchia fedelmente i collegamenti fatti realmente con Arduino( ho usato il Fritzing proprio perché le foto risultano poco chiare). Il programma non è stato caricato in quanto vorrei delucidazioni e capire eventuali errori nel cablaggio( qual ora ci fossero), tutto qui.
Grazie!