Differenze tra le versioni di "Padella reflowing"
Riga 22: | Riga 22: | ||
Io ho utilizzato cose che avevo già in casa, cioè: | Io ho utilizzato cose che avevo già in casa, cioè: | ||
− | * termistore EPCOS 100k, ricambio della stampante 3d | + | * termistore EPCOS 100k + 4,7k ohm pull-up, ricambio della stampante 3d |
* lcd 16x2 + backpack | * lcd 16x2 + backpack | ||
* attiny85 | * attiny85 | ||
Riga 29: | Riga 29: | ||
Per il collegamento del termistore [http://reprap.org/wiki/Temperature_Sensor_1_1 vi consiglio questo schema], lo sketch che ho utilizzato invece è una [https://learn.adafruit.com/thermistor/using-a-thermistor modifica di questo] | Per il collegamento del termistore [http://reprap.org/wiki/Temperature_Sensor_1_1 vi consiglio questo schema], lo sketch che ho utilizzato invece è una [https://learn.adafruit.com/thermistor/using-a-thermistor modifica di questo] | ||
+ | |||
+ | ===== Sketch ===== | ||
+ | // 100k ohm EPCOS 100k (4.7k pullup) | ||
+ | |||
+ | // which analog pin to connect | ||
+ | #define THERMISTORPIN 2 | ||
+ | // resistance at 25 degrees C | ||
+ | #define THERMISTORNOMINAL 100000 | ||
+ | // temp. for nominal resistance (almost always 25 C) | ||
+ | #define TEMPERATURENOMINAL 25 | ||
+ | // how many samples to take and average, more takes longer | ||
+ | // but is more 'smooth' | ||
+ | #define NUMSAMPLES 10 | ||
+ | // The beta coefficient of the thermistor (usually 3000-4000) | ||
+ | #define BCOEFFICIENT 4066 | ||
+ | // the value of the 'other' resistor | ||
+ | #define SERIESRESISTOR 4700 | ||
+ | |||
+ | #include <TinyWireM.h> | ||
+ | #include <LiquidCrystal_I2C_852.h> | ||
+ | |||
+ | LiquidCrystal_I2C lcd(0x27, 16, 2); | ||
+ | |||
+ | int samples[NUMSAMPLES]; | ||
+ | |||
+ | void setup() | ||
+ | { | ||
+ | lcd.init(); // initialize the lcd | ||
+ | lcd.backlight(); // Print a message to the LCD. | ||
+ | lcd.setCursor(0, 0); | ||
+ | lcd.print("Temp:"); | ||
+ | } | ||
+ | |||
+ | void loop(void) { | ||
+ | uint8_t i; | ||
+ | float average; | ||
+ | |||
+ | // take N samples in a row, with a slight delay | ||
+ | for (i=0; i< NUMSAMPLES; i++) { | ||
+ | samples[i] = analogRead(THERMISTORPIN); | ||
+ | delay(10); | ||
+ | } | ||
+ | |||
+ | // average all the samples out | ||
+ | average = 0; | ||
+ | for (i=0; i< NUMSAMPLES; i++) { | ||
+ | average += samples[i]; | ||
+ | } | ||
+ | average /= NUMSAMPLES; | ||
+ | |||
+ | |||
+ | // convert the value to resistance | ||
+ | average = 1023 / average - 1; | ||
+ | average = SERIESRESISTOR / average; | ||
+ | |||
+ | float steinhart; | ||
+ | steinhart = average / THERMISTORNOMINAL; // (R/Ro) | ||
+ | steinhart = log(steinhart); // ln(R/Ro) | ||
+ | steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro) | ||
+ | steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To) | ||
+ | steinhart = 1.0 / steinhart; // Invert | ||
+ | steinhart -= 273.15; // convert to C | ||
+ | |||
+ | |||
+ | lcd.setCursor(6, 0); | ||
+ | lcd.print(steinhart, 1); | ||
+ | lcd.print("C "); | ||
+ | |||
+ | delay(500); | ||
+ | } | ||
==== Padella ==== | ==== Padella ==== |
Versione delle 19:48, 9 mar 2015
Padella reflowing
Tecnica di reflowing casalingo per componenti SMD
AVVERTENZE:
- ho usato questo metodo solo un paio di volte, quindi abbassate le vostre aspettative
- usate tutte le precauzioni del caso: guanti, pinze, etc
- utilizzate una padella che non utilizzerete più per uso alimentare
- [se a qualcuno viene in mente qualche altra avvertenza, prego di aggiungerla]
Cosa serve
- sonda di temperatura
- padella
- PCB + componenti SMD
- stagnatore + stagno, nastro kapton, pinzette per SMD
Sonda di temperatura
Io ho utilizzato cose che avevo già in casa, cioè:
- termistore EPCOS 100k + 4,7k ohm pull-up, ricambio della stampante 3d
- lcd 16x2 + backpack
- attiny85
- vecchio carica cellulare da 5V, 900mA con regolatore LM7805
- regolatore di tensione
Per il collegamento del termistore vi consiglio questo schema, lo sketch che ho utilizzato invece è una modifica di questo
Sketch
// 100k ohm EPCOS 100k (4.7k pullup) // which analog pin to connect #define THERMISTORPIN 2 // resistance at 25 degrees C #define THERMISTORNOMINAL 100000 // temp. for nominal resistance (almost always 25 C) #define TEMPERATURENOMINAL 25 // how many samples to take and average, more takes longer // but is more 'smooth' #define NUMSAMPLES 10 // The beta coefficient of the thermistor (usually 3000-4000) #define BCOEFFICIENT 4066 // the value of the 'other' resistor #define SERIESRESISTOR 4700 #include <TinyWireM.h> #include <LiquidCrystal_I2C_852.h> LiquidCrystal_I2C lcd(0x27, 16, 2); int samples[NUMSAMPLES]; void setup() { lcd.init(); // initialize the lcd lcd.backlight(); // Print a message to the LCD. lcd.setCursor(0, 0); lcd.print("Temp:"); } void loop(void) { uint8_t i; float average; // take N samples in a row, with a slight delay for (i=0; i< NUMSAMPLES; i++) { samples[i] = analogRead(THERMISTORPIN); delay(10); } // average all the samples out average = 0; for (i=0; i< NUMSAMPLES; i++) { average += samples[i]; } average /= NUMSAMPLES; // convert the value to resistance average = 1023 / average - 1; average = SERIESRESISTOR / average; float steinhart; steinhart = average / THERMISTORNOMINAL; // (R/Ro) steinhart = log(steinhart); // ln(R/Ro) steinhart /= BCOEFFICIENT; // 1/B * ln(R/Ro) steinhart += 1.0 / (TEMPERATURENOMINAL + 273.15); // + (1/To) steinhart = 1.0 / steinhart; // Invert steinhart -= 273.15; // convert to C lcd.setCursor(6, 0); lcd.print(steinhart, 1); lcd.print("C "); delay(500); }
Padella
Io ho utilizzato un pentolino, ma la vernice tende a sbruciacchiarsi, quindi credo sia meglio una di quelle padelle in alluminio non verniciate.
Mettete la sonda sulla superficie della padella con un pezzo di nastro Kapton e fate qualche prova di temperatura. Nel mio fornellino più piccolo, col fuoco al minimo, la padella raggiunge i 300 gradi. Decisamente troppo, per cui bisogna stare attenti e togliere la scheda al momento giusto. Prima di fare la stagnatura vera e propria, vi consiglio di verificare le temperature che raggiungete.
PCB + componenti SMD
Mettete un po' di stagno sulle piazzole del componente smd, giusto una gocciolina. La piazzola dev'essere bella lucente e con un po' di pancia ma non troppa.
Reflowing
Estraete il componente SMD dalla sua custodia e prendetelo con le pinzette, verificando la posizione in cui lo adagierete sul PCB. Mettete il PCB con le piazzole preparate nella padella e accendete il gas. La temperatura salirà velocemente, intorno ai 200-220 gradi lo stagno comincia a sciogliersi, a queso punto appoggiate il componente SMD, vedrete che si posiziona da solo nella sua collocazione. Questa operazione deve durare qualche secondo, mentre la temperatura è a 220-230 gradi. Togliete con le pinze il pcb dalla padella e spegnete il gas.