Pages: [1]   Go Down
Author Topic: controllo temperatura fumi caldaia con arduino  (Read 2314 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Full Member
***
Karma: 2
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

presento il mio primo progetto con arduino per controllare la temperatura dei fumi della mia caldaia policombustibile. per il momento ho un progetto in linea di massima per capire se quello che sto per fare potrebbe funzionare. allora vorrei utilizzare arduino per leggere la temperatura dei fumi della caldaia, visualizzarlo su un display e controllare l'apertura della farfalla davanti al soffiatore per controllare la temperatura che non scenda sotto un certo livello.

per i componenti credo che ci voglia:
-arduino uno
-ad595 per leggere la termocoppia k che  gia è piazzata culla canna fumaria
-un lcd 16x2
-uno stepper per motorizzare la farfalla davanti il soffiatore per parzializzare l'aria, la farfalla è questa http://www.mutmeccanica.com/catalogo/index.php?azione=cat&lang=it&cat=10 .
per i motori stepper ne ho due a disposizione prelevati da una vecchia epson stylus 640 marchiati EM290 e EM257 e sono entrambi bipolari.
Per mandare il segnale analogico 0-5v dal AD595 all'arduino bisogna prendere solo l'integrato  e basta prendendo il "-" dal piedino 7 e il "+" dai piedini 8 e 9 ed alimentarlo con un 5v ai pin 4 e 11??
per  pilotare lo stepper sicuramente ci va qualche transistor per non sovraccaricare l'arduino.
l'unico punto dolente di tutto questo è che mi dovrete dare una buona dritta per programmare l'arduino perchè l'unico linguaggio che conosco è l'italiano!!!

P.S. ho spostato il topic in hardware su consiglio di michele menniti
Logged

Marche
Offline Offline
Edison Member
*
Karma: 34
Posts: 2272
azioni semplici per risultati complessi
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Se posso permettermi ti do un consiglio: quando si è incerti su come procedere è bene suddividere il progetto in più sketch, nel tuo caso sono tre (termocoppia, lcd e stepper).
Ti fai uno sketch per far funzionare separatamente ogni cosa poi provi ad unire il tutto; ad esempio quando hai le tre parti funzionanti provi prima a scrivere sul display il valore restituito dalla termocoppia ed infine aggiungi anche il passo passo.
Non è una buona cosa iniziare per la prima volta con un motore di recupero, ad esempio per esperienza personale ti dico che ho 4 stepper presi da vecchie stampanti ma non sono riuscito a trovarne il datasheet con le specifiche...
Ciao
Logged

Dueville (VI)
Offline Offline
Edison Member
*
Karma: 28
Posts: 1748
http://cesarecacitti.wordpress.com/
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

io ti consiglio di usare un servo per la rotazione della farfalla (solo se la devi ruotare di 180 gradi e non di più) in questo modo ti è tutto più semplice, se hai bisogno proprio dello stepper su ebay ne ho trovato uno nuovo dalla cina con scheda di controllo a 2 euro circa  smiley-eek-blue
Logged

Il Vero Programmatore non ha bisogno di manuali sull'assembler, sono
  sufficienti i data sheet dei microprocessori.

Offline Offline
Full Member
***
Karma: 2
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora la farfalla deve ruotare di 90° al massimo ed è probabile che la collego direttamente all'asse. I due motori che ho originariamente lavoravano a 42volt ma si possono far lavorare anche a tensioni più basse come 12volt, in giro per il web ci sono alcuni esempi di funzionamento, ogni fase è di 8ohm
Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora ho scelto il motore per la mia applicazione, l'ho recuperato da una vecchia stampante canon s100 che mi ha "donato" uno stepper a 4 fili, 7,5ohm a fase e 24v e un alimentatore inscatolato con doppia alimentazione 5 e 24v, li vedete in foto. ora devo scegliere un transistor per il pilotaggio, cosa mi consigliate?? intanto ordino l'arduino e il resto del materiale


* WP_000033.jpg (1329.45 KB, 2592x1944 - viewed 40 times.)

* WP_000035.jpg (1237.13 KB, 1944x2592 - viewed 51 times.)

* WP_000036.jpg (1163.74 KB, 2592x1944 - viewed 48 times.)
Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

allora riesumo la mia discussione, ho iniziato a lavorare su arduino e per adesso ho montato solo lcd e ad595 su arduino.
per lo sketch ho preso spunto sul progetto del lm35 con display che c'è su adrirobot. L'ho modificato solo per i pin digitali del lcd e il pin analogico per ad595. ho usato questo sketch perchè ad595 e LM35 danno in entrambi in uscita 10mV/C° ma se uso quello sketch posso misurare solo 110C° e per andare oltre ho dovuto modificare float vref, passandolo da 1.1 a 5 e analogReference da INTERNAL a DEFAULT e così riesco a leggere fino a 500 C°che mi bastano. Ora il mio pensiero è, queste modifiche possono portare danni all'integrato di arduino??
Posto lo sketch ancora provvisorio.

Code:
#include <LiquidCrystal.h>

/* Corrispondenza pin LCD <-> pin digitali di Arduino */

#define RS  12
#define EN  11
#define D7  2 
#define D6  3
#define D5  4
#define D4  5

/* Numero del pin analogico sul quale è collegato l'AD595  */
#define AD595_pin 5

/* Definizioni globali */
float vref = 5.0;                      // Vref dell'ADC (quell'interno è di 1,1V)
LiquidCrystal lcd( RS, EN, D4, D5, D6, D7 ); // 'lcd' è una variabile di tipo LiquidCrystal */


/* Impostazione dell'hardware */

void setup()
{
  analogReference( DEFAULT );  // per l'ADC usiamo il Vref interno da 1,1V (migliore precisione)
  analogRead( AD595_pin );       // Prima lettura "a vuoto" (serve per l'assestamento dell'ADC)
  lcd.begin( 4, 16 );           // Impostazione per l' LCD (4x16)
}

void loop()
{
  float temp = readTemp();  // legge il valore della temperatura e la memorizza nella var. temp.
  sendTempToLCD( temp );    // invia il valore al LCD
}

/* Legge la temperatura */
float readTemp()
{
  float temp = 0.0;       // valore convertito in temperatura (°C)
  int val = 0;            // valore quantizzato dall'ADC [0..1023]
  int nread = 5;          // numero di letture (da 5 a 8)
  float somma = 0.0;      // somma delle letture
  for (int i=0; i<nread; i++)
  {
    val = analogRead( AD595_pin );              // legge il dato della tensione sul pin 'LM35_pin'
    temp = ( 100.0 *  vref * val ) / 1024.0;   // lo converte in °C
    somma += temp;                             // aggiunge alla somma delle temperature lette   
  }   
  return ( somma / nread );                     // ne calvola il valore medio
}

/* Invia la temperatura su un LCD (modo 4bit) */
void sendTempToLCD( float temp )
{
  lcd.clear();               // Pulisce lo schermo
  lcd.setCursor( 0, 0 );     // Va in posizione di home: colonna 1, riga 1
  lcd.print( "Temperatura FUMI");
  lcd.setCursor( 0, 1 );     // Va in posizione di home: colonna 1, riga 2
  lcd.print( temp );         // Stampa solo la parte intera della temp.
  lcd.print( ' ' );          // Stampa uno spazio
  lcd.print( (char) 223 );   // Stampa '°'
  lcd.print( 'C' );
  delay( 1000 );
}
Logged

Selvazzano Dentro - Padova
Offline Offline
Edison Member
*
Karma: 45
Posts: 1415
"Chi sa fa, chi non sa insegna"
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Secondo me la scelta di usare un motore stepper ti darà dei problemi, sia per il pilotaggio che per la coppia meccanica che possono erogare.

Invece concordo con cece99 sulla scelta del un servo: costano poco, si alimentano a 5-7V, sono disponibili in molti formati e potenze, per il loro pilotaggio esiste una valida libreria per Arduino.

Anche per la termocoppia potresti avere dei problemi; al suo posto ti consiglio di usare un LM35DZ oppure il migliore TMP35, usando gli ingressi analogici.

Se poi vuoi una misura di tipo digitale, il DS18B20 è la scelta migliore (ne esiste una versione incapsulata e dotata di filo di 5m che costa € 10).

Ettore Massimo Albani
« Last Edit: August 15, 2012, 05:37:36 pm by cyberhs » Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Mi spiace ma sulla termocoppia ti devo contraddire, ho appena provato il circuito sulla caldaia con la termocoppia piazzata sulla canna fumaria, con il tester piazzato in in parallelo all'uscita del ad595 ho verificato il funzionamento e devo dire che FUNZIONA EGREGIAMENTE!! Uscita ad595=1,33v - temperatura visualizzata sul display=133 gradi, poi mi sono fermato perché non mi va di tenere una bomba di calore in piena estate, quindi un passo sono riuscito a farlo!
Logged

Offline Offline
Full Member
***
Karma: 2
Posts: 103
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset


qui simulavo l'ad595 con un trimmer da 10k e il tester leggeva la tensione di uscita dal trimmer
Logged

Pages: [1]   Go Up
Jump to: