Show Posts
Pages: 1 ... 40 41 [42] 43 44 ... 279
616  International / Hardware / Re: Come gestire componenti lavatrice on: March 09, 2014, 05:25:38 am
Quanta esperienza hai ?  Molta poca probabilmente, perché ... altrimenti non porresti questa domanda ...  smiley-roll

"Giocare" con il 220V è molto pericoloso ed altamente sconsigliato se non si ha esperienza !

Quindi ... il consiglio è di stargli alla larga ... basta un nulla (... un filo che si stacca, un contatto accidentale, un corto, una saldatura fatta male, ecc. ecc.) per farsi molto male e fare notevoli danni !

Guglielmo



617  International / Generale / Re: Serra casalinga automatizzata on: March 09, 2014, 04:30:05 am

Lascia stare ... non è roba per dilettanti ...  smiley-razz smiley-razz smiley-mr-green smiley-mr-green smiley-lol smiley-lol

Guglielmo
618  International / Generale / Re: Consigliatemi un Tutorial per configurare XBee S2 montate su Arduino on: March 09, 2014, 04:28:04 am
da questo si capisce che sono un principiante! =S .... vabè ormai il danno è fatto! .... dici che con questi moduli che ho comprato non riuscirò a formare una rete a stella con 1  Coordinatore e 2 End-Device ?

NO, non ho detto questo, certo che ci riuscirai ... solo che la strada è parecchio in salita e ti toccherà studiare un bel po' di documentazione e fare un po di ricerche su Google per avere un po' d'esempi di configurazione ...

Con i Serie 1 ... al 90%, li accendevi e andavano ...  smiley-roll

Guglielmo
619  International / Hardware / Re: [SemiOT] Dissipatore 7805 fai da te on: March 09, 2014, 03:46:11 am
A parte un po' di puzza di pesce all'inizio, raffreddava bene.



Guglielmo
620  International / Software / Re: problema libreria arduino on: March 09, 2014, 03:38:55 am
Ma come fai a richiamare un metodo di un oggetto se non lo hai creato istanziando la classe ???

... e, l'uso di una classe all'interno di una classe ... t'assicuro che non è affatto così banale e così sconato (... prova a fare una ricerca su Google per "c++ using a class within a class").

Se poi ci metti che, in mezzo, hai l'IDE di Arduino, che, per semplificare la vita hai meno esperti, cerca di fare lui delle cose, ma che in realtà, in questi casi complica il tutto, capirai che ... sarà dura uscirne fuori ...  smiley-roll

Comunque ... io non sono certo un esperto di C++ (... anzi, io lavoro solo in ANSI C), qui ci vuole l'amico MauroTec che invece ... di solito ... pasteggia a C++  smiley-lol smiley-lol smiley-lol

Guglielmo
621  International / Hardware / Re: [SemiOT] Dissipatore 7805 fai da te on: March 09, 2014, 03:28:35 am
In realtà tutto è importante, anche il colore dell'alluminio ...  smiley-mr-green

Ma la cosa più importante è che ti ricordi di mettere un velo di pasta termo-conduttrice tra il 7805 e il dissipatore, così assicuri il massimo del trasferimento termico ... smiley-wink

Guglielmo
622  International / Generale / Re: Tastiera a matrice per inserire password ed attivazione impianto antintifurto on: March 09, 2014, 03:26:11 am
Si, puoi farlo, ma la logica corretta non sarebbe quella di dover interrogare il pin, ma di avere delle variabili di stato che, in ogni momento, ti rappresentano lo stato di un pin e che tu usi per settare tale stato ...

Dichiarale byte, non serve sprecare un int che occupa il doppio ...

Code:
byte val1, val2;

... inizializzale nel setup() :

Code:
void setup() {
   ...
   val1 = LOW;
   val2 = LOW;
   pinMode (ZONA1, OUTPUT);
   pinMode (ZONA2, OUTPUT);
   digitalWrite(ZONA1, val1);
   digitalWrite(ZONA2, val2);
   ...
}

... e poi usale nel tuo programma dato che val1 e val2 rappresenteranno sempre lo stato delle tue uscite senza dover ogni volta perdere tempo a fare delle digitalRead() sui pin di output. smiley-wink

Guglielmo
623  International / Generale / Re: Consigliatemi un Tutorial per configurare XBee S2 montate su Arduino on: March 09, 2014, 03:12:24 am
Per quale motivo, o per quali particolari esigente, ti sei andato a prendere dei moduli Serie 2 invece che quelli (... di più semplice configurazione) di Serie 1 ???

Sei al corrente del fatto che i moduli di Serie 2 sono fatti per lavorare solo in modalità Mesh o con l'ausilio di un Repeater, al contrario di quelli di Serie 1 che, più semplicemente, sono dei point-to-point o point-to-multipoint (QUI per le differenze)?

Quanta esperienza hai con gli Xbee ?  I Serie 2, sono dei moduli più complessi e tutta quello che ti devi strudiare ... lo trovi QUI nella sezione "Documentation" mentre nella sezione "Diagnostics, Utilities and MIBs" trovi il programma XCTU che ti serve per la configurazione ...  smiley-roll

Prova a guardare anche QUI ... magari ti aiuta ...  smiley-roll

Guglielmo
624  International / Software / Re: problema libreria arduino on: March 08, 2014, 05:41:57 pm
Mah ...
veramente a me da altri errori ... molto prima ... direttamente in Cesar.cpp ... mi spieghi a te come fa a compilarlo ???

Ad esempio ...
Code:
float Cesar::getDistance(){           
  microsec = ultrasonic.timing();
  cm = ultrasonic.convert(microsec, Ultrasonic::CM);
  return cm;
}

... mi spieghi qui come fai a chiamare ultrasonic.timing(); visto che non mi sembra tu abbia istanziato la classe ???

Guglielmo
625  International / Hardware / Re: Progetto PAN&TILT - Alimentazione servo motori - PROBLEMA! on: March 08, 2014, 05:28:27 pm
...
Dopo il fallimento di questa prova ho deciso di alimentare separatamente motori e scheda.
Ho preso due caricabatterie samsung, stesse specifiche di cui sopra, e alimentati separatamente le due sorgenti.
...

Domanda banale ...
ti sei ricordato, anche in questo secondo caso (due alimentatori separati), di mettere i GND in comune ?  smiley-roll

Guglielmo
626  International / Software / Re: problema libreria arduino on: March 08, 2014, 05:15:20 pm
Ciao,
dunque, tu instanzi la classe Cesar qui :

Code:
Cesar cesar();

quindi crei un oggetto cesar con la c minuscola, mentre poi ...

Code:
....
Cesar.checkGround()
...
Cesar.indietro
....

e via dicendo, con la C di cesar maiuscola che ... è tutt'altra cosa  smiley-lol

Ricorda che il C è "case sensitive" e quindi devi rispettare le maiuscole e le minuscole o ... sono dolori ...  smiley-mr-green

Guglielmo
627  International / Software / Re: Errore nello sketch, non riesco a trovarlo on: March 08, 2014, 05:06:57 pm
Comunque Guglielmo io credo che tu sia una simulazione Software che risponde a comando, una persona fisica che possa dare aiuto  in questo modo la vedo impossibile trovarla...per la pazienza, capacità e immediatezza. Sei un GRANDE e ti stimo moltissimo :-)

Grazie ... così arrossisco ... smiley-red smiley-red smiley-red

Per la verità la cosa te l'aveva segnalata anche Nid ... io te l'ho solo più dettagliata e spiegato perché accadesse ... smiley-wink

SI, finché sono questi programmi (... piuttosto semplici smiley-wink ) ... riesco ancora a fare una "simulazione a mente" ... e ci mancherebbe ... sono ... appena 40 anni che mi ci diverto e ... mi preoccuperebbe il contrario  smiley-lol smiley-lol smiley-lol

Vedrai che piano piano, facendo esperienza, verrà sempre più naturale anche a te ... smiley-wink

Buona continuazione !!!

Guglielmo
628  International / Generale / Re: Presentazioni nuovi iscritti, fatevi conoscere da tutti! on: March 08, 2014, 04:53:02 pm
Un benvenuto a tutte le ... giovani leve ...  smiley-mr-green

Mi raccomando, un'attenta lettura del regolamento aiuta ad evitare ... problemi con i moderatori ... smiley-wink

Ancora benvenuti !!! smiley

Guglielmo
629  International / Software / Re: Errore nello sketch, non riesco a trovarlo on: March 08, 2014, 04:50:06 pm
quella seriale serve per ricevere tutti gli stati dei 12 ingressi digitali attraverso il comando"_"
Mentre "SERIALE" serve per gli out di arduino (ON/OFF) attivabili sempre attraverso la ricezione di comandi seriali.

Ma mica perché devi fare cose diverse devono stare in funzioni diverse ...  smiley-eek

Hai un'unica funzione che legge la seriale e, in funzione del carattere ricevuto decide cosa fare ...
... dal fare delle stampe ad attivare dei relè a leggere degli input ... ecc. ecc.

Ogni carattere attiverà un "case" differente e verrà processato come cosa a se stante ... smiley-wink

Guglielmo
630  International / Software / Re: Errore nello sketch, non riesco a trovarlo on: March 08, 2014, 04:43:19 pm
Finalmente, adesso ho chiaro il problema.
Quindi, come dovrei gestire la seriale.

Semplicemente riunendo in un unica funzione quello cle quelle due funzioni fanno e ...

Code:
#include <Keypad.h> //LIBRERIA TASTIERINI 4X3

const byte ROWS = 4; //four rows
const byte COLS = 4; //four columns

const short RELE1 = 42;
const short RELE2 = 43;
const short RELE3 = 44;
const short RELE4 = 45;

//definisci i simboli dei tasti tastierino
char hexaKeys[ROWS][COLS] = {
   {'1','2','3','A'},
   {'4','5','6','B'},
   {'7','8','9','C'},
   {'*','0','#','D'}
};

byte rowPins[ROWS] = {5, 4, 3, 2}; //connessione dei pin RIGHE del tastierino
byte colPins[COLS] = {9, 8, 7, 6}; //connessione dei pin COLONNE del tastierino

//Inizializza l' istanza class NewKeypad
Keypad customKeypad = Keypad( makeKeymap(hexaKeys), rowPins, colPins, ROWS, COLS);

byte digitalpin[] = {30,31,32,33,34,35,36,37,38,39,40,41};
byte lastStatus[] = {HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH,HIGH};
byte flag;
byte i;
byte buttonStatus;
long previousMillis = 0, interval = 4000;

//------------LM 35
float temp1, temp2, temp3, temp4, temp5, temp6, temp7, temp8;
float tempPin1 = 0;
float tempPin2 = 1;
float tempPin3 = 2;
float tempPin4 = 3;
float tempPin5 = 4;
float tempPin6 = 5;
float tempPin7 = 6;
float tempPin8 = 7;

void setup() {
   Serial.begin(115200);
   pinMode(RELE1, OUTPUT);
   pinMode(RELE2, OUTPUT);
   pinMode(RELE3, OUTPUT);
   pinMode(RELE4, OUTPUT);
   for(i = 0; i < sizeof(digitalpin); i++) //Setta a pullup tutti gli ingressi digitali attraverso il ciclo for
   {
      pinMode(digitalpin[i], INPUT_PULLUP);
   }
}

void loop (){
   //---------------------------------------------------
   TASTIERINO();         // è il nome della funzione che invia i valori dei pulsanti tastierini (pin 2 --> pin 8)
   INGRESSI_DIGITALI();  // è il nome della funzione che invia i valori dei pulsanti tastierini (pin A12 --> pin A15)
   TEMPERATURE_LM35();   // è il nome della funzione che invia i valori delle sonde LM35 (pin A0 --> pin A7)
   SERIALE();            // è il nome della funzione che invia i valori degli ingressi diditali (pin 30 --> pin 42)
   //---------------------------------------------------
}

//---------------------------------------------------

void SERIALE() {
   if (Serial.available()) {
      byte command = Serial.read(); //leggo il primo byte
      switch (command) {
     
         case '_' : // RICEZIONE COMANDO PER L' INVIO STATO TUTTI INGRESSI DIGITALI
            Serial.print("D");
            for (i = 0; i < sizeof(digitalpin); i++) Serial.print(!lastStatus[i]); // notare che ora stampa lo stato NEGATO così HIGH 0 LOW 1
            Serial.print("F");
            break;
           
case '+':
    digitalWrite (RELE1, HIGH);
    break;
         
case '-':
    digitalWrite (RELE1, LOW);
    break;
         
case 'B':
    digitalWrite (RELE2, HIGH);
    break;
         
case 'b':
    digitalWrite (RELE2, LOW);
    break;
         
case 'C':
    digitalWrite (RELE3, HIGH);
    break;

         case 'c':
    digitalWrite (RELE3, LOW);
    break;
         
      }
   }
}

//////////////////////////////////    TASTIERINO NUMERICO   ////////////////////////////////

void TASTIERINO() {
   char customKey = customKeypad.getKey();
   if (customKey){
      Serial.print("K");
      Serial.print(customKey);
      Serial.print("F");
   }
}

//-----------------------------------------------------------------

void INGRESSI_DIGITALI() {
   flag = false;

   for (i = 0; i < sizeof(digitalpin); i++) {
      buttonStatus = digitalRead(digitalpin[i]);
      if (lastStatus[i] != buttonStatus) {
         delay(60);
         buttonStatus = digitalRead(digitalpin[i]);
         if (lastStatus[i] != buttonStatus) {
            lastStatus[i] = buttonStatus;       
            flag = true;
         }
      }
   }
   if (flag) {
      Serial.print("D");
      for (i = 0; i < sizeof(digitalpin); i++) Serial.print(!lastStatus[i]); // notare che ora stampa lo stato NEGATO così HIGH 0 LOW 1
      Serial.print("F");
   }
}

//-----------------------------------------------------------------

void TEMPERATURE_LM35() {
   {
      unsigned long currentMillis = millis();
      if(currentMillis - previousMillis > interval)
      {
         previousMillis = currentMillis;   // qui dentro esegui ogni tot di tempo impostato da interval
         temp1 = analogRead(tempPin1);
         temp2 = analogRead(tempPin2);
         temp3 = analogRead(tempPin3) ;
         temp4 = analogRead(tempPin4);
         temp5 = analogRead(tempPin5);
         temp6 = analogRead(tempPin6);
         temp7 = analogRead(tempPin7);
         temp8 = analogRead(tempPin8);

         temp1 = temp1 * 0.48828125 ;
         temp2 = temp2 * 0.48828125;
         temp3 = temp3 * 0.48828125;
         temp4 = temp4 * 0.48828125;
         temp5 = temp5 * 0.48828125;
         temp6 = temp6 * 0.48828125;
         temp7 = temp7 * 0.48828125;
         temp8 = temp8 * 0.48828125;

         Serial.print("T");
         Serial.print(",");
         Serial.print(temp1);
         Serial.print(",");
         Serial.print(temp2);
         Serial.print(",");
         Serial.print(temp3);
         Serial.print(",");
         Serial.print(temp4);
         Serial.print(",");
         Serial.print(temp5);
         Serial.print(",");
         Serial.print(temp6);
         Serial.print(",");
         Serial.print(temp7);
         Serial.print(",");
         Serial.print(temp8);
         Serial.print("F");
      } // delay(1000);
   }
}

... ho eliminato USCITE() e raggruppato tutto in SERIALE() smiley-wink

Guglielmo
Pages: 1 ... 40 41 [42] 43 44 ... 279