Come creare un circuito per alzare / abbassare automaticamente una scrivania regolabile in altezza?
sfondo
Ciao a tutti, sto lavorando a un piccolo progetto in cui posso controllare l'altezza di una scrivania regolabile in altezza utilizzando un microcontrollore, transistor MOSFET e un sensore a ultrasuoni. Essenzialmente voglio che l'utente inserisca un'altezza e che la scrivania si adatti automaticamente a quell'altezza.
Dettagli tecnici
Questa è la scrivania che sto usando. Ha solo pulsanti su / giù e non ha funzioni di "memoria".
Stavo cercando di utilizzare questo tutorial, ma poiché non avevo un facile accesso al motore stesso, ho deciso di "sostituire" i pulsanti su / giù con transistor MOSFET.
Questo è un MOSFET che sto usando. Ha una tensione di soglia Vgs tra 2-4 volt, che funzionerà per il mio microcontrollore 5v.
Ho aperto la scatola dei pulsanti ed ecco come appare.



Ci sono quattro fili che vanno nel connettore JST.
- Rosso: 30V
- Nero: GND
- Verde: giù
- Bianco: su
Questo è un interruttore attivo alto in cui il collegamento di Verde o Bianco a Rosso sposterà la scrivania rispettivamente verso il basso e verso l'alto. Vedere il diagramma sotto per come funziona l'interruttore ( Omron SS-5 ) nello schema.

Quello che ho fatto finora
Ho estratto il connettore JST e ho collegato i cavi del ponticello direttamente ai pin femmina per creare il seguente circuito per sollevare la scrivania.

La sorgente di tensione sul lato sinistro è il pin di uscita digitale di un microcontrollore. Sono riuscito a sollevare con successo la scrivania quando il perno era alto e smettere di sollevare la scrivania quando il perno era basso.
Modifica (16 agosto 2020): ho misurato la corrente dalla sorgente del transistor al filo bianco, ed è aumentata a ~ 3 A per un breve momento, e mentre il banco si alza (cioè quando il motore è in funzione), è emesso ~ 300mA.
Sono stato anche in grado di fare lo stesso per abbassare la scrivania, tranne per il fatto che la sorgente del MOSFET era invece collegata al filo verde.
Il mio problema è:
Ho posizionato un altro transistor in quanto tale per aumentare e diminuire:

Modifica (15 agosto 2020): scusa per il diagramma confuso. Questo diagramma utilizza due pin di uscita digitale. La sorgente di tensione sul lato sinistro è D2 dell'MCU e quella a destra è D3 dell'MCU. I pin condividono un terreno comune, che è responsabile del seguente problema.
Questo ovviamente ha creato un problema perché la sorgente di entrambi i transistor è collegata sia al filo bianco che al filo verde, il che significa che ogni volta che un transistor è acceso, entrambi i fili bianco / verde sono ALTI. Ciò equivale a premere entrambi i pulsanti contemporaneamente, il che non sposta affatto la scrivania. Ho provato a mettere una resistenza da 10k tra le due sorgenti dei transistor, ma questo non ha risolto il problema.
La mia domanda
- Come devo modificare il mio circuito per soddisfare ciò che sto cercando di fare?
- È qualcosa che posso creare anche solo usando i transistor? o
- Devo aprire il motore per seguire i casi d'uso tipici del transistor come interruttore?
Apprezzerei molto se qualcuno potesse dare consigli sulla mia situazione :)
Sono più che felice di chiarire qualsiasi confusione.
Grazie!
Risposte
Il breve 3 A durante l'avvio del motore significa che i fili bianco e verde portano la corrente del motore. I tuoi FET devono essere adeguati per questa corrente e protetti per i picchi di tensione quando il motore si spegne.
Il diagramma dell'interruttore originale mostra una configurazione H-bridge. Con entrambi gli interruttori abbassati, non c'è corrente al motore. Quando uno degli interruttori si alza, entrambi conducono corrente al motore, uno proveniente da 30 V, l'altro scende a 0 V. I tuoi suggerimenti FET mostrano solo un pullup, nessun pulldown, quindi il tuo motore non funzionerà.
Per replicare questa funzionalità è necessario un driver H-bridge con disabilitazione o due driver half-bridge. Dato lo spostamento di livello ecc. Necessario e la tua conoscenza dell'elettronica, sarebbe più sensato provare ad acquistare moduli di ingresso a livello logico, con uscite classificate per almeno 30 V e 3 A.
Invece di FET, sarebbe anche ragionevole utilizzare una coppia di relè c / o per fare esattamente ciò che stanno facendo gli interruttori. Vai al tuo sito di e-commerce online preferito e cerca "Modulo relè Arduino" e scegline uno a 2 canali. Possono essere azionati da 5 V, economici come i chip, non esplodono come i FET (anche se i contatti alla fine si consumano) e hanno una capacità di gestione CC appena sufficiente per il tuo motore da 30 V.
problemi con le ipotesi per la progettazione
- non è riuscito a riconoscere lo scopo di SPDT.
- non ha capito Vgs (th)
- il motore aumenterà con una corrente nominale di 10 volte o molto più della corrente di carico effettiva poiché probabilmente non utilizza il peso di carico massimo.
Ad esempio, diciamo che il motore ha una potenza nominale di 1 A ma utilizza solo 0,3 A tranne 10x1 = 10 A all'avvio.
- allo spegnimento, c'è un arco e una EMF inversa del motore che funge da generatore e interruttore da freno e ingranaggi da freno a frizione con bobina in cortocircuito per carico aggiuntivo.
- quindi è necessario un POWER Half Bridge che funzioni con livelli logici utilizzando un'uscita a 30 V con diodi di potenza per gestire picchi da 10 A o picchi da 20 A se invertiti rapidamente durante il movimento.
Problemi con i progetti FET
hai assunto che 2 ~ 4V fosse il Vgs operativo, ma è solo la soglia e hai bisogno di almeno 2,5-3x soglia di 100uA per avvicinarti a RdsOn per gestire> 10A, che è spesso specificato a Vgs = 5, 10 o 12V.
I "FET a livello logico" utilizzano Vgs (th) vicino a 1V per funzionare a 3V per le migliori prestazioni, altrimenti si surriscaldano.
invece del driver high side, è necessario un SPDT o un FET di potenza a mezzo ponte
È necessario un semiponte di potenza che utilizzi un ingresso e un'uscita a livello logico probabilmente classificati per 30A per avere un Rdson abbastanza piccolo da mantenere la temperatura durante l'avvio. I diodi di potenza invertiti su ciascuna guida per il morsetto Flyback sono entrambi necessari per 10A.
- Half Bridge deve avere un tempo morto ridotto tra Fwd e Rev per evitare cortocircuiti o effetti di Shoot through. E 'normale. Ma devi assicurartelo.
Raccomandazioni
Definire la resistenza della bobina del motore e scegliere IC a semiponte a livello logico per guidare 30 V / DCR + margine
Assicurarsi che abbia una protezione da tempo morto con controlli di ingresso con ritardo diodo RC o ritardo MCU e verificare che lo stato di ripristino all'accensione sia Off.
che dire della protezione di fine corsa? In caso di guasto al driver o glitch MCU? Considera Polyfuse.
Eseguire i calcoli della resistenza termica per il dissipatore di calore e l'isolante elettrico con grasso.
Questo è comune al design degli interruttori degli alzacristalli delle auto tranne che più massa, meno velocità ma forse lo stesso recupero di corrente (?) Dal cimitero dell'auto! O fai da te o compra? queste sono decisioni quotidiane di fare / acquistare di qualsiasi designer.
Infine, che dire del sensore di posizione o? Il sensore di posizione per viaggi lunghi potrebbe essere costoso a meno che tu non sia un genio della meccanica per utilizzare Pot con un CNC da 8 mm o una cinghia dentata più piccola dal movimento lineare alla riduzione della puleggia alla pentola, quindi leggere la tensione del piatto come posizione lineare, calibrare e utilizzare per il feedback del servo. Quindi consenti agli interruttori di input dell'MCU di ricordare gli stati immessi per le posizioni e di passare avanti e indietro avanti o 1,2,3 +, -. Ma elimina gli interruttori. Manca qualcos'altro? Interruttori di fine corsa? Pratica STD per macchine CNC.
Un'altra opzione sarebbe quella di utilizzare due relè SPDT, con valori di contatto identici a quelli dei microinterruttori SS-5 esistenti.

Se il banco è solo interruttori, un motore e relè, che non contengono componenti sensibili alla polarità, potresti semplicemente invertire la polarità dell'alimentatore. Avresti quindi uno 0v comune anziché un comune binario da 30v.
È quindi possibile utilizzare 2 transistor NPN o possibilmente 2 mosfet di tipo N per commutare lo 0v sui fili bianco e verde. Ovviamente anche i su e giù saranno invertiti.
Dovrai aggiungere un paio di diodi a ruota libera per proteggere i tuoi transistor dall'emf posteriore dalle bobine del relè esistenti e dal motore.