Pages: [1]   Go Down
Author Topic: Buffer della seriale sempre pieno se leggo una analogica sul pin A0  (Read 654 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao a tutti,

mi è successa una cosa molto strana, almeno per me, praticamente ho un Arduino UNO Rev3 dove ho collegato un potenziometro sull'ingresso dell'analogica A0, tutto ok.

Leggo il valore dell'analogica e me lo stampo sulla seriale (Serial.print()), utilizzando l'usb e il terminale disponibile sull'ide, e anche fino a qui tutto bene.

Ma poi ho provato ad inviare dei dati alla scheda per accendere un led e  per fare questo, seguendo i tutorial, uso la funzione "Serial.available()". Il problema è qui. Questa funzione mi restituisce sempre un valore maggiore di 0, cioè anche se io non scrivo nulla e svuoto il buffer con il "Serial.read()". Il problema ce l'ho solo se uso l'analogica A0, se cambio ingresso tutto ok.
E' come se andando a collegare qualcosa sul pin A0 in qualche modo si incastra il buffer della seriale.

Pensate che la mia scheda abbia l'ingresso A0 danneggiato? Vi è mai capitata una cosa del genere?

Grazie
Logged

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21650
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

A me personalmente no.
Logged


Genova
Offline Offline
Faraday Member
**
Karma: 17
Posts: 2757
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Io non ci ho capito niente.
Hai letto la parte "aiutateci ad aiutarvi"

ciao e benvenuto
Logged

Meglio imparare dalle cose inutili piuttosto che non imparare niente.   [Arduino Mega R3 + Ethernet shield W5100 + SD card 8Gb FAT32]

MC
Offline Offline
God Member
*****
Karma: 13
Posts: 917
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Posta codice e schema collegamenti.
Per via telepatica è difficile risolvere sti tipi di problemi.
Logged

Vi è una spiegazione scientifica a tutto.
La fede è solo quell'anello che si porta al dito dopo il matrimonio.

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ciao,

grazie per le tempestive risposte ed avete ragione, forse non sono stato molto chiaro. Comunque ecco i collegamenti:



ed ecco il codice, vi ricordo che per ora non ha nessuno scopo, solo tinkering..

Code:
int potenziometro = 0;
int datoLetto = 0;

void setup() {
  // initialize serial communications at 9600 bps:
  Serial.begin(9600);
  pinMode(11,OUTPUT);
}

void loop() {
 
  potenziometro = analogRead(A0);
 
  if (Serial.available() > 0 ) {
   
    datoLetto = Serial.read();
   
    Serial.print("comand ricevuto: ");
    Serial.println(datoLetto);
   
    if (datoLetto == '1' ){
      digitalWrite(11, HIGH);
      Serial.println(potenziometro);
    }
    else if (datoLetto == '0'){
      digitalWrite(11,LOW);
    }
  }
  delay(2);                 
}

in pratica, appena accedo la board e vado in monitor seriale vedo che lui mi stampa di continuo "command ricevuto: (qui non scrive nulla!!)"
anche se io non ho inviato nessun carattere! lui ha sempre qualcosa nel buffer ma non capisco cosa!

se invece scollego il potenziometro allora tutto funziona. Premo 1, il led si accende, premo 0 il led si spegne. Ricollego il potenziometro e ricomincia a scrivere un infinità di volte "command ricevuto: (niente, nemmeno valori a caso)".

Provo a collegare il pot sul A1 e funziona tutto correttamente.

Spero di essere stato un pò più chiaro.

ciao e grazie ancora
 
« Last Edit: January 09, 2013, 06:17:32 am by matteotopa » Logged

Riva del Garda, TN / Forlì
Offline Offline
Edison Member
*
Karma: 7
Posts: 2247
Il piu' modesto al mondo
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Usa un software come hyperterminal e leggi i dati in esadecimale e posta quelli, in ASCII molti non sono interpretati
Logged

Il nuovo forum italiano sull'elettronica: http://www.electroit.tk/ <--- Nuovamente online!

Global Moderator
Italy
Offline Offline
Brattain Member
*****
Karma: 313
Posts: 21650
Logic is my way
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ho provato infilando un cavetto flottante in A0 ma a me no dà strani risultati come a te
Logged


Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Ok, domani appena torno in ufficio provo con Hyperterminal e vediamo cosa mi scrive...

Anche io ho provato con un filetto flottante ma il problema rimane, mi si verifica solo con qualcosa effettivamente collegato. Ho provato anche altri sensori ma non cambia, ho notato però che ho il problema ce l'ho solo quando l'analogica ha un valore vicino allo 0, se (posto il potenziometro sopra ad un certo valore tutto funziona.  smiley-slim

Grazie ancora a tutti per l'aiuto!
Logged

Offline Offline
Newbie
*
Karma: 0
Posts: 4
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Allora, oggi ho riprovato in ufficio per vedere cosa mi scriveva in esadecimale ma... non ho avuto nessun problema! cioè oggi tutto andava bene.
Da non credere! Poi ho provato a ricreare la situazione originale, cioè usare il mac e non il pc ed ecco qui! è la porta seriale del mio mac che ha qualche problema, non lo so ma in qualche modo ogni tanto invia qualcosa... molto strano.

Per togliermi del tutto i dubbi ho usato un alimentatore esterno. Tutto ok.

Grazie a tutti per l'aiuto.
Logged

Pages: [1]   Go Up
Jump to: