Show Posts
Pages: 1 [2]
16  International / Generale / Re: non so usare nè millis nè sec timer on: December 14, 2012, 09:04:08 am
ok grazie.
17  International / Generale / Re: non so usare nè millis nè sec timer on: December 14, 2012, 05:19:15 am
se all evento schedulato faccio fare solo temp=analogread(a0);
e poi la variabile temp la gestisco fuori dall'evento? cioè nel loop?
tipo la conversione del valore analogico in gradi e anche la trasmissione via seriale?
e nel loop metto la condizione che se temp è cambiato (ma cambierà solo se la vado a leggere ed io la leggerò tramite l'evento) fa cose tipo accendi led, comunicalo alla seriale ecc altrimenti passa avanti
18  International / Generale / Re: non so usare nè millis nè sec timer on: December 14, 2012, 04:16:34 am
ok grazie leo. secTimer l'ho scaricata ieri sera , l'ho provata e anche con l'esempio base, il tempo non corrisponde, cioè la frequenza di lampeggìo del led non è di un secondo(almeno a me).
cmq a qst punto credo sia conveniente passare direttamente a leOS... lo vorrei utilizzare per leggere dati da arduino (sensori ecc) e poi qllo ke mi ritorna dalla funzione lo leggerò tramite seriale nel loop.
ad esempio: mentre nel loop tengo la seriale aperta per inviare comandi ad arduino e ricevere risposte, nell'evento schedulato vorrei leggere ogni 5 min la temperatura di un sensore, e gestirla nel loop...nel senso se valore troppo basso accendi led.
nn so se mi sn spiegato.
grazie
19  International / Generale / Re: non so usare nè millis nè sec timer on: December 14, 2012, 03:27:23 am
sto appna leggendo la discussione su leOS , credo che quello sia il nuovo modo di gestire il multitasking ...ke ne dite? quando eseguo una funzione con leOS posso leggere il risultato nel loop?
20  International / Generale / Re: non so usare nè millis nè sec timer on: December 14, 2012, 02:57:53 am
ciao e grz x la risp.
uso la 0023.

Code:
stato6^=1;
il fatto è che a me lampeggia ilk led, quindi lo stato6 me lo cambia di valore.

cmq con
Code:
     unsigned long currentMillis = millis();
     if(currentMillis - previousMillis > interval) {
   
     previousMillis = currentMillis;
     stato6^=1;
     digitalWrite(luce6, stato6);
adesso riesco a far lampeggiare il led e a comunicare con la seriale.
il problema mi resta solo con secTimer.

Uwe ma mi consigli di passare all'IDE 1.X ?
21  International / Generale / non so usare nè millis nè sec timer on: December 13, 2012, 05:55:32 pm
salve a tutti, sto provando a fare un pò di pratica con arduino uno.
ho preso degli esempi in rete e cerco di modificarli a piacere.
tramite seriale invio dei caratteri a arduino e con uno switch case esegue delle determinati operazioni e scrive delle cose su seriale.
vorrei provare a usare il "multitasking " di arduino ma non capisco come fare.

allora mentre è in ascolto sulla seriale voglio far lampeggiare un led ho provato con millis e il lampeggìo del led è a tempo però il programma non mi ascolta sulla seriale. mentre con secTimer anche con l'esempio base ho notato che il tempo non corrisponde.
Grazie a tutti delle risposte

Code:

#define luce1 11  // led connesso al pin n°10
#define luce2 10
#define luce3 9
#define luce4 8
#define luce5 6
#define luce6 7
byte rx = 0;    // variabile per contenere il carattere ricevuto
int stato1=0;
int stato2=0;
int stato3=0;
int stato4=0;
int stato5=0;
int stato6=0;
long previousMillis = 0;
long interval = 5000;

void setup()
{
Serial.begin(9600); // imposto la UART per lavorare a 9600
        pinMode(luce1, OUTPUT); // imposto il pin sul quale è collegato il led come uscita
pinMode(luce2, OUTPUT); // imposto il pin sul quale è collegato il led come uscita
pinMode(luce3, OUTPUT); // imposto il pin sul quale è collegato il led come uscita
pinMode(luce4, OUTPUT); // imposto il pin sul quale è collegato il led come uscita
pinMode(luce5, OUTPUT); // imposto il pin sul quale è collegato il led come uscita
pinMode(luce6, OUTPUT); // imposto il pin sul quale è collegato il led come uscita

        Serial.flush(); // svuoto il buffer di ricezione seriale
}
void loop()
{

if (Serial.available() >0) // Controllo se il buffer di ricezione contiene qualcosa
{
rx = Serial.read(); // leggo il carattere ricevuto e lo memorizzo in rx
Serial.flush(); // svuoto il buffer di ricezione seriale
   switch (rx) {
  case '1':    // your hand is on the sensor
    digitalWrite(luce1,HIGH);
    Serial.println("luce1 accesa");
    break;
  case '2':    // your hand is close to the sensor
    digitalWrite(luce2,HIGH);
    Serial.println("luce2 accesa");
    break;
  case '3':    // your hand is a few inches from the sensor
    digitalWrite(luce3,HIGH);
    Serial.println("luce3 accesa");
    break;
  case '4':    // your hand is nowhere near the sensor
    digitalWrite(luce4,HIGH);
    Serial.println("luce4 accesa");
    break;
  case '5':    // your hand is nowhere near the sensor
    digitalWrite(luce5,HIGH);
    Serial.println("luce5 accesa");
    break;
  case '6':    // your hand is nowhere near the sensor
    digitalWrite(luce6,HIGH);
    Serial.println("luce6 accesa");
    break;
   
  case 'a':    // your hand is on the sensor
    digitalWrite(luce1,LOW);
    Serial.println("luce 1 spenta");
    break;
  case 'b':    // your hand is close to the sensor
    digitalWrite(luce2,LOW);
    Serial.println("luce 2 spenta");
    break;
  case 'c':    // your hand is a few inches from the sensor
    digitalWrite(luce3,LOW);
    Serial.println("luce 3 spenta");
    break;
  case 'd':    // your hand is nowhere near the sensor
    digitalWrite(luce4,LOW);
    Serial.println("luce 4 spenta");
    break;
  case 'e':    // your hand is nowhere near the sensor
    digitalWrite(luce5,LOW);
    Serial.println("luce 5 spenta");
    break;
  case 'f':    // your hand is nowhere near the sensor
    digitalWrite(luce6,LOW);
    Serial.println("luce 6 spenta");
    break;
 
    case '0':
   stato1= digitalRead(luce1);
   if (stato1==1){
      Serial.println("luce1 accesa");
   }
      else{
      Serial.println("luce1 spenta");
      }
         stato2= digitalRead(luce2);
   if (stato2==1){
      Serial.println("luce2 accesa");
   }
      else{
      Serial.println("luce2 spenta");
      }
         stato3= digitalRead(luce3);
   if (stato3==1){
      Serial.println("luce3 accesa");
   }
      else{
      Serial.println("luce3 spenta");
      }
         stato4= digitalRead(luce4);
   if (stato4==1){
      Serial.println("luce4 accesa");
   }
      else{
      Serial.println("luce4 spenta");
      }
  }

   }
     unsigned long currentMillis = millis();
 
  if(currentMillis - previousMillis > interval) {
    // save the last time you blinked the LED
    previousMillis = currentMillis;
           stato6^=1;
        digitalWrite(luce6, stato6);
  }
}


22  General Category / General Discussion / ciao a tutti on: December 13, 2012, 05:50:53 pm
salve sono un ragazzo di 24 anni appassionato di elettronica e programmazione
Pages: 1 [2]