Jump to content
Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble
Slate Blackcurrant Watermelon Strawberry Orange Banana Apple Emerald Chocolate Marble

Filippo77

Utenti Registrati
  • Content count

    6
  • Joined

  • Last visited

Community Reputation

0 Neutra

About Filippo77

  • Rank
    Junior Member

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. Dimenticavo, dal monitor seriale, il PID out funziona e i valori cambiano fino ad arrivare a 100, ma le celle non reagiscono Qualche idea?
  2. Ho montato il tutto, ma le celle non funzionano.... non capisco dove sia il problema.. Sui terminali dell' H-Bridge in ingresso i 12v ci sono, ma in uscita verso le celle non c'è tensione... Qualche idea?
  3. Dimenticavo, se qualcuno sa come limitare la potenza delle celle, in modo da non fare un effetto on-off, mi farebbe il piacere di integrarlo nello sketch? Grazie
  4. Ciao a tutti, sono Filippo. Dopo anni di abbandono, sto ritornando alla produzione di piccoli batch di birra casalinga (appena mi arriva l'attrezzatura) Avendo pochissimo spazio, ho deciso di prendere una "macchina" Easy di BirraMia e, visto che ho il riscaldamento a pavimento e sempre il pochissimo spazio a disposizione, mi sto costruendo un sistema per auto controllare la temperatura del fermentatore, con celle di peltier. (ho postato uno schema e lo sketch qui)
  5. Allora ragazzi, penso di fare cosa gradita postando lo sketch dove ho unito la funzione di controllo ventole in base alla temperatura e il PID (di Mysobry) per controllare la temperatura del mosto e controllare le celle di Peltier. Allego anche lo schema, elementare, del circuito. Non ho avuto ancora la possibilità di testarlo, poiché mi manca la parte hardware, quindi non so se effettivamente funzioni o meno. /* Il programma misura la temperatura tramite sensori DS18B20 per regolare la rotazione dei due ventole da PC a 12V 0,25A, per controllare la temperatura della birra in fermentazione usando un terzo DS18B20 con funzione PID L'uscita del PID pilota un circuito H-bridge per le celle di Peltier */ #include <OneWire.h> #include <rgb_lcd.h> // libreria di gestione del display lcd Grove I2C #include <DallasTemperature.h> // dichiarazione di utilizzo della libreria DallasTemperature #include <PID_v1.h> /* Definizioni globali */ // Il terminale data del sensore è connesso alla porta 2 e 4 di Arduino #define ONE_WIRE_BUS_1 2 #define ONE_WIRE_BUS_2 4 #define ONE_WIRE_BUS_3 A0 // Imposta la comunicazione oneWire per comunicare // con un dispositivo compatibile OneWire oneWire_1(ONE_WIRE_BUS_1); OneWire oneWire_2(ONE_WIRE_BUS_2); OneWire oneWire_3(ONE_WIRE_BUS_3); // Passaggio oneWire reference alla Dallas Temperature. DallasTemperature sensor_1(&oneWire_1); DallasTemperature sensor_2(&oneWire_2); DallasTemperature sensor_3(&oneWire_3); double Setpoint, Input, Output; int SNS_A = A0; // current read int LPWM = 9; // H-bridge leg 1 ->LPWM int enL = 8; // H-bridge enable pin 1 -> L_EN int RPWM = 6; // H-bridge leg 2 ->RPWM int enR = 7; // H-bridge enable pin 2 -> R_EN int FANsensor0 = 10; // fan tachometer connected to digital pin 10 int letturaFANsensor0; unsigned long FANsignal0; // time duration between tachometer pulses float RPM0; // fan speed in RPM int FANsensor1 = 11; // fan tachometer connected to digital pin 11 int letturaFANsensor1; unsigned long FANsignal1; // time duration between tachometer pulses float RPM1; // fan speed in RPM unsigned long int time; int sampletime=1; // Number of sample to average-out sampling values /* Impostazione dell'hardware */ //Inizializzazione del PID, impostazione a DIRECT (frigo), e dell'LCD PID myPID(&Input, &Output, &Setpoint,2,5,1, REVERSE); rgb_lcd lcd ; void setup() { Setpoint = 30; //definizione del set point Serial.begin(9600); Serial.println("Temperatura PIDout Corrente\n"); time=millis(); lcd.begin(16, 2); digitalWrite(FANsensor0, HIGH); // turn on pull-up resistor digitalWrite(FANsensor1, HIGH); // turn on pull-up resistor //turn the PID on myPID.SetMode(AUTOMATIC); // Start up the OneWire library sensor_1.begin(); sensor_2.begin(); // Configurazione PIN direzione e freno H-bridge pinMode(LPWM, OUTPUT); pinMode(RPWM, OUTPUT); pinMode(enL, OUTPUT); pinMode(enR, OUTPUT); digitalWrite(enL, HIGH); digitalWrite(enR, HIGH); } void loop() { time=millis(); // inizio loop per visualizzare temperature e RPM lcd.setCursor(0,0); if(time>letturaFANsensor0+1){ lcd.print("RPM:"); FANsignal0=0; for (int i = 0; i < sampletime; i++) { // Average out pulseIn time reading in microseconds FANsignal0 = FANsignal0+pulseIn(FANsensor0, HIGH); } RPM0=(600000000/float(FANsignal0))/40; // in RPM lcd.print(int(RPM0)); // displays RPM value } lcd.setCursor(8,0); if(time>letturaFANsensor1+1){ lcd.print("RPM:"); FANsignal1=0; for (int i = 0; i < sampletime; i++) { // Average out pulseIn time reading in microseconds FANsignal1 = FANsignal1+pulseIn(FANsensor1, HIGH); } RPM1=(600000000/float(FANsignal1))/40; // in RPM lcd.print(int(RPM1)); // displays RPM value } lcd.setCursor(0,1); lcd.print("T1:"); sensor_1.requestTemperatures(); lcd.println(sensor_1.getTempCByIndex(0)); lcd.setCursor(8,1); lcd.print("T2:"); sensor_2.requestTemperatures(); lcd.println(sensor_2.getTempCByIndex(0)); delay(1000); // fine loop per visualizzare temperature e RPM // inizio loop PID double temp = sensor_3.getTempCByIndex(0); // legge il valore della temperatura e la memorizza nella var. temp. Input = temp; //temperatura passata in ingresso a PID myPID.Compute(); digitalWrite(LPWM, LOW); analogWrite(RPWM,Output); //PWM con segnale in uscita pari a uscita PID Serial.print( temp); // invia i valori alla seriale Serial.print("\t"); Serial.print((Output/255*100)); Serial.print("\t"); Serial.print(analogRead(SNS_A)); Serial.print("\n"); delay (1000); // fine loop PID }
  6. Nessuna novità? Io però non so fare niente.... :-)
×