Pages: [1]   Go Down
Author Topic: [RISOLTO]accedere 4 led con lo switch e porta usb  (Read 954 times)
0 Members and 1 Guest are viewing this topic.
Torino (ITA)
Offline Offline
Full Member
***
Karma: 1
Posts: 161
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Salve cercando sul forum o su google su come accendere un led con arduino collegato con usb/seriale, ho trovato questo programma che fa accendere e spegnere un led quando io inserisco 1 si accende e se inserisco 2 si spegne, e questi numeri li metto sulla finestra di monitor seriale
Code:
int n=5;
int a;  

void setup()
{
pinMode(n, OUTPUT);
Serial.begin(9600);
}

void loop()
{
if (Serial.available() > 0) {
 a = Serial.read();
  if (a == '1') {
   digitalWrite(n, HIGH);
                            }
                          }  
  if (a == '2') {
   digitalWrite(n, LOW);
  }
}
e questo programma funziona, ma ora voglio accendere 5 led allora ho fatto questo programma prendendo per esempio quello di prima
Code:
int e=5;
int d=6;
int c=7;
int r=8;
int a;
int h=3;

void setup()
{
pinMode(e, OUTPUT);
pinMode(d, OUTPUT);
pinMode(c, OUTPUT);
pinMode(r, OUTPUT);
pinMode(h, OUTPUT);
Serial.begin(9600);
}

void loop()
{
if (Serial.available() > 0) {
 a = Serial.read();
   switch(a){
    case 1:
   digitalWrite(e, HIGH);
   break;
   case 2:
   digitalWrite(e, LOW);
   break;
   case 3:
   digitalWrite(d, HIGH);
   break;
   case 4:
   digitalWrite(d, LOW);
   break;
   case 5:
   digitalWrite(c, HIGH);
   break;
   case 6:
   digitalWrite(c, LOW);
   break;
   case 7:
   digitalWrite(r, HIGH);
   break;
   case 8:
   digitalWrite(r, LOW);
   break;
   default:
   digitalWrite(h, LOW);
   break;
  }
}
}
ma quando metto i numeri su monitor seriale non funziona!!
cosa ho sbagliato?? mi sapete aiutare??
« Last Edit: September 18, 2012, 01:57:23 pm by alberto39 » Logged

Offline Offline
God Member
*****
Karma: 9
Posts: 550
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nessun led si accende/spegne?neanche quello collegato al pin 5?
Logged

Torino (ITA)
Offline Offline
Full Member
***
Karma: 1
Posts: 161
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

nessun led si accende/spegne?neanche quello collegato al pin 5?
neanche quello!!!! smiley-cry
Logged

Offline Offline
God Member
*****
Karma: 8
Posts: 691
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

con questo puoi accendere spegnere 9 led
 se vui pui accederli tutti e 19
basta che dichiari gli altri pin restanti ,
se metti uno  si accende il led al pin uno   se metti 101 si spegne

se metti 2 si accende il led al pin 2  se metti 102 si spegne,

pui specificare tu che numero mettere  per accendere/spegnere  il led che vuoi  solo numeri da 1 a 99999999

Code:
long vet[9] = {
  -2, -2, -2, -2, -2, -2, -2, -2, -2 };


long cont = 0;
long x = 0;

void setup()
{

  Serial.begin(9600);

  pinMode (0, OUTPUT);  
  pinMode (1, OUTPUT);  
  pinMode (2, OUTPUT);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);  
  pinMode (5, OUTPUT);  
  pinMode (6, OUTPUT);  
  pinMode (7, OUTPUT);
  pinMode (8, OUTPUT);
  pinMode (9, OUTPUT);
    pinMode (13, OUTPUT);


digitalWrite (1,LOW);

digitalWrite (2,LOW);

digitalWrite (3,LOW);

digitalWrite (4,LOW);

digitalWrite (5,LOW);

digitalWrite (6,LOW);

digitalWrite (7,LOW);

digitalWrite (8,LOW);

digitalWrite (9,LOW);

digitalWrite (13,LOW);

}

void loop()
{
  while (Serial.available() > 0)
  {
    vet[cont] = Serial.read()-48;
    cont++;
    delay(60);
  }

  if (vet[0] < -2 || vet[1] < -2 || vet[2] < -2 || vet[3] < -2 || vet[4] < -2 || vet[5] < -2 || vet[6] < -2 || vet[7] < -2 || vet[8] < -2)
    Serial.println(" ATTENZIONE DEVI  INSERIRE SOLO NUMERI DA 1 A 999999999  ");

  if (vet[0] > 9 || vet[1] > 9 || vet[2] > 9 || vet[3] > 9 || vet[4] > 9 || vet[5] > 9 || vet[6] > 9 || vet[7] > 9 || vet[8] > 9)
    Serial.println("   ATTENZIONE DEVI  INSERIRE SOLO NUMERI DA 1 A 999999999  ");



  if(cont > 0)
  {
    cont = 0;


    if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 &&  vet[5] ==  -2  && vet[4] ==  -2  && vet[3] ==  -2  && vet[2] ==  -2  && vet[1] ==  -2 )
  
    {                                                              

        x = vet[0];                                                  
    }
    else

        if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] ==  -2  && vet[4] ==  -2  && vet[3] ==  -2  && vet[2] ==  -2 ) //  
      {
        x = (vet[0]* 10 +   vet[1]    );
      }
      else
        if  (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 &&  vet[5] ==  -2  && vet[4] ==  -2  && vet[3] ==  -2 ) //
        {
          x = (vet[0] * 100 + vet[1]* 10+ vet[2]);
        }
        else
          if  (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] ==  -2  && vet[4] ==  -2  )
          {
            x = (vet[0] * 1000 + vet[1] * 100 + vet[2]* 10 + vet[3]);  
          }
          else
            if  (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] ==  -2   )
            {
              x = (vet[0] * 10000 + vet[1] * 1000 + vet[2]* 100 + vet[3]* 10 + vet[4]);  

            }
            else
              if  (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 )
              {
                x = (vet[0] * 100000 + vet[1] * 10000 + vet[2]* 1000 + vet[3]* 100 + vet[4]* 10 + vet[5]);  

              }
              else

                if  (vet[8] == -2 && vet[7] == -2 )
              {
                x = (vet[0] * 1000000 + vet[1] * 100000 + vet[2]* 10000 + vet[3]* 1000 + vet[4]* 100 + vet[5]* 10+ vet[6]);  

              }
              else  

                if  (vet[8] == -2 )
              {
                x = (vet[0] * 10000000 + vet[1] * 1000000 + vet[2]* 100000 + vet[3]* 10000 + vet[4]* 1000 + vet[5]* 100 + vet[6]* 10+ vet[6]);  

              }
              else



                x = (vet[0] * 100000000 + vet[1] * 10000000 + vet[2]* 1000000 + vet[3]* 100000 + vet[4]* 10000 + vet[5]* 1000 + vet[6]* 100 + vet[7] * 10 + vet[8]);


    if (vet[0] < -2 || vet[1] < -2 || vet[2] < -2 || vet[3] < -2 || vet[4] < -2 || vet[5] < -2 || vet[6] < -2 || vet[7] < -2 || vet[8] < -2 ) x = 0;
    if (vet[0] > 9 || vet[1] > 9 || vet[2] > 9 || vet[3] > 9 || vet[4] > 9 || vet[5] > 9 || vet[6] > 9 || vet[7] > 9 || vet[8] > 9)  x = 0;

    if (x == -2 || x== -1) x=0;

    Serial.println( vet[0]);
    Serial.println( vet[1]);
    Serial.println( vet[2]);
    Serial.println( vet[3]);
    Serial.println( vet[4]);
    Serial.println( vet[5]);
    Serial.println( vet[6]);
    Serial.println( vet[7]);
    Serial.println( vet[8]);

    if (vet[0] >= -2 && vet[1]  >= -2 &&  vet[2]  >= -2 &&  vet[3] >= -2 && vet[4] >= -2 && vet[5] >= -2 && vet[6] >= -2 && vet[7] >= -2 && vet[8] >= -2 &&
      vet[0] <= 9 && vet[1] <= 9 &&  vet[2] <= 9 &&  vet[3] <= 9 &&  vet[4] <= 9 &&  vet[5] <= 9 &&  vet[6] <= 9 &&  vet[7] <= 9 &&  vet[8] <= 9 )
      Serial.println(" NUMERO INSERITO  "),   Serial.println(x);

    if (x == 0)   Serial.println(" REINSERISCI UN  NUMERO DA 1 A 999999999  ")  ;




    vet[0] = -2;  
    vet[1] = -2;
    vet[2] = -2;
    vet[3] = -2;
    vet[4] = -2;
    vet[5] = -2;
    vet[6] = -2;
    vet[7] = -2;
    vet[8] = -2;      
  }
  
  if (x == 1) digitalWrite (1, HIGH);
  if (x == 101) digitalWrite (1,LOW);
  if (x == 2) digitalWrite (2, HIGH);
  if (x == 102) digitalWrite (2,LOW);
  if (x == 3) digitalWrite (3, HIGH);
  if (x == 103) digitalWrite (3,LOW);
  if (x == 4) digitalWrite (4, HIGH);
  if (x == 104) digitalWrite (4,LOW);
  if (x == 5) digitalWrite (5, HIGH);
  if (x == 105) digitalWrite (5,LOW);
  if (x == 6) digitalWrite (6, HIGH);
  if (x == 106) digitalWrite (6,LOW);
  if (x == 7) digitalWrite (7, HIGH);
  if (x == 107) digitalWrite (7,LOW);
  if (x == 8) digitalWrite (8, HIGH);
  if (x == 108) digitalWrite (8,LOW);
  if (x == 9) digitalWrite (9, HIGH);
  if (x == 109) digitalWrite (9,LOW);


}


« Last Edit: September 18, 2012, 01:46:38 pm by GINGARDU » Logged


Le cose si possono considerare facili in due casi: quando le si conosce bene o quando non le si conosce affatto...

Torino (ITA)
Offline Offline
Full Member
***
Karma: 1
Posts: 161
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

con questo puoi accendere spegnere 9 led
 se vui pui accederli tutti e 19
basta che dichiari gli altri pin restanti ,
se metti uno  si accende il led al pin uno   se metti 101 si spegne

se metti 2 si accende il led al pin 2  se metti 102 si spegne,

pui specificare tu che numero mettere  per accendere/spegnere  il led che vuoi  solo numeri da 1 a 99999999

Code:
long vet[9] = {
  -2, -2, -2, -2, -2, -2, -2, -2, -2 };


long cont = 0;
long x = 0;

void setup()
{

  Serial.begin(9600);

  pinMode (0, OUTPUT);  
  pinMode (1, OUTPUT);  
  pinMode (2, OUTPUT);
  pinMode (3, OUTPUT);
  pinMode (4, OUTPUT);  
  pinMode (5, OUTPUT);  
  pinMode (6, OUTPUT);  
  pinMode (7, OUTPUT);
  pinMode (8, OUTPUT);
  pinMode (9, OUTPUT);
    pinMode (13, OUTPUT);


digitalWrite (1,LOW);

digitalWrite (2,LOW);

digitalWrite (3,LOW);

digitalWrite (4,LOW);

digitalWrite (5,LOW);

digitalWrite (6,LOW);

digitalWrite (7,LOW);

digitalWrite (8,LOW);

digitalWrite (9,LOW);

digitalWrite (13,LOW);

}

void loop()
{
  while (Serial.available() > 0)
  {
    vet[cont] = Serial.read()-48;
    cont++;
    delay(60);
  }

  if (vet[0] < -2 || vet[1] < -2 || vet[2] < -2 || vet[3] < -2 || vet[4] < -2 || vet[5] < -2 || vet[6] < -2 || vet[7] < -2 || vet[8] < -2)
    Serial.println(" ATTENZIONE DEVI  INSERIRE SOLO NUMERI DA 1 A 999999999  ");

  if (vet[0] > 9 || vet[1] > 9 || vet[2] > 9 || vet[3] > 9 || vet[4] > 9 || vet[5] > 9 || vet[6] > 9 || vet[7] > 9 || vet[8] > 9)
    Serial.println("   ATTENZIONE DEVI  INSERIRE SOLO NUMERI DA 1 A 999999999  ");



  if(cont > 0)
  {
    cont = 0;


    if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 &&  vet[5] ==  -2  && vet[4] ==  -2  && vet[3] ==  -2  && vet[2] ==  -2  && vet[1] ==  -2 )
  
    {                                                              

        x = vet[0];                                                  
    }
    else

        if (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] ==  -2  && vet[4] ==  -2  && vet[3] ==  -2  && vet[2] ==  -2 ) //  
      {
        x = (vet[0]* 10 +   vet[1]    );
      }
      else
        if  (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 &&  vet[5] ==  -2  && vet[4] ==  -2  && vet[3] ==  -2 ) //
        {
          x = (vet[0] * 100 + vet[1]* 10+ vet[2]);
        }
        else
          if  (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] ==  -2  && vet[4] ==  -2  )
          {
            x = (vet[0] * 1000 + vet[1] * 100 + vet[2]* 10 + vet[3]);  
          }
          else
            if  (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 && vet[5] ==  -2   )
            {
              x = (vet[0] * 10000 + vet[1] * 1000 + vet[2]* 100 + vet[3]* 10 + vet[4]);  

            }
            else
              if  (vet[8] == -2 && vet[7] == -2 && vet[6] == -2 )
              {
                x = (vet[0] * 100000 + vet[1] * 10000 + vet[2]* 1000 + vet[3]* 100 + vet[4]* 10 + vet[5]);  

              }
              else

                if  (vet[8] == -2 && vet[7] == -2 )
              {
                x = (vet[0] * 1000000 + vet[1] * 100000 + vet[2]* 10000 + vet[3]* 1000 + vet[4]* 100 + vet[5]* 10+ vet[6]);  

              }
              else  

                if  (vet[8] == -2 )
              {
                x = (vet[0] * 10000000 + vet[1] * 1000000 + vet[2]* 100000 + vet[3]* 10000 + vet[4]* 1000 + vet[5]* 100 + vet[6]* 10+ vet[6]);  

              }
              else



                x = (vet[0] * 100000000 + vet[1] * 10000000 + vet[2]* 1000000 + vet[3]* 100000 + vet[4]* 10000 + vet[5]* 1000 + vet[6]* 100 + vet[7] * 10 + vet[8]);


    if (vet[0] < -2 || vet[1] < -2 || vet[2] < -2 || vet[3] < -2 || vet[4] < -2 || vet[5] < -2 || vet[6] < -2 || vet[7] < -2 || vet[8] < -2 ) x = 0;
    if (vet[0] > 9 || vet[1] > 9 || vet[2] > 9 || vet[3] > 9 || vet[4] > 9 || vet[5] > 9 || vet[6] > 9 || vet[7] > 9 || vet[8] > 9)  x = 0;

    if (x == -2 || x== -1) x=0;

    Serial.println( vet[0]);
    Serial.println( vet[1]);
    Serial.println( vet[2]);
    Serial.println( vet[3]);
    Serial.println( vet[4]);
    Serial.println( vet[5]);
    Serial.println( vet[6]);
    Serial.println( vet[7]);
    Serial.println( vet[8]);

    if (vet[0] >= -2 && vet[1]  >= -2 &&  vet[2]  >= -2 &&  vet[3] >= -2 && vet[4] >= -2 && vet[5] >= -2 && vet[6] >= -2 && vet[7] >= -2 && vet[8] >= -2 &&
      vet[0] <= 9 && vet[1] <= 9 &&  vet[2] <= 9 &&  vet[3] <= 9 &&  vet[4] <= 9 &&  vet[5] <= 9 &&  vet[6] <= 9 &&  vet[7] <= 9 &&  vet[8] <= 9 )
      Serial.println(" NUMERO INSERITO  "),   Serial.println(x);

    if (x == 0)   Serial.println(" REINSERISCI UN  NUMERO DA 1 A 999999999  ")  ;




    vet[0] = -2;  
    vet[1] = -2;
    vet[2] = -2;
    vet[3] = -2;
    vet[4] = -2;
    vet[5] = -2;
    vet[6] = -2;
    vet[7] = -2;
    vet[8] = -2;      
  }
  
  if (x == 1) digitalWrite (1, HIGH);
  if (x == 101) digitalWrite (1,LOW);
  if (x == 2) digitalWrite (2, HIGH);
  if (x == 102) digitalWrite (2,LOW);
  if (x == 3) digitalWrite (3, HIGH);
  if (x == 103) digitalWrite (3,LOW);
  if (x == 4) digitalWrite (4, HIGH);
  if (x == 104) digitalWrite (4,LOW);
  if (x == 5) digitalWrite (5, HIGH);
  if (x == 105) digitalWrite (5,LOW);
  if (x == 6) digitalWrite (6, HIGH);
  if (x == 106) digitalWrite (6,LOW);
  if (x == 7) digitalWrite (7, HIGH);
  if (x == 107) digitalWrite (7,LOW);
  if (x == 8) digitalWrite (8, HIGH);
  if (x == 108) digitalWrite (8,LOW);
  if (x == 9) digitalWrite (9, HIGH);
  if (x == 109) digitalWrite (9,LOW);


}


grazie ma ho risolto da solo, dovevo scrivere case '1' con '' e funziona ecco il codice corretto
Code:
int e=5;
int d=6;
int c=7;
int r=8;
int a;
int h=3;

void setup()
{
pinMode(e, OUTPUT);
pinMode(d, OUTPUT);
pinMode(c, OUTPUT);
pinMode(r, OUTPUT);
pinMode(h, OUTPUT);
Serial.begin(9600);
}

void loop()
{
if (Serial.available() > 0) {
 a = Serial.read();
   switch(a){
    case '1':
   digitalWrite(e, HIGH);
   break;
   case '2':
   digitalWrite(e, LOW);
   break;
   case '3':
   digitalWrite(d, HIGH);
   break;
   case '4':
   digitalWrite(d, LOW);
   break;
   case '5':
   digitalWrite(c, HIGH);
   break;
   case '6':
   digitalWrite(c, LOW);
   break;
   case '7':
   digitalWrite(r, HIGH);
   break;
   case '8':
   digitalWrite(r, LOW);
   break;
   default:
   digitalWrite(h, LOW);
   break;
  }
}
}
Logged

Pages: [1]   Go Up
Jump to: