- 3,049
- 1,277
- CPU
- Intel i7 7700K
- Dissipatore
- Bequiet Dark rock pro 4
- Scheda Madre
- Msi pc mate z270
- HDD
- Seagate barracuda 1tb, silicon power NVME 500gb
- RAM
- Patriot viper steel 3733Mhz
- GPU
- Inno 3d gtx 1080 herculez design
- Monitor
- Asus mg279q
- PSU
- Corsair HX750
- Case
- Itek lunar 23
- Net
- Tiscali ftth
- OS
- windows 10,mint,debian,Arch linux
Intro
Salve a tutti ragazzi. Quest'oggi ho deciso di proporvi una guida. Durante questa epidemia sono stato sfortunatamente(o magari fortunatamente dipende dai punti di vista) ad acquistare un nuovo laptop. La spesa era da effettuare dopo la laurea, tuttavia questo imprevisto mi ha obbligato ad anticipare i tempi. La scelta è ricaduta sull'acer nitro 5 con i7 9750h e 1660ti. Quando euforicamente l'ho spacchettato e testato ho notato immediatamente le folli temperature da laptop. Mi sono accinto ad unvoltare la cpu e cambiare la pasta del capitano con una noctua nt-h2. Le differenza è stata subito abissale, ma non è bastata a placare il mio animo da nerd. Non datomi per vinto in qualità di ex fabbro ho deciso di realizzare una base per laptop in Plexiglass(FOLLE :suicidio:).
Senza dilungarmi troppo in chiacchere passo alla lista dei componenti.
Salve a tutti ragazzi. Quest'oggi ho deciso di proporvi una guida. Durante questa epidemia sono stato sfortunatamente(o magari fortunatamente dipende dai punti di vista) ad acquistare un nuovo laptop. La spesa era da effettuare dopo la laurea, tuttavia questo imprevisto mi ha obbligato ad anticipare i tempi. La scelta è ricaduta sull'acer nitro 5 con i7 9750h e 1660ti. Quando euforicamente l'ho spacchettato e testato ho notato immediatamente le folli temperature da laptop. Mi sono accinto ad unvoltare la cpu e cambiare la pasta del capitano con una noctua nt-h2. Le differenza è stata subito abissale, ma non è bastata a placare il mio animo da nerd. Non datomi per vinto in qualità di ex fabbro ho deciso di realizzare una base per laptop in Plexiglass(FOLLE :suicidio:).
Senza dilungarmi troppo in chiacchere passo alla lista dei componenti.
- Modulo MB102 (E poi spiegherò il motivo)
- 4 Resistenze 10k Ohm e 1 4.7k e 1 da 1k
- 1 condensatore da 0.1 uF
- 1 diodo zener 3v3
- 3 ventole 12v della dimensione che preferite io ho scelto queste.
- Una millefori
- 2 pulsanti
- Colla a caldo
Bene cominciamo subito ho tagliato la prima lastra di plexiglass : 400x540x10mm. Essa fungera da base per il laptop, mentre la seconda da 90x395x10mm essa fungerà da rialzo. Purtroppo durante la realizzazione non era prevista la guida ed non posso allegare le foto se non del lavoro finito. Il secondo step è stato forare la base sulla quale posizionerò le ventole. E qui avete due scelte. La prima è realizzare una dima in modo tale da realizzare una sorta di pannello meshato dove saranno posizionate le ventole, la seconda è avere una fresa/sega a tazza della dimensione delle ventole. Io ho optato per la prima in quanto sono semplicemente un folle e ho quindi fatto circa 500 fori con una punta da 6mm, sì ci è voluta mezza giornata.
La prima riga di fori l'ho effettuata a 80mm dallo spigolo superiore, mentre la prima colonnaa 75mm. Per quanto riguarda le colonne ho fatto in modo di essere centrate rispetto alla larghezza della base, mentre per le righe, la riga più in basso corrisponde con il centro.
Fan 4 wire e saldatura circuito su millefori
Forata la base possiamo accantonarla e passare ai collegamenti delle ventole e qui vi allego lo schema:
Avrete sicuramente notato che non ho menzionato alcun sensore di temperatura. I motivi son semplici:
- Il costo delle pwm da 14 al momento dell'acquisto erano più bassi
- In un futuro upgrade vorrei inserire un sensore di prossimità e tramite una libreria esterna leggere con arduino la temperatura delle ventole e quindi eliminare l'utilizzo dei pulsanti essendo pwm.
N.B Le mb102 hanno un amperaggio di out pari a quello di arduino ovvero circa 300mA, che per una striscia led sono decisamente pochi, pertanto non sognatevi di alimentare le strip con queste soluzioni.
Dalla mb102 ho saldato i cavi per alimentare i pulsanti per controllare gli rpm della ventola, seguendo questo schema
Funzionamento arduino e coding
In questo modo il nostro arduino funzionerà per ciò che è nato ovvero da microcontrollore soltanto con i pin digitali, senza usare le alimentazioni o restistori interni alla scheda. Lo schema elettrico fornito servira da anti-debouncing, ovvero ciò che nel mondo elettronico viene chiamato transitorio, un evento del tutto casuale che può portare commutazioni impreviste nelle porte logiche, sensori ecc. Il condensatore in questione evita che ciò accada. Tuttavia per ridondanza agiremo anche da lato software.
Adesso fatte le dovute saldature sulla millefori possiamo programmare il nostro arduino e verificare che tutto funzioni!
C:
#define PWM 6 //Il pin di output per la velocità
#define Pup 12 // pin di input dove è collegato il pulsante up
#define pdown 13// pin di input dove è collegato il pulsante down
int val = 0; // si userà val per conservare lo stato del pin di input
int vecchio_val = 0; // si userà vecchio_val per conservare lo stato del pin di input al passo precedente
int fanspeed = 0; // ricorda lo stato in cui si trovano le ventole
boolean StatoCorrente = LOW; // memorizza lo stato attuale del pulsante
boolean UltimoStato = LOW; // memorizza l'ultimo stato del pulsante
boolean StatoDebounce = LOW; // stato del pulsante debounce (anti-rimbalzo)
int IntervalloDebounce = 20; // attendere 20 ms per il settaggio del pin del pulsante
unsigned long UltimoEventoPulsante = 0; // memorizza l'ultima volta che è cambiato lo stato del pulsante
int vald = 0; // si userà val per conservare lo stato del pin di input
int vecchio_vald = 0; // si userà vecchio_val per conservare lo stato del pin di input al passo precedente
boolean StatoCorrented = LOW; // memorizza lo stato attuale del pulsante
boolean UltimoStatod = LOW; // memorizza l'ultimo stato del pulsante
boolean StatoDebounced = LOW; // stato del pulsante debounce (anti-rimbalzo)
unsigned long UltimoEventoPulsanted = 0; // memorizza l'ultima volta che è cambiato lo stato del pulsante
void setup(){
pinMode(Pup, INPUT); // impostiamo il pin 12 come INPUT per il pulsante
pinMode(pdown, INPUT); // impostiamo il pin 13 come INPUT per il pulsanted
pinMode(PWM, OUTPUT); // impostiamo il pin 13 come OUTPUT per le ventole
analogWrite(PWM,fanspeed);
}
void loop(){
StatoCorrente = digitalRead(Pup);
unsigned long OraAttuale = millis();
if (StatoCorrente != UltimoStato){
UltimoEventoPulsante = OraAttuale; // aggiorna l'ora di questo nuovo evento
}
if (OraAttuale - UltimoEventoPulsante > IntervalloDebounce){ // se è trascorso abbastanza tempo
if (StatoCorrente != StatoDebounce){ // se lo stato corrente è ancora diverso dal nostro ultimo stato di debounce memorizzato
StatoDebounce = StatoCorrente; // aggiorna lo stato di debounce (anti-rimbalzo)
//innesca un evento
if (StatoDebounce == HIGH){
if(fanspeed>=255)
fanspeed=255;
else
fanspeed +=20 ; // imposta lo stato in cui si troverà il pwm
analogWrite(PWM,fanspeed);
} else {
Serial.println("rilasciato up"); // possiamo visualizzare dal monitor seriale l'evento del pulsante
}
}
}
UltimoStato = StatoCorrente;
StatoCorrented = digitalRead(pdown);
unsigned long OraAttualed = millis();
if (StatoCorrented != UltimoStatod){
UltimoEventoPulsanted = OraAttualed; // aggiorna l'ora di questo nuovo evento
}
if (OraAttualed - UltimoEventoPulsanted > IntervalloDebounced){ // se è trascorso abbastanza tempo
if (StatoCorrented != StatoDebounced){ // se lo stato corrente è ancora diverso dal nostro ultimo stato di debounce memorizzato
StatoDebounced = StatoCorrented; // aggiorna lo stato di debounce (anti-rimbalzo)
//innesca un evento
if (StatoDebounced == HIGH){
if(fanspeed<=0)
fanspeed=0;
else
fanspeed -=20 ; // imposta lo stato in cui si troverà il pwm
analogWrite(PWM,fanspeed);
} else {
Serial.println("rilasciato down"); // possiamo visualizzare dal monitor seriale l'evento del pulsante
}
}
}
UltimoStatod = StatoCorrented;
}
Assemblaggio
Ciò che utilizzeremo sarà la colla a caldo, in quanto il plexiglass che avevo in officina è ottenuto mediante una tecnica laminare, pertanto altri sistemi di fissaggio più invasivi finirebbero per romperlo.
- Sistemiamo il nostro rialzo al di sotto della base, con una angolazione tale da garantire lo spessore del plexiglass sia parallelo al tavolo e di conseguenza che l'altezza (90mm) sia perpendicolare alla superficie del tavolo.
Appogiamo la nostra base sopra e noteremo che ovviamente essendo il taglio dritto ci sarà un vuoto tra i due fogli di plexiglass(lato posteriore), procediamo a riempire il vuoto con la colla al caldo. Stesso procedimento per il lato interno. La nostra base sarà ora inclinata.
- Procediamo a montare le 3 ventole nella parte posteriore della base (in modo tale da avere una superficie uniforme per il laptop). Vi risulterà molto semplice incollare le altezze, ma decisamente scomodo incollare le ventole (dal lato che è parallelo al supporto inclinante) se lasciaste poco spazio tra le stesse ed il supporto. Ahimé non avendo un progetto già in mente ho avuto questo problema, l'ho risolto utilizzando del silicone trasparente anziche la colla. Il silicone essendo freddo potevo applicarlo sul dito ed incollare le ventole, vi consiglio vivamente di non farlo con la colla a caldo :suicidio:
- Dal lato posteriore del supporto alzante ho provveduto ad incollare(sempre colla a caldo) il case per arduino uno, una volta inserita la sceda e chiuso il case, ho incollato la millefori sopra lo stesso case con i pulsanti rivolti verso l'esterno(ovviamente direte).
- Ho inserito i cavi nei pin di arduino(già programmata) et voilà il gioco è fatto!