Pages: 1 [2]   Go Down
Author Topic: Valore potenziometro su schermo porta seriale  (Read 799 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Sr. Member
****
Karma: 0
Posts: 423
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ecco il codice:
Code:
int led1= 11;
int led2= 10;
int led3= 9;
int pausa_corta;
int pausa_lunga;
int i;
void setup ()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}
void loop()
{
  pausa_lunga= analogRead(0);
  pausa_corta= pausa_lunga/2;
  Serial.print (pausa_lunga);
  digitalWrite (led1, HIGH);
  delay (pausa_lunga);
  digitalWrite (led2, HIGH);
  delay (pausa_lunga);
  digitalWrite (led3, HIGH);
  delay (pausa_lunga);
  digitalWrite (led1, LOW);
  delay (pausa_lunga);
  digitalWrite (led2, LOW);
  delay (pausa_lunga);
  digitalWrite (led3, LOW);
  delay (pausa_lunga);
  for (i=0; i<5; i++)
  {
    digitalWrite (led1, HIGH);
    delay (pausa_corta);
    digitalWrite (led2, HIGH);
    digitalWrite (led1, LOW);
    delay (pausa_corta);
    digitalWrite (led3, HIGH);
    digitalWrite (led2, LOW);
    delay (pausa_corta);
    digitalWrite(led3, LOW);
  }
  delay (pausa_lunga);  
}

Ma non scrive sul monitor della porta seriale.

p.s.: Madwriter se cancelli la tua risposta sull'altro topic allora posso cancellare il topic
Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 102
Posts: 6542
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ah quindi mi basta scrivere Serial.print (nome_variabile); ?
Mentre per quanto riguarda il potenziometro sulla breadboard?

Non c'è nessun problema a incastrare il potenziometro sulla breadboard --> http://franzcesco.wordpress.com/2009/12/15/secondo-step/#more-13

Poi per collegarli usi questi

Hai detto di averli nel kit di Arduino, giusto?

EDIT: E ricorda che ci sono delle parola che è meglio non tradurre perchè potrebbero perdere di significato o creare confusione.
Quindi lascia "Serial Monitor" come Serial Monitor e non tradurlo come Schermo Seriale o Schermo Porta Seriale.  smiley-sweat E' più comprensibile.
« Last Edit: June 27, 2012, 10:49:44 am by PaoloP » Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Sr. Member
****
Karma: 0
Posts: 423
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie paolo ma il mio potenziometro ha dei piedini sotto che danno fastidio e non riesco a mettere per bene i terminale sulla breadboard .
Comuqnue ho saldato 3 fili e mi funziona bene ma l'unico problema è che non vedo i risultati sul serial monito smiley-lol
Logged

Offline Offline
Edison Member
*
Karma: 24
Posts: 2032
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ti ho risposto su,hai mancato l'inizializzazione copiala dal post di sopra incollala e vedi che funziona tutto  smiley-wink
Logged

"Due cose sono infinite: l'universo e la stupidità umana, ma riguardo l'universo ho ancora dei dubbi..." Albert Einstein

Offline Offline
Sr. Member
****
Karma: 0
Posts: 423
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok ora funziona tutto smiley-grin, ho anche inserito un if di debug, altrimenti la pausa al  minimo mi dava dei valori strani e faceva spegnere definitivamente i led smiley
Code:
int led1= 11;
int led2= 10;
int led3= 9;
int pausa_corta;
int pausa_lunga;
int i;
void setup ()
{
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
}
void loop()
{
  Serial.begin (9600);
  pausa_lunga= analogRead(0);
    if (pausa_lunga <2)
  {
    pausa_lunga=2;
  }
  pausa_corta= pausa_lunga/2;
  Serial.print (pausa_lunga);
  Serial.print ("\t");
  Serial.print (pausa_corta);
  Serial.print ("\t");
  digitalWrite (led1, HIGH);
  delay (pausa_lunga);
  digitalWrite (led2, HIGH);
  delay (pausa_lunga);
  digitalWrite (led3, HIGH);
  delay (pausa_lunga);
  digitalWrite (led1, LOW);
  delay (pausa_lunga);
  digitalWrite (led2, LOW);
  delay (pausa_lunga);
  digitalWrite (led3, LOW);
  delay (pausa_lunga);
  for (i=0; i<5; i++)
  {
    digitalWrite (led1, HIGH);
    delay (pausa_corta);
    digitalWrite (led2, HIGH);
    digitalWrite (led1, LOW);
    delay (pausa_corta);
    digitalWrite (led3, HIGH);
    digitalWrite (led2, LOW);
    delay (pausa_corta);
    digitalWrite(led3, LOW);
  }
  delay (pausa_lunga); 
}

Grazie mille RAGA smiley-grin
Logged

Torino
Offline Offline
God Member
*****
Karma: 2
Posts: 753
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao  Serial.begin (9600); ti conviene metterla nella void setup , serve inizializzarla una sola volta,all'accensione dell'arduino e poi basta.
Logged

Offline Offline
Sr. Member
****
Karma: 0
Posts: 423
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

ok detto fatto smiley
Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 102
Posts: 6542
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per i led puoi anche usare i #define
La variabile i poichè è interna al ciclo la puoi dichiarare nel for
Prima del Serial.begin nel setup  conviene sempre mettere una pausa di 2 secondi come sistema anti brick.

Code:
#define led1 11
#define led2 10
#define led3 9

int pausa_corta;
int pausa_lunga;

void setup ()
{
  delay(2000); //Anti Serial Brick
  Serial.begin (9600);
  pinMode(led1, OUTPUT);
  pinMode(led2, OUTPUT);
  pinMode(led3, OUTPUT);
  Serial.println("Arduino Start");
}

void loop()
{
  pausa_lunga= analogRead(0);
  if (pausa_lunga <2)
  {
    pausa_lunga=2;
  }
  pausa_corta= pausa_lunga/2;
  Serial.print (pausa_lunga);
  Serial.print ("\t");
  Serial.print (pausa_corta);
  Serial.print ("\t");
  digitalWrite (led1, HIGH);
  delay (pausa_lunga);
  digitalWrite (led2, HIGH);
  delay (pausa_lunga);
  digitalWrite (led3, HIGH);
  delay (pausa_lunga);
  digitalWrite (led1, LOW);
  delay (pausa_lunga);
  digitalWrite (led2, LOW);
  delay (pausa_lunga);
  digitalWrite (led3, LOW);
  delay (pausa_lunga);
  for (int i=0; i<5; i++)
  {
    digitalWrite (led1, HIGH);
    delay (pausa_corta);
    digitalWrite (led2, HIGH);
    digitalWrite (led1, LOW);
    delay (pausa_corta);
    digitalWrite (led3, HIGH);
    digitalWrite (led2, LOW);
    delay (pausa_corta);
    digitalWrite(led3, LOW);
  }
  delay (pausa_lunga); 
}
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Offline Offline
Sr. Member
****
Karma: 0
Posts: 423
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Scusa l'ignoranza ma cosa sarebbe questo anti brick?
Logged

Cagliari, Italy
Online Online
Tesla Member
***
Karma: 102
Posts: 6542
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Detto in parole povere serve per evitare che all''accensione, dopo il bootloader, venga subito inizializzata la seriale. Questo a volte impedisce l'upload dello sketck perché la seriale continua sparare dati.
Con la pausa iniziale si evita questo.
Altri utenti del forum potranno essere più chiari su questo punto.
Logged

Code fast. Code easy. Codebender --> http://codebender.cc/?referrer=PaoloP

Pages: 1 [2]   Go Up
Jump to: