| neto
| Inviato il: 07/01/2016 22:42:39
|
Domani faccio il disegno e te lo mando, ti và bene uno schizzo nelle tre viste o un disegno in dwg | | | | righetz
| Inviato il: 07/01/2016 22:45:05
|
indifferente... carta e penna non passano mai di moda
Puoi anche metterlo condiviso qui. Così potrà ispirare anche qualcun altro
Per l'ultima versione del codice aspetto prima un test positivo, poi verrà condiviso.
--------------- Chi non si indebita fa la rabbia degli usurai
| | | | BellaEli
| Inviato il: 08/01/2016 10:42:54
|
@righetz: ma cosa usi per pilotare i motori passo passo ? Il classico driver L298 ?
Perchè non riesci a legare la velocità di avanzamento in base alla temperatura ?
Per pilotare il passo passo usi una libreria ?
Posso aiutarti in qualche modo ?
P.S. Guardando il grafico sul link da te postato, la NTC da 1 k è inutilizzabile !!!
Non sarebbe più semplice utilizzare una PT1000 tipo questa ???
Elix
Modificato da BellaEli - 08/01/2016, 10:52:56
--------------- C'è un limite al fai da te ??? Si, ma lo stabiliamo noi !!!
| | | | righetz
| Inviato il: 08/01/2016 11:07:36
|
Ciao Elix,
la PT1000 non la conoscevo, mi sono sempre riferito alle NTC perchè le ho trovate già pronte nel solito negozietto dove prendo i vari componenti che mi servono. Altro motivo l'inesperienza nel settore
Non conoscendo l'infinito mondo della stampa 3D, per logica ho preso come riferimento i componenti più comuni presenti negli HotEnd delle stampanti 3D.
Per lo stepper si usa la libreria stepper.h inclusa nell'ultima versione del software Arduino.
Avevo creato una funzione MotorOn() dove con un ciclo if/else in base alla temperatura azionava il motore ma una volta inserita nel loop mandava in blocco l'altra funzione myPID.compute();
Anche inserite in righe diverse, il motore non ne voleva sapere di funzionare.
Anzi si bloccava anche l'aggiornamento delle temperature.. tutto fermo
Ho risolto utilizzando un potenziometro e un pin analogico con questa sequenza di comandi:
int sensorReading = analogRead(A3);
int motorSpeed = map(sensorReading, 0, 1023, 0, 100);
if (motorSpeed > 0) {
myStepper.setSpeed(motorSpeed);
myStepper.step(stepsPerRevolution / 100);}
non si blocca niente, devo solo provare con il driver L298N e settare il numero di giri. Qui nell'esempio è settato ad 1/100 di passo come prova.
Devo solo provarlo ... più tardi.
eseguita modifica per apportare delle correzioni
Modificato da righetz - 08/01/2016, 11:52:51
--------------- Chi non si indebita fa la rabbia degli usurai
| | | | righetz
| Inviato il: 08/01/2016 11:50:35
|
Fatta la prova lampo...... Funziona!
Ovvio 1/100 di passo è troppo poco quasi impercettibile il movimento se non per il rumore del motorino. Nel pomeriggio provo a mettere /1 anzichè /100 e vediamo come gira.
Dalle prove fatte con il motore precedente che aveva un rapporto finale di 9 rpm questa era una velocità troppo bassa.
Avevo provato con una alimentazione leggermente superiore dei 12 Volt per farlo correre di più e le cose erano migliorate.
Quando ho provato con l'avvitatore a 100 rpm si vedeva ad occhio che la velocità era troppo eccessiva, il filo estruso usciva come rigonfiato.
Con l'avvitatore modulando gli rpm a circa al 50% dei 100 rpm con una temperatura di 150° la velocità era ottimale.
Un buon compromesso credo possa essere una temp di 180° e 50 - 60 rpm.... da provare.
Ora si tratta di capire di quanto devo frazionare i passi per arrivare ai valori di 50-60 rpm tenendo conto che monta un riduttore di 14:1
--------------- Chi non si indebita fa la rabbia degli usurai
| | | | righetz
| Inviato il: 08/01/2016 15:10:18
|
Eccolo, nel video si vede che manca il collegamento alla 220V per la resistenza riscaldante..... meglio non rischiare visto che per le prove era tutto un attacca e stacca. .
Sistemato tutto con un solo potenziometro.
Il numero di giri è fisso alla vite sono 28 rpm. 400 all'albero motore.
ora serve la tramoggia... un pcb per i componenti e via.
L'integrato L298N scalda come una stufetta senza un carico particolare. Credo sia opportuno aumentare la dimensione dell'aletta di raffreddamento pena un bel arrosto
Modificato da righetz - 08/01/2016, 15:13:23
--------------- Chi non si indebita fa la rabbia degli usurai
| | | | neto
| Inviato il: 08/01/2016 18:46:52
|
Il disegno della tramoggia che allego, è realizzato con lamiera zincata che avevo in casa, la costruzione è stata fatta in modo che le varie parti siano assemblate a mezzo di viti da 3MA ciò per consentire aggiustamenti in fase di assemblaggio. Ovviamente si possono anche stagnare. Le spalle laterali sono da 15/10 per poter filettare, quelle anteriore e posteriore per poterle piegare facilmente sono da 5/10 e rinforzate con risvolto di 10mm nella parte superiore come rinforzo e per evitare possibili ferite durante il caricamento del granulo.
Le misure sono indicative ciascuno le adatterà alle propie esigenze.
Allego l'immagine ed il disegno in dwg di autocad..se ci riesco
| | | | neto
| Inviato il: 08/01/2016 18:57:10
|
Ho provato ad aprire il disegno in dwg con "draftsight" sembra che si apra,in ogni caso provo ad inviare anche l'immagine
Speriamo bene eventualmente provo con la mail
Immagine Allegata: tramoggia 1.dwg
| | | | neto
| Inviato il: 08/01/2016 19:41:41
|
Scusate, scusate, l'immagine "img.017.jpg" è in scala doppia, misure e disegno. | | | | righetz
| Inviato il: 08/01/2016 19:50:59
|
Visionato, chiarissimo e anche i miei più complimenti per la bella realizzazione, molto semplice.
Domani provo a fondere del granulato di PE-HD e vediamo il tutto come si comporta.
--------------- Chi non si indebita fa la rabbia degli usurai
| | | | righetz
| Inviato il: 08/01/2016 19:57:57
|
Questo è il codice utilizzato per la prova.
Lo metto a disposizione per chi volesse utilizzarlo e/o migliorarlo.
Allargando la finestra si possono leggere le righe di commento in modo corretto
/*Condiviso su www.energialternativa.info by Righetz ;-)
*
* Versione test del 08/01/2016
*
*
* Schema collegamento termistore
*============================================================
*
* (Gnd) ---- (100k-Resistor) -------|------- (100K-Thermistor) ---- (+5v)
* |
* Analog Pin 1
*============================================================
*/
#include <PID_v1.h>
#include <math.h>
#include <Wire.h>
#include <LiquidCrystal.h>
#include <Stepper.h>
#define ThermistorPin 1 // Pin analogico dove viene connesso il termistore
#define ThresholdPin 2 // Pin analogico cove viene connesso il pin centrale del potenziometro
#define HeaterPin 9 // Pin digitale con funzione PWM dove viene collegata la resistenza riscaldante
double SetPoint, ActualTemp, Output;
const int stepsPerRevolution = 200; // Configurazione motore impostazione del numero di passi per un giro di 360°
Stepper myStepper(stepsPerRevolution, 10,11,12,13); // Inizializzazione della libreria per lo stepper dal Pin 10 al Pin 13
LiquidCrystal lcd(7, 6, 5, 4, 3, 2); // settaggio dei piedini per la schield 16x2 www.microbot.it mr007-005
PID myPID(&ActualTemp, &Output, &SetPoint,2,5,1, DIRECT); // Specifiche per la taratura delle funzioni del PID automatico
int calibrationTime = 10; // tempo necessario per la calibrazione del sensore
double Thermister(int RawADC) {
double Temp;
Temp = log(((100000.0*1024.0)/RawADC)-100000);
Temp = 1 / (0.001129148 + (0.000234125* Temp) + (0.0000000876741 * Temp * Temp * Temp));
Temp = Temp - 273.15; // Converte Kelvin a Celcius
//Temp = (Temp * 9.0)/ 5.0 + 32.0; // Converte Celcius a Fahrenheit
return Temp;
}
void setup() {
pinMode(ThresholdPin, INPUT);
pinMode(HeaterPin, OUTPUT);
Serial.begin(57600);
lcd.begin(16,2); // inizializzazione display
lcd.clear();
Serial.print("calibrazione sensore");
lcd.setCursor(0,0);
lcd.print("calibrazione....");
for(int i = 0; i < calibrationTime; i++){ // tempo di 10 secondi per la calibrazione del sensore
Serial.print(".");
delay(1000);}
Serial.println(" done");
Serial.println("SENSORE ATTIVO");
delay(50);
lcd.clear();
lcd.setCursor(0,0);
lcd.print("SETPOINT TEMP ");
myPID.SetMode(AUTOMATIC); // abilita il PID
myStepper.setSpeed(400); // imposta il numero rpm a 400
}
void loop() {
myStepper.step(stepsPerRevolution);
SetPoint = map(analogRead(ThresholdPin),0,1023,0,300);
ActualTemp = double(Thermister(analogRead(ThermistorPin)));
analogWrite(HeaterPin,Output);
lcd.setCursor(11,1);
lcd.print(ActualTemp);
lcd.setCursor(3,1);
lcd.print(" ");
lcd.setCursor(0,1);
lcd.print(SetPoint);
myPID.Compute();
}
--------------- Chi non si indebita fa la rabbia degli usurai
| | | | neto
| Inviato il: 08/01/2016 22:51:12
|
Ringrazio per i complimenti, ovviamente ci sono alternative più performanti, sono a disposizione per eventuali chiarimenti.
Ho visto il nuovo programma che dovrebbe, se ho capito bene, gestire le due cose in maniera armonica, a questo punto per procedere, sarebbe necessario uno schemino ed un elenco del materiale occorrente.
Infine per completare l'esperimento sono determinanti i risultati della prova che farà domani.
Buona notte
neto | | | | | | | Biomass
| Inviato il: 09/01/2016 15:41:25
|
benone.
certo che ci riuscirai a costruire un trita tappi.
non è complicato....
pensavo ad un cilindro verticale montato sopra ad una raspa....un seghetto alternativo e un peso che pressa i tappi sul cilindro..
PS
PE oppure PE-HD per te, sono sempre disponibili
--------------- Instagram: real_biomass Youtube: Biomass Cippomix stufapellet.forumcommunity.net W il cippatino
| |
| | |
|
Versione Mobile!
|
|
|
|
|
|
|
|
|
|
|
|
|
|