Pages: 1 ... 3 4 [5]   Go Down
Author Topic: Controllo e gestione carico casalingo con sistema di priorità !  (Read 7077 times)
0 Members and 1 Guest are viewing this topic.
Tuscany
Offline Offline
Edison Member
*
Karma: 78
Posts: 2151
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

quello che volevo dirti e' che fino a che e' collegato all'USB, Arduino viene alimentato dall'USB ( se la tensione sul Vin <6.6V )

Al momento che scolleghi l'USB , con solo 5,08V sul Vin, probabilmente hai una tensione di poco superiore a 4V per alimentare Arduino
Logged

Offline Offline
Jr. Member
**
Karma: 3
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

riporto quanto leggo dalla pagina guida di YUN

Quote
There is no built in 5V regulator. If you power your Yún with more than 5V, you will likely damage it. If you are not powering the Yún from the micro-USB connection, you can apply power to the VIN and 5V pins on the board. If using the VIN pin, you cannot provide more than 5V, it will damage your board. It is recommended to power the Yún from the USB connection whenever possible.

http://arduino.cc/en/Guide/ArduinoYun
Logged

Tuscany
Offline Offline
Edison Member
*
Karma: 78
Posts: 2151
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

come non detto.. son proprio fuso... era la Yun
Logged

Offline Offline
Jr. Member
**
Karma: 3
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

credo di aver sistemato  smiley-cool smiley-cool
Dico credo perché ho fatto a distanza l'upload del nuovo sketch e attualmente il tutto è montato senza i sensori...

Visto che fare una sola (o una manciata: si ho provato anche a mettere 3 o 4 letture consecutive di ogni porta prima di leggere la seguente) letture a vuoto prima della lettura ritenuta affidabile non risolveva, ho provato in quest'altro modo:

Code:
//Lettura dati dei sensori e calcolo della corrente assorbita e dei consumi in watt
  sensorTotValue = 0;
  sensorCucinaValue = 0;
  sensorStanzeValue = 0;
  sensorBagniValue = 0;
  offsetValue = 0;
  //SENSORE BAGNI
  numeroCampionamenti = 0;
  inizioCampionamenti = millis() ;
  do
  {
    numeroCampionamenti++;
    sensorBagniValue += analogRead(sensorBagniPin);
  }
  //20 sono i millisecondi che verranno campionati per ogni sensore (tempo di ciclo della corrente elettrica alternata a 50 Hz utilizzata in Europa)
  while ((millis() - inizioCampionamenti) < 20);
  sensorBagniValue /= numeroCampionamenti;
  //SENSORE STANZE
  numeroCampionamenti = 0;
  inizioCampionamenti = millis() ;
  do
  {
    numeroCampionamenti++;
    sensorStanzeValue += analogRead(sensorStanzePin);
  }
  //20 sono i millisecondi che verranno campionati per ogni sensore (tempo di ciclo della corrente elettrica alternata a 50 Hz utilizzata in Europa)
  while ((millis() - inizioCampionamenti) < 20);
  sensorStanzeValue /= numeroCampionamenti;
  //SENSORE CUCINA
  numeroCampionamenti = 0;
  inizioCampionamenti = millis() ;
  do
  {
    numeroCampionamenti++;
    sensorCucinaValue += analogRead(sensorCucinaPin);
  }
  //20 sono i millisecondi che verranno campionati per ogni sensore (tempo di ciclo della corrente elettrica alternata a 50 Hz utilizzata in Europa)
  while ((millis() - inizioCampionamenti) < 20);
  sensorCucinaValue /= numeroCampionamenti;
  //SENSORE TOTALE
  numeroCampionamenti = 0;
  inizioCampionamenti = millis() ;
  do
  {
    numeroCampionamenti++;
    sensorTotValue += analogRead(sensorTotPin);
  }
  //20 sono i millisecondi che verranno campionati per ogni sensore (tempo di ciclo della corrente elettrica alternata a 50 Hz utilizzata in Europa)
  while ((millis() - inizioCampionamenti) < 20);
  sensorTotValue /= numeroCampionamenti;
  //OFFSET
  numeroCampionamenti = 0;
  inizioCampionamenti = millis() ;
  do
  {
    numeroCampionamenti++;
    //offsetValue è la lettura senza carico che poi sottraiamo alle letture dei sensori
    offsetValue += analogRead(offsetPin);
  }
  //20 sono i millisecondi che verranno campionati per ogni sensore
  while ((millis() - inizioCampionamenti) < 20);
  offsetValue /= numeroCampionamenti;
  sensorTotValue -= offsetValue;
  sensorCucinaValue -= offsetValue;
  sensorStanzeValue -= offsetValue;
  sensorBagniValue -= offsetValue;
  //Alcune differenze potrebbero avere valore negativo per cui noi consideriamo il valore assoluto
  sensorTotValue = abs(sensorTotValue);
  sensorCucinaValue = abs(sensorCucinaValue);
  sensorStanzeValue = abs(sensorStanzeValue);
  sensorBagniValue = abs(sensorBagniValue);
  //Per ottenere gli ampere reali moltiplichiamo la media di ampere letti nei 20ms per 0.166 che è il fattore di conversione calcolato con un carico noto
  ampereTot = sensorTotValue * fattoreConversione;
  ampereCucina = sensorCucinaValue * fattoreConversione;
  ampereStanze = sensorStanzeValue * fattoreConversione;
  ampereBagni = sensorBagniValue * fattoreConversione;
  //Infine moltiplichiamo gli ampere per la tensione stabilita per ottenere il consumo in Watt
  consumoTot = ampereTot * tensione;
  consumoCucina = ampereCucina * tensione;
  consumoStanze = ampereStanze * tensione;
  consumoBagni = ampereBagni * tensione;

e ho 0 watt in tutte e 4 le variabili:  consumoTot, consumoCucina, consumoStanze, consumoBagni.

Appena torno sul posto, provo a collegare i sensori per accertarmi che non ci siano errori  o altri problemi  smiley-red
Logged

Offline Offline
Jr. Member
**
Karma: 3
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Aggiornamento situazione:
ho collegato i sensori e provato a leggere i 4 valori .. non erano attendibili, avevo spesso 0 oppure 38 oppure 76 oppure maxxxx su quello del totale 114 !!

però seguono il consumo, infatti se accendo un utilizzatore in bagno (phon da circa 1800watt) il valore di quel sensore sale, il totale pure, gli altri no ---> OK!

Però ovviamente non riportano valori giusti... ho provato ad abbassare il tempo di campionamento per ogni sensore (su Uno campionavo in 20 ms sia l'unico sensore che l'offset)... ho messo 10ms (a testa)  e i sensori hanno iniziato a mostrare valori piu reali (2000watt per la cucina con forno acceso!) ma se aggiorno velocemente la pagina che mostra i valori, vedo che ho dei brevi intervalli che mostrano valori più bassi del normale.

esempio ancora con cucina con forno acceso:

2050 - 2100 - 2050 - 1200 - 2050 (sono dati di esempio eh !!)

come posso aggirare il nuovo problema ?
Logged

Offline Offline
Jr. Member
**
Karma: 3
Posts: 86
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ci tengo, mentre cerco ancora di risolvere il problema,  a pubblicare 4 fotine dell'app per android che è uscita fuori:

Logged

Pages: 1 ... 3 4 [5]   Go Up
Jump to: