Se sei già registrato           oppure    

Orario: 28/04/2024 21:07:25  

 

Energia Alternativa ed Energia Fai Da Te > Arduino

VISUALIZZA L'ALBUM

Pagine: (11)   1   2   3   4   5   6   7   [8]   9   10   11    (Ultimo Msg)


Progetto controllo
FinePagina

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 18:15:49

//Number of pulses, used to measure energy.
volatile long pulseCount = 0;
long lastpulseCount = 0 ;
//Used to measure power.
volatile unsigned long pulseTime, lastTime ;

//power and energy
float power, elapsedkWh;

//Number of pulses per wh - found or set on the meter.
int ppwh = 1; //1000 pulses/kwh = 1 pulse per wh

void setup()
{
  pinMode(13, OUTPUT);
  pinMode ( 3, INPUT_PULLUP);
  // KWH interrupt attached to IRQ 1 = pin3
  attachInterrupt(digitalPinToInterrupt(3), Pulse, FALLING);
}

void loop()
{
  if (pulseCount != lastpulseCount)  {
    lastpulseCount = pulseCount ;
    digitalWrite(13, HIGH);
    Serial.print(pulseCount);
    Serial.print("   ");
    printing();
  }
  else digitalWrite(13, LOW);
  delay(200);
}

// The interrupt routine
void Pulse()
{
  lastTime = pulseTime;
  pulseTime = micros();
  pulseCount++ ;
}


void printing()
{
  //Calculate power
  power = (3600000000.0 / (pulseTime - lastTime)) / ppwh;

  //Find kwh elapsed
  elapsedkWh = (1.0 * pulseCount / (ppwh * 1000)); //multiply by 1000 to pulses per wh to kwh convert wh to kwh

  //Print the values.
  lcd.print(power, 4);
  lcd.print("  Kw.Tot = ");
  lcd.println(elapsedkWh, 3);
}



Modificato da BellaEli - 02/06/2016, 00:28:23
 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 18:16:26

ciao ragazzi ho iniziato a buttare giu questo codice ma non funziona ancora mi aiutate?

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 18:34:45

mi da questo errore

In function 'void setup()':
error: 'NOT_AN_INTERRUPT' was not declared in this scope

evidenziandomi questa stringa
attachInterrupt(digitalPinToInterrupt(3), Pulse, FALLING);

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 01/06/2016 19:24:43

Eccomi, ho scritto qualche riga di codice che dovresti ricopiare ed adattare le varie componenti alle sezioni già scritte, quindi ricopia le istruzioni delle dichiarazioni iniziali, setup, loop e void nelle rispettive sezioni, poi devi sistemare le dichiarazioni delle porte per adattarle al tuo codice.
Il codice non l'ho provato, quindi probabilmente vi saranno delle modifiche da fare, nel caso prova a farle direttamente tu, chiedi consiglio al forum, se potrò continuerò a darti una mano, ma non ci sperare troppo, non ho molto tempo.



#define LED 6 //led lettura abilitata
#define sensLamp 8 //sensore fotodiodo
unsigned long T1,T2,T3;
const int P1 = 7; //pulsante per misura
byte blocco_letture;
int n_letture;
float kw = 0; // consumo istantaneo
float Tkw = 0; //totale consumo
float MTkw = 0; // media consumo

void setup() {
  

  pinMode(LED, OUTPUT);
  pinMode(sensLamp, INPUT);
  pinMode(P1, INPUT);
  T1 = 0;
  T2 = 0;
  T3 = 0;
  n_letture = 0;
  blocco_letture = 0;
  
}

void loop() {

  if (P1 == HIGH){n_letture = 0; T1=0; T2=0; T3=0; kw = 0; Tkw = 0; MTkw = 0; delay (300); misura(); }
  
}

void misura(){

  digitalWrite(LED, HIGH);
  
  while (P1 != HIGH){ 
                     switch (blocco_letture) {
                                        case 0: { if (digitalRead(sensLamp) == HIGH){T1 = millis(); blocco_letture = 1;}}
                                        case 1: { if (digitalRead(sensLamp) == HIGH){T2 = millis(); n_letture ++; T3 = T2 - T1; 
                                        kw = 3600 / T3; Tkw = Tkw + kw; MTkw = Tkw / n_letture; T1 = T2; T2 = 0; T3 = 0;}}
                                          
                                             }
                     }
  digitalWrite(LED, LOW); delay(300);
  }
      
  





---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 19:46:09

grazie calcola per l'aiuto
ho caricato lo skatch inserendolo nel mio progetto
ho messo in stampa il valore MTkw
però non incrementa
sia premendo e rilasciando il pulsante
sia tenendo premuto il pulsante
ho notato però associando al pulsante la stringa
int buttonState = digitalRead(P1);
e stampandone a lcd il valore resta sempre 0
anche se fisicamente il pulsante funziona e alla pressione invia un +3.96v



Modificato da Kroko - 01/06/2016, 20:50:14
 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 01/06/2016 20:41:39

Non nel void, ma nel loop, aggiungi due righe per visualizzare i kw sull'LCD e fai girare solo il codice che ho postato.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

calcola
GigaWatt


Gruppo:Utente
Messaggi:4435

Stato:



Inviato il: 01/06/2016 20:45:11

Se la tua schedina fotoled ha due pin in uscita, ricordati di collegare solo il pin digitale e non quello analogico.
Il pulsante non lo devi mai tenere premuto devi solo dare un'impulso.



---------------
Impara l'arte e mettila da parte
14 pannelli da 100w, inverter kemapower 3kw, regolatore morningstar tristar ts60, banco batterie n.1 di 12 elementi 2v 480Ah C5 corazzate per trazione pesante, banco batterie n.2 di 400Ah in C5 formato da 24 elementi 2V 200Ah corazzate al gel per fotovoltaico in due serie da 12 elementi, centralina di gestione impianto autoprodotta.

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 20:51:36

grazie calcola per l'aiuto
ho caricato lo skatch inserendolo nel mio progetto
ho messo in stampa il valore MTkw
però non incrementa
sia premendo e rilasciando il pulsante
sia tenendo premuto il pulsante
ho notato però associando al pulsante la stringa
int buttonState = digitalRead(P1);
e stampandone a lcd il valore resta sempre 0
anche se fisicamente il pulsante funziona e alla pressione invia un +3.96v

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 21:09:12

nulla da fare ho messo addirittura su lcd tutti e 3 i valori di MTkw, Tkw e kw
ma una volta dato l'impulso e il photoled comincia a ricevere impulsi dai led del CE(me ne accorgo dal led sul sensore)
lo stato delle letture e delle potenze non varia
Ho sbagliato qualcosa io?

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 21:16:15


#include "DHT.h" // INCLUDO LIBRERIA PER SENSORI DHT

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGHE DISPLAY LCD CON MODULO I2C
#include <Wire.h> 
#include <LiquidCrystal_I2C.h>
LiquidCrystal_I2C lcd(0x27,20,4); //PER IL DISPLAY 2X16 è IDONEO IL VALORE 0X3F PER IL 4X20 è 0X27
const int BACKLIGH_PIN = 10; 
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGA PHOTOLED
#define LED 6 //led lettura abilitata
#define sensLamp 3 //sensore fotodiodo
unsigned long T1,T2,T3;
const int P1 = 9; //pulsante per misura
byte blocco_letture;
int n_letture;
float kw = 0; // consumo istantaneo
float Tkw = 0; //totale consumo
float MTkw = 0; // media consumo

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGHE WATTMETRO
int OffsetPin = A3; 
int TensionePin = A1; 
int CorrentePin_1 = A2; 
//Nuovo_Fattore_Conversione=Valore_Reale/Valore_Arduino*Fattore_Conversione_Attuale 
float Fattore_Conversione_Tensione = 0.61054; //da calcolare 
float Fattore_Conversione_Corrente_1 = 0.302; //da calcolare 
float TensioneRMS ; 
float CorrenteRMS_1 ; 
float CorrenteRMS_2 ; 
float PotenzaAttiva_1; 
float PotenzaAttiva_2; 
float PotenzaApparente_1; 
float PotenzaApparente_2; 
float FattorediPotenza_1; 
float FattorediPotenza_2;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGHE SENSORI TEMPERATURA DHT11
#define DHTPIN0 2                  // PIN DOVE è CONNESSO IL SENSORE DHT11 N°1 (TEMP. ESTERNA)
#define DHTPIN1 4                  // PIN DOVE è CONNESSO IL SENSORE DHT11 N°2 (TEMP. TR ALTERNATA)
#define DHTPIN2 1                  // PIN DOVE è CONNESSO IL SENSORE DHT11 N°3 (TEMP. TR CONTINUA)
#define DHTTYPE DHT11              // DEFINISCO IL TIPO DI SENSORE 
DHT dht0(DHTPIN0, DHTTYPE);        // SELEZIONA PIN E TIPO DEL SENSORE DHT11 N°1
DHT dht1(DHTPIN1, DHTTYPE);        // SELEZIONA PIN E TIPO DEL SENSORE DHT11 N°2
DHT dht2(DHTPIN2, DHTTYPE);        // SELEZIONA PIN E TIPO DEL SENSORE DHT11 N°3
float h0 = dht0.readTemperature(); // imposto la variabile h0 per la lettura del valore di dht0
float h1 = dht1.readTemperature(); // imposto la variabile h1 per la lettura del valore di dht1
float h2 = dht2.readTemperature(); // imposto la variabile h2 per la lettura del valore di dht2


/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void setup() { 
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  pinMode(13, OUTPUT); //PIN LED GIALLO SEGNALAZIONE TEMPERATURA TR ALTERNATA 0<T<29
  pinMode(12, OUTPUT); //PIN LED ROSSO SEGNALAZIONE TEMPERATURA TR ALTERNATA  T>=30
  pinMode(11, OUTPUT); //PIN LED GIALLO SEGNALAZIONE TEMPERATURA TR CONTINUA  T>=30
  pinMode(10, OUTPUT); //PIN LED ROSSO SEGNALAZIONE TEMPERATURA TR CONTINUA  T>=30


//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGA PHOTOLED
  pinMode(LED, OUTPUT);
  pinMode(sensLamp, INPUT);
  pinMode(P1, INPUT);
  T1 = 0;
  T2 = 0;
  T3 = 0;
  n_letture = 0;
  blocco_letture = 0;
  Serial.begin(9600);

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
  dht0.begin(); //FAI PARTIRE IL SENSORE DHT11 N°1
  dht1.begin(); //FAI PARTIRE IL SENSORE DHT11 N°2
  dht2.begin(); //FAI PARTIRE IL SENSORE DHT11 N°3
  
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGHE DISPLAY LCD CON MODULO I2C
  pinMode(BACKLIGH_PIN, OUTPUT); 
  digitalWrite(BACKLIGH_PIN, HIGH); 
  lcd.init();                      // INIZIALIZZA IL MODULO LCD 
  lcd.init();
  lcd.backlight();
  lcd.setCursor(0, 0); 
  lcd.print("ZeraSim Project"); //SCRIVI SULLA PRIMA RIGA
  lcd.setCursor(0,1); 
  lcd.print("VERSIONE FV 1.3"); //SCRIVI SULLA SECONDA RIGA
  delay(5000); 
  lcd.clear(); 
  ADCSRA&=0X90+ 0b101; //Setta ADC prescaler a 32 
}

/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
void loop() {
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRINGA PHOTOLED
if (P1 == HIGH){n_letture = 0; T1=0; T2=0; T3=0; kw = 0; Tkw = 0; MTkw = 0; delay (300); misura(); }



////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 
//STRINGHE WATTMETRO 
  float SommaV=0; 
  float SommaI_1=0; 
  float SommaP_1=0; 
  int NumCampionamenti = 20;   //CONSIDERO 20 CAMPIONAMENTI
  int Offset = analogRead(OffsetPin); 
  unsigned long start = micros() ; 
  while (micros() < (start + 20000)){ 
    float Tensioneinst = (analogRead(TensionePin)-Offset)*Fattore_Conversione_Tensione; 
    float Correnteinst_1 = (analogRead(CorrentePin_1)-Offset)*Fattore_Conversione_Corrente_1; 
    SommaV += pow(Tensioneinst,2); 
    SommaI_1 += pow(Correnteinst_1,2); 
    SommaP_1 += (Tensioneinst*Correnteinst_1); 
    NumCampionamenti++; 
  } 
  TensioneRMS = sqrt(SommaV / NumCampionamenti); 
  CorrenteRMS_1 = sqrt(SommaI_1 / NumCampionamenti); 

  if (CorrenteRMS_2 < 0.10) {//soglia minima 
    CorrenteRMS_2=0; 
    PotenzaAttiva_1 = SommaP_1/ NumCampionamenti; 
    PotenzaApparente_1 = TensioneRMS * CorrenteRMS_1; 
    FattorediPotenza_1 = PotenzaAttiva_1/PotenzaApparente_1; 
  }
/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//STRIGHE DISPLAY
  {
  lcd.setCursor(0, 0);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(TensioneRMS,0);        //IMPOSTO IL VALORE DA LEGGERE SENZA VIRGOLA
  lcd.print("V ");                 //IL VALORE SARà SEGUITO DALLA LETTERA V
  lcd.setCursor(5, 0);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(CorrenteRMS_1,2);      //IMPOSTO IL VALORE DA LEGGERE CON UNA CIFRA DOPO LA VIRGOLA
  lcd.print("A ");                 //IL VALORE SARà SEGUITO DALLA LETTERA A
  lcd.setCursor(11,0);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(PotenzaAttiva_1,0);    //IMPOSTO IL VALORE DA LEGGERE SENZA VIRGOLA
  lcd.print("W ");                 //IL VALORE SARà SEGUITO DALLA LETTERA W
  lcd.setCursor(16,0);             //IMPOSTO IL PUNTO SUL DISPLAY
  lcd.print(FattorediPotenza_1,1); //IMPOSTO IL VALORE DA LEGGERE CON UNA CIFRA DOPO LA VIRGOLA
  lcd.print("");                   //
  }

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////  
//ACCENSIONE O MENO DEI LED DI SEGNALAZIONE LUMINOSA DELLA TEMPERATURA
  if (28<dht1.readTemperature()<29){    // se il sensore h1 rileva una determinata temperatura accende LED GIALLO
    digitalWrite (13, HIGH);
  }
  if (dht1.readTemperature()>=30){      // se il sensore h1 rileva una determinata temperatura accende LED ROSSO
    digitalWrite (12,HIGH);
  }
  else{                                 //ALTRIMENTI IL LED ROSSO RESTA SPENTO
    digitalWrite (12,LOW);
  }
  
  if (28<dht2.readTemperature()<29){    // se il sensore H2 rileva una determinata temperatura accende LED GIALLO
    digitalWrite (11, HIGH);
  }
  if (dht2.readTemperature()>=30){      // se il sensore H2 rileva una determinata temperatura accende LED ROSSO
    digitalWrite (10,HIGH);
  }
  else{                                 //ALTRIMENTI IL LED ROSSO RESTA SPENTO
    digitalWrite (10,LOW);
  }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
//LETTURA E STAMPA SU LCD DEI VALORI DI TEMPERATURA
  float h0 = dht0.readTemperature();
  float h1 = dht1.readTemperature();
  float h2 = dht2.readTemperature();

  lcd.setCursor(0, 1);             //PRENDO COME RIFERIMENTO LཇMO PUNTO SULLA 1A STRINGA DELLO SCHERMO LCD
  lcd.print(h0,0);                 //STAMPO SU LCD IL VALORE DEL SENSORE h0
  lcd.print("E");                  //IL VALORE SARà SEGUITO DALLA LETTERA E
  lcd.setCursor(4, 1);             //PRENDO COME RIFERIMENTO LཇMO PUNTO SULLA 1A STRINGA DELLO SCHERMO LCD
  lcd.print(h1,0);                 //STAMPO SU LCD IL VALORE DEL SENSORE h1
  lcd.print("w");                  //IL VALORE SARà SEGUITO DAL SIMBOLO ^
  lcd.setCursor(8, 1);             //PRENDO COME RIFERIMENTO LཇMO PUNTO SULLA 1A STRINGA DELLO SCHERMO LCD
  lcd.print(h2,0);                 //STAMPO SU LCD IL VALORE DEL SENSORE h2
  lcd.print("-");  
  lcd.setCursor(0, 2);             //PRENDO COME RIFERIMENTO LཇMO PUNTO SULLA 1A STRINGA DELLO SCHERMO LCD
  lcd.print(MTkw,0);                 //STAMPO SU LCD IL VALORE DEL SENSORE h2
  lcd.print("");
    lcd.setCursor(5, 2);             //PRENDO COME RIFERIMENTO LཇMO PUNTO SULLA 1A STRINGA DELLO SCHERMO LCD
  lcd.print(kw,0);                 //STAMPO SU LCD IL VALORE DEL SENSORE h2
  lcd.print("");
    lcd.setCursor(10, 2);             //PRENDO COME RIFERIMENTO LཇMO PUNTO SULLA 1A STRINGA DELLO SCHERMO LCD
  lcd.print(Tkw,0);                 //STAMPO SU LCD IL VALORE DEL SENSORE h2
  lcd.print("");
  
  // Legge lo stato sul PIN 2
  int buttonState = digitalRead(P1);
  // Stampa sul Serial Monitor il valore letto sul pin 2 (pushButton)
  Serial.print(buttonState);
  delay(1000); // ritardo di un secondo  
}
void misura(){

  digitalWrite(LED, HIGH);
  
  while (P1 != HIGH){ 
                     switch (blocco_letture) {
                                        case 0: { if (digitalRead(sensLamp) == HIGH){T1 = millis(); blocco_letture = 1;}}
                                        case 1: { if (digitalRead(sensLamp) == HIGH){T2 = millis(); n_letture ++; T3 = T2 - T1; 
                                        kw = 3600 / T3; Tkw = Tkw + kw; MTkw = Tkw / n_letture; T1 = T2; T2 = 0; T3 = 0;}}
                                          
                                             }
                     }
  digitalWrite(LED, LOW); delay(300);
  }

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 01/06/2016 21:19:25

il codice ora è diventato questo
il programma non mi da nessun errore salvo il fatto che
scusate se mi ripeto ma le potenze non incrementano restando sempre a 0

 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 02/06/2016 00:24:51

Ciao Kroko, dunque...

prima di tutto hai verificato che arduino legge correttamente il foto led ? Hai provato a scrivere 2 righe di codice che, ad esempio, accendono un Led quando il foto Led è attivato ?

Nell'ultima riga c'è un delay di 300 mS, forse è eccessivo, potrebbe capitare che il lampeggio non venga beccato, tuttavia diminuirlo troppo potrebbe generare errori di lettura: hai la possibilità di misurare quanto dura il lampeggio ?

Perché hai abbandonato l'idea dell'interrupt ?

Da quello che ho capito bisogna tener premuto il pulsante per partire con le letture che si azzereranno non appena il pulsante viene rilasciato, giusto ?

Dovresti pubblicare anche lo schema elettrico, costruirlo a mente dalle variabili è davvero complicato...

Scusami se non riesco a seguirti come vorrei, il tempo è sempre poco...

Non sei così inesperto come volevi farci credere...!!!

Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 02/06/2016 00:38:47

allora sto scimunendo sopra
quello che ho capito è che il mio photoled quando capta il segnale passa da 1 a 0
nel codice qualcosa mi blocca i tempi cioè le T1 e T2 ma non mi so ancora spiegare cosa
ora vado a dormire
buona notte a tutti
e se qualcuno può ritagliarmi un po' di tempo gli sarei molto grato
ogni consiglio è ben accetto

 

Kroko
KiloWatt


Gruppo:Utente
Messaggi:101

Stato:



Inviato il: 02/06/2016 00:43:18

CITAZIONE (BellaEli, 02/06/2016 00:24:51 ) Discussione.php?213706&8#MSG120

Ciao Kroko, dunque...

prima di tutto hai verificato che arduino legge correttamente il foto led ? Hai provato a scrivere 2 righe di codice che, ad esempio, accendono un Led quando il foto Led è attivato ?

lo provo domani


CITAZIONE
Nell'ultima riga c'è un delay di 300 mS, forse è eccessivo, potrebbe capitare che il lampeggio non venga beccato, tuttavia diminuirlo troppo potrebbe generare errori di lettura: hai la possibilità di misurare quanto dura il lampeggio ?

l'ho ridotto a 50ms il tempo minimo di un lampeggio

CITAZIONE
Perché hai abbandonato l'idea dell'interrupt ?

non ho abbandonato nessuna strada purtroppo l'inesperienza nel settore mi costringe ad attendere voi esperti
per questo vi dico se avete un po di tempo non mi abbandonate

CITAZIONE
Da quello che ho capito bisogna tener premuto il pulsante per partire con le letture che si azzereranno non appena il pulsante viene rilasciato, giusto ?

tutto da provare da come mi ha spiegato calcola basta premerlo una volta e si passa in modalità misura

CITAZIONE
Dovresti pubblicare anche lo schema elettrico, costruirlo a mente dalle variabili è davvero complicato...

Scusami se non riesco a seguirti come vorrei, il tempo è sempre poco...

Elix



Modificato da BellaEli - 02/06/2016, 01:00:50
 

BellaEli

Avatar
GigaWatt


Gruppo:MODERATORE
Messaggi:3286

Stato:



Inviato il: 02/06/2016 01:07:50


CITAZIONE

tutto da provare da come mi ha spiegato calcola basta premerlo una volta e si passa in modalità misura

Sto col cell, non ho uno sguardo complessivo del codice, tuttavia c'è il ciclo while (P1 != High), quindi la misura dovrebbe essere effettuata solamente se il pulsante è pigiato... Tuttavia senza schema elettrico ogni cosa potrebbe essere interpretata nel modo errato...

CITAZIONE
quello che ho capito è che il mio photoled quando capta il segnale passa da 1 a 0

Allora dovresti sostituire le due istruzioni alla fine digitalRead (SensLamp) == HIGH con == LOW !

Elix



---------------
C'è un limite al fai da te ???
Si, ma lo stabiliamo noi !!!

 
 InizioPagina
 

Pagine: (11)   1   2   3   4   5   6   7   [8]   9   10   11    (Ultimo Msg)

Versione Mobile!

Home page       TOP100-SOLAR      Home page forum