Ciao,
grazie per avermi risposto,
di seguito il codice completo
// modificato il 22/12/13 alle 22:11 ancora da provare, ma si compila
// modificato il 23/12/13 alle 22:39 ancora problema a leggere 2 analogici insieme
#include <stdio.h>
#include <LiquidCrystal.h>
#include <TriggerButton.h>
LiquidCrystal lcd(12, 11, 5, 4, 3, 2);
//set per timer
long int millisecondi;
static unsigned long Tmush=0;
int timer1 = 0;
int timer2 = 0;
int timer3 = 0;
int prova = 0;
int let_analogici = 0;
//setup parametri
//taratura PT1000 Mush
float tMushMin=1; //temperatura minima
float tMushMax=100; //temperatura massima
int AMushMin=20; //valore analogico minimo
int AMushMax=1000; //valore analogico massimo
//taratura PT1000 Sparge
float tSpargeMin=1; //temperatura minima
float tSpargeMax=100; //temperatura massima
int ASpargeMin=20; //valore analogico minimo
int ASpargeMax=1000; //valore analogico massimo
//taratura PT1000 Boil
//float tBoilMin=1; //temperatura minima
//float tBoilMax=100; //temperatura massima
//int ABoilMin = 20; //valore analogico minimo
//int ABoilMax = 1000; //valore analogico massimo
//dati ricetta
//temperature degli steps tutte le temperature sono in °C
int tMush_IN = 45; //mpasto omogeneo a 40°C //temperatura di mushIN
int tAcid_Rest = 40; //Acid rest a 40°
int tProtein_Rest = 50;
int tB_amilasi = 60;
int tA_amilasi = 70;
int tS_unica_AB = 65; //la tempertura varia in base al fatto se si vuole preferire la fase a o b amilasi se si fa questa non si fanno le 2 precedenti
int tMush_OUT = 78; //si porta a 78°C per rendere l'impasto meno denso
int tSpargeIN = 80;
//decorazione attulmente non gestita
// temperatura per sparge
int tSparge = 78;
//Tempi
static int TMush_IN = 10000; //durata TMush_IN in millisecondi
static int TAcid_Rest = 6000;
static int TProtein_Rest = 5000;
static int TB_amilasi = 4000;
static int TA_amilasi = 6000;
static int TS_unica_AB = 5000;
static int TMush_OUT = 4000;
//variabili
float Pt1000_Mush = 0; //riferita A0
float Pt1000_Sparge = 0; //riferita A1
//float Pt1000_Boil = 0; //riferita A2
//int iStato_puls = 0; //stato plusante reset allarme
int iStato_end_step = 0; //stato dell'uscita che comanda il cicalino
int iStato_V1_mixer = 0;
int iStato_V2_mixer = 0;
int stato_pulsante_reset = 0;
boolean bStato_SpargeOK = 0;
float tmush = 0;
float tsparge = 0;
//float tboil = 0;
boolean bStato_all = false; // stato allarme suona o no
boolean bStato_puls = false;
TriggerButton Button1;
TriggerButton Button2;
//pin out
int al_fine_step = 10; // cialino e led step raggiunto
int al_tSpargeOK = 9; //spia temperatura Sparge raggiunta
int Alim_retro_lcd = 8; // Alimimentazione retroilluminazione lcd
int V1_mixer = 7; //uscita per velocità 1 mixer
int V2_mixer = 6; //uscita per velocità 2 mixer
// enumerazione macchina a stati
typedef enum{
sMush_IN=0,
sAcid_Rest,
sProtein_Rest,
sB_amilasi,
sA_amilasi,
sS_unica_AB,
sMush_OUT,
SMfinito
}stati;
stati ricetta;
//Pt1000_Mush = A0;
//Pt1000_Sparge = A2;
void setup()
{
pinMode (52, INPUT); //setto come ingressi i pin
pinMode (53, INPUT); //setto come ingressi i pin
Button1.setUp(52, HIGH); //setto pin 38 come pulsante attivo alto
Button2.setUp(53, HIGH);
//int preMushIN=(millis() - Tmush) >=Tmush_step1 && tmush>MushIN && stato == 1 );
//ingressi analogici
//uscite
pinMode(30,INPUT);
pinMode(al_fine_step, OUTPUT); // cialino e led step raggiunto
pinMode(13, OUTPUT);
pinMode(Alim_retro_lcd, OUTPUT);
pinMode(al_tSpargeOK, OUTPUT); // Alimimentazione retroilluminazione lcd
//comuniczione
//arrey
// setup seriale
Serial.begin(57600);
//digitalWrite(13,LOW)
// setup display
lcd.begin(16, 2); //setta la dimensione del display 16 colonne 2 righe nota: quì si parte a contare da 1
//lcd.print("Volpara-HB"); // va sulla prima riga
}
void loop()
{
//
//lcd.setCursor(0, 0); //imposta 0 numero di colonna da dove cominciare a scrivere sulla riga 1 nota: qui si parte a contare da 0
//lcd.print(millis()/1000); //esegue counter a video da quando il sistema è partito
digitalWrite(13,LOW);
if (bStato_all == false){digitalWrite (al_fine_step, LOW);}
if (bStato_all == true){digitalWrite (al_fine_step, HIGH);}
if (bStato_SpargeOK == false){digitalWrite (al_tSpargeOK, LOW);}
if (bStato_SpargeOK == true){digitalWrite (al_tSpargeOK, HIGH);}
if (let_analogici == 0){
Pt1000_Mush=analogRead(A0); //imposto il valore dell'ingresso A0
float tmush=((tMushMax-tMushMin)/(AMushMax-AMushMin))*(Pt1000_Mush-AMushMin)-tMushMin;
lcd.setCursor(0, 1);
lcd.print("T M ");
lcd.print(tmush);
//let_analogici = 1;
}
else
{
Pt1000_Sparge=analogRead(A2); //imposto il valore dell'ingresso A1
float tsparge=((tSpargeMax-tSpargeMin)/(ASpargeMax-ASpargeMin))*(Pt1000_Sparge-ASpargeMin)-tSpargeMin;
lcd.setCursor(0, 0);
lcd.print("T S ");
lcd.print(tsparge);
//let_analogici = 0;
}
delay (50);
Serial.println (let_analogici);
//Pt1000_Boil=analogRead(A10); //imposto il valore dell'ingresso A2
//float tboil=((tBoilMax-tBoilMin)/(ABoilMax-ABoilMin))*(Pt1000_Boil-ABoilMin)-tBoilMin;
switch(ricetta){
case sMush_IN:
{
bStato_puls = false;
bStato_all = false;
//Pt1000_Mush=analogRead(A0); //imposto il valore dell'ingresso A0
//float tmush=((tMushMax-tMushMin)/(AMushMax-AMushMin))*(Pt1000_Mush-AMushMin)-tMushMin;
if(tmush<tMush_IN) //se la temp attuale è minore di quella desiderata allora
{
Tmush=millis(); //il timer non conta
}
if(timer3=((millis() - Tmush) >=TProtein_Rest) && (tmush>tMush_IN) && (bStato_puls == false) ) //se il (tempo trascorso - il tempo di prima) è maggiore o uguale al tempo impostato e la temperatura attuale è maggiore di quella desiderata e il pulsante non è premuto
{
bStato_all = true;
}
if(Button1.Click(10))
{
bStato_puls = !bStato_puls;
}
if (bStato_puls == true )//(bStato_all == false)
{
ricetta=sB_amilasi;
//iStato_puls = 0;// sposta lo stato Switch
}
//funziona
//Serial.println(tsparge);
//lcd.setCursor(0, 11);
//lcd.print("T M ");
//lcd.print(tmush);
//lcd.print(" mush_in");
//delay (500);
break;
}
ora per i collegamenti ho messo il pin 1 di entrambi i potenziometri a +3.3v ho provato a metterli a +5v ma non cambia nulla,
il pin 3 di entrambi sono a gnd,
mentre il pin centrale dei potenziometri vanno sull'A0 per uno e A2 per l'alro.
non riesco a capire come mai ho questo problema.
grazie per l'aiuto e buon Natale