[Risolto]-Sensore Sharp 2D120X

Un saluto a tutto il forum,
come alcuni sanno sono ancora alle prime armi con arduino (sopratutto con l'elettronica in generale) ed ho un problema con il sensore Sharp 2D120X.
nel suo datasheet mi consiglia di utilizzare 3.3v (e così ho provato) ma il sensore una volta letto il valore mi restituisce un valore approssimativo a 310.
il Codice è molto elementare, preleva il dato e lo stampa, ma non funziona (premesso che son partito da un codice già fatto), poi ho pensato fosse un discorso di delay (preimpostato a 100).

possiedo un arduino mega

int IRpin = 3;                                    
void setup() {
  Serial.begin(9600);                 
}
void loop() {
  int a = analogRead(IRpin);

  Serial.println(a);       
  delay(2000);             
}

Codice principale (si, ho provato a collegargli anche il 5v)

int IRpin = 1;                                    // analog pin for reading the IR sensor
void setup() {
  Serial.begin(9600);                             // start the serial port
}
void loop() {
  float volts = analogRead(IRpin)*0.0048828125;   // value from sensor * (5/1024) - if running 3.3.volts then change 5 to 3.3
  float distance = 65*pow(volts, -1.10);          // worked out from graph 65 = theretical distance / (1/Volts)S - luckylarry.co.uk
  Serial.println(distance);                       // print the distance
  delay(100);                                     // arbitary wait time.
}

qualcuno può dirmi quale menata ho sbagliato? :sweat_smile:

Vi ringrazio dell'attenzione

Marbi

p.s. l'arduino è collegato, tramite bread board, direttamente al sensore (senza resistenze e/o altri componenti).

mi pare giusto il programma ma cosa ti restituisce come valore in seriale ? è fisso o cambia?
cambia se ci metti una mano sopra o a vuoto ?

si, scusa per l'imprecisione del post, il sensore inizia con un valore di 609 e scende piano piano fino a toccare i 313 (uscillando +-4)
e non varia se trova un'ostacolo davanti a lui.

Help me pls :frowning:

se l'hai puntato verso l'alto sopra di lui ci sono ostacoli o una luce forte ? magari alogena ...
ricora che sono IR e quindi disturbabili dalla luce stessa :slight_smile:

ho provato con diverse luci in diverse posizioni, con diverse distanze (stando attento ad evitare spostamenti perpendicolari alla base come descritto nel datasheet) :frowning:

capito.... comunque ricontrolla il datasheet ed eventualmente alimentalo a 5V....
io non ho mai usato dei sensori del genere alimentati a 3.3vdc...

ho provato ad alimentarlo anche con 5v :frowning:
qualcuno ha risontrato questo sintomo e può darmi qualche dritta!!! =( =( =(

ma il 3.3V che hai usato arriva ad erogare i 50mA?

grazie brain, ed anche a ratto ovviamente, delle risposte.
l'alimentazione è presa direttamente da arduino (devo collegarlo ad un 5v esterno?)

io ci proverei.. :slight_smile:
non dimenticare di collegare insieme le masse dell'alimentatore esterno e di arduino.

andata, però una batteria da 5v non ce l'ho... se ne metto 4,5? (3X1,5) :smiley:

io ho un servo full rotation ma sinceramente non so come sapere con esattezza in che posizione si trova sob.
volevo usarlo per far girare un'eventuale robot :smiley:

ah mi son dimenticato un piccolissimo dettaglio:
io in tutta la mia vita avrò fatto 10 saldature, non so realmente che calcoli bisogna fare per abbassare la tensione da 9 a 5 volt e sopratutto come farlo (pensavo bastassero le resistenze, invece m'hanno detto che serve uno "stabilizzatore a 5v") :frowning:

non è difficile costruire un piccolo alimentatore stabilizzato, variabile:

o fisso:

grazie a tutti ragazzi,
mi state dando una grandissima mano nell'elettronica e non so veramente come rinrgaziarvi.
brain cercherò di creare uno stabilizzatore variabile, ma le mie paure sono legate all'ignoranza nella materia.
per farvi capire il concetto non sono in grado di capire cosa devo mettere per far abbassare la tensione al voltaggio da me richiesto ma sopratutto non capisco che calcoli devo fare.
l'unica nozione accettabile nel campo dell'elettronica che mi è stata pervenuta (per i calcoli intendo) è la funziona 1/sum(1/R(x)) che se non erro serve per capire quanto resistono le resistenze in ohm (scusate il giro di parole), ma non so realmente cos'è un ohm (un'unità di misura delle resistenze) ne come incidono con il voltaggio.
a quanto ho capito (perchè letto) 10v con una resistenza da 10k mi ruba 1v (spero sia giusto), ma non so se è direttamente proporzionale, oppure la funzione è più complessa.
cmq prendo nota del link e vedrò di mettercela tutta.
flame man non prendertela ma ad un certo punto mi sono perso, sono troppo ignorante per capire il tuo concetto semplicemente perchè non so cosa siano:
i nodi, il nesso con il sedersi (ma perchè sicuramente non ho capito proprio il concetto :frowning: ).
i transistor a quanto ho capito amplificano la corrente (in base alla dimensione? e come si calcola?)
un "carico resistivo" è una resistenza? oppure un componente elettronico? (es. sensore di distanza?)

il carico assorbe corrente, vorrebbe spillarla da un nodo di tensione e farlo sedere, ma interviene l'amico stabilizzatore che prontamente assorbe + corrente dalla sua sorgente (Vin) e compensa il nodo Vout!

il problema è non aver capito cos'è questo famoso nodo di tensione :frowning:

ragazzi io ce la metto tutta (personalmente ho fatto grandi passi) ma adesso che bisogna giocare anche con l'alimentazione esterna la vedo dura... speriamo non farò gli stessi errori per 220 volt :smiley:

cmq ringrazio tutti per la pazienza che avete con me :smiley:
Marbi

=( =( =(
mi perdo sempre perchè non capisco cos'è questo nodo quindi, da idiota ti chiedo:
il nodo può essere es. un diodo led? oppure è una cosa che c'è "e basta"
:~mica mi sarò rimbambito!!! :~
Marbi

il nodo è il punto di giunzione fra 2 o più conduttori.

ovviamente ringrazio degli enormi consigli che mi date (tanto che ad un certo punto ho chiamato un mio amico e sono riuscito a spillargli un libro di elettronica base), cmq penso di aver capito (almeno in parte)
se collego 2 resistenze uguali in serie il valore tra gli estremi delle resistenze sono pari alla metà trasmessa.
se aggiungo una terza resistenza (diversa) ottengo:
Vnodo=(deltaV/(R1+(R2//R3)))*(R2//R3)
Vnodo=(4,96/(2,48+0,10)*0,10
Vnodo=0,19 circa

e qui c'è qualche sbaglio, vero?
non dovrebbe darmi sempre 2,48? perchè R1+(R2//R3) = VDelta?!?

ahimè... me tapino... me misero =(

tutta la bibbia parte da qui:

e da qui:

inizia da questi ed il resto sarà più semplice :slight_smile:

benissimo, così comincio a studiare da adesso.
grazie brain (ovviamente anche a ratto) per gli ottimi consigli...

speriamo di stressarvi il meno possibile!!!