Pages: [1] 2   Go Down
Author Topic: Problema resistenza buzzer  (Read 1378 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

Raga seguendo il libro c'è un progetto con un buzzer magnetico e suggerisce di usare una resistenza da 100 kohm ma io ho solo resistenze da 330 kohm e 180 kohm :\ come posso risolvere?
Logged

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

Quote
Raga seguendo il libro c'è un progetto con un buzzer magnetico e suggerisce di usare una resistenza da 100 kohm ma io ho solo resistenze da 330 kohm e 180 kohm :\ come posso risolvere?
Se ci pensi bene come facciamo noi a sapere che libro stai leggendo tu ?
Io lo so ,stai leggendo primi passi con arduino ?
Quella resistenza da 100k è messa in serie ad una fotoresistenza?
Sela metti da 180k ti cambia solo il valore letto dall'analogRead.
Quando scrivi,per avere un aiuto,cerca per quanto ti è possibile a dare più info altrimenti è difficile indovinare come ho fatto io.
Logged

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

Ok grazi mille smiley e scusa smiley-lol
Logged

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

Mh ti consiglio un Buzzer piezoelettrico avendo un valore resistivo basso non dovrai mettere nessuna resistenza per diminuire l'assorbimento ad Arduino, ricordati che Arduino se ha un assorbimento superiore a 40mA danneggi le porte e dovrai cambiare la il micro. Cmq quando si hanno tante resistenze ma non quella giusta puoi giocare in questo modo, se ti serve un valore di 180k ma ne hai 2 da 100 basta metterle in serie, perchè si sommano, se invece le metti in parallelo il valore resistivo diminuisce. Studiati la legge di ohm è fondamentale.
Logged

BZ (I)
Online Online
Brattain Member
*****
Karma: 236
Posts: 20285
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

metti 3 resistenze da 330k in paralello e ottieni 110k Ohm. Metti 2 180k in paralello ottieni 90kOhm.

Concordo con tonid della necessitá di aquisto di una sfera di cristallo. Facciamo una cordata per comprarne 20 al colpo per chiedere un buon sconto???  smiley-wink smiley-wink smiley-wink

Ciao Uwe
Logged

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

Raga ho riscontrato un problema :\, quando avvio il programma su arduino il buzzer suona ma non cambia nulla se avvicino o allontano il dito alla fotoresistenza, quindi ho messo il valore della fotores sul serial monitor e infatti vedo che il valore della fotores rimane a 0.
Quindi direi che è un problema hardware giusto?
cmq il codice è questo
Code:
int buzzer= 9;
int fotores;
int nota;
void setup ()
{
  pinMode (buzzer, OUTPUT);
  Serial.begin (9600);
}
void loop ()
{
  nota= 3*(analogRead (fotores))+500;
  tone (buzzer, nota);
  delay (10);
  Serial.print (fotores);
}
mentre l'hardware è questo:
Logged

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

io adotterei la filosofia tinkering commenta sempre ogni riga di comando, se nn la commenti non capirai mai cosa fà?  sii pi chiaro anche banale ma spiga cosa stai facendo se no non possiamo aiutarti, non hai dichiarato il pin di lettura analogica hai solo dato una variabile a anlogRead(0) non quello che hai scritto tu, perchè hai messo serial.begin? ma sai cosa fà? il problema e software, comincia ad accendere un led, perchè usare un entrata analogica nn è cosi banale come sembra.
Logged

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

si sul fatto del pin di fotores hai ragione ma ho messo il codice sbagliato, per quanto riguarda Serial.begin, l'ho messo per poi stamparmi sul serial monito il valore che assume la variabile fotores
Ecco il codice ultimato dopo le varie prove, vedo che la fotoresistenza va da un minimo di 1019 ad un massimo di 1023 :\ c'è qualcosa di sbagliato nella formula che sinceramente non ho capito perchè il libro  mela propone così :\ ... cmq sto leggendo "Primi passi con Arduino"
Code:
int buzzer= 9; //variabile che contiene il pin del buzzer
int fotores=0; //variabile che contiene il pin della fotoresistenza
int nota;  //variabile della frequenza del buzzer
int valore; // variabile che contiene il valore della fotores
void setup ()
{
  pinMode (buzzer, OUTPUT);  //dichiaro la variabile del buzzer come output
  Serial.begin (9600);  // credo serva per inizializzare il serial monitor
}
void loop ()
{
  valore= analogRead (fotores);
  nota= 3*(analogRead (fotores))+500;  //calcolo il valore della frequenza leggendo la fotoresistenza
  tone (buzzer, nota); //faccio suonare il buzzer
  delay (10);  //pausa di 10 millisecondi
  Serial.print (valore);  //scrivo sul serial monitor il valore della fotores
  Serial.print ("\n");  // vado a capo dopo ogni valore
}


*** MODIFICA***
Raga funziona smiley-lol non ho tenuto conto della luce della stanza quindi ho provato cun una lampada e funziona tutto smiley Grazie mille
« Last Edit: June 27, 2012, 04:23:47 pm by toti94 » Logged

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

valore= analogRead (0); elimina sta riga non serve tanto la lettura del sensore la fai la volo a non ti serve che risieda in memoria, ottimizza al meglio il codice non hai tanto spazio su arduino, ho anche quel libro e molto spesso ho dovuto correggerli, sto consigliando a molti "Arduino la guida ufficiale di Massimo Banzi" che è l'autore di arduino, majocchi inizia a non piacermi molto. ricontrolla i collegamenti su arduino.
Logged

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

per quanto rigurarda la variabile hai ragione anche se essendo un programma molto piccolo non ho pensato alla grandezza del file.
Comunque il libro di Banzi (uno dei miei miti) non è uguale a quello che sto leggendo? cioè gli argomenti trattati non sono gli stessi?
Perchè dovrei rivedere i collegamenti? a me sembra che funzioni tutto  smiley-confuse
Logged

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

http://www.youtube.com/embed/qfqhIXJ6XKQ scusa la qualità scadente,  questo è il mio esperimento, ma non ho usato lo stesso tuo codice, ti ho detto di controllare i collegamenti solo per sicurezza smiley
Logged

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

si il risultato è lo stesso solo che il rumore è diverso smiley-lol forse sarà dovuto dal buzzer diverso oppure dalla formula per ricavare la frequenza, tu che formula hai usato?
Sinceramente in quella del libro non ho capito perchè lo moltiplica *3 e poi aggiunge 500
formula : nota= 3* (analogRead (fotores)) + 500
Logged

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

nn sono a casa ma appena torno ti prometto di postare il mio codice... cmq ti invito a fare qualche test nota= 3*(analogRead (fotores))+1000;

cmq inizia da ora a ottimizzare il codice perchè cosi che non dovrai fare grossi sforzi in futuro.

Notte smiley-wink
Logged

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

ok Grazie mille smiley-grin
Notte  smiley-sleep
Logged

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

Per poter leggere qualcosa da un ingresso analogico significa che devi avere un livello di tensione che può variare 0 a 5v.
Tu hai creato un partitore resistivo composto da una resistenza fissa ed una variabile in funzione della luce (fotoresistenza), questo partitore deve essere polarizzato tra 0 e 5v,tu lo hai collegato ,sia da un capo che dall'altro a 0v (gnd) di conseguenza non avrai nessuna lettura.
Sposta il collegamento della resistenza fissa da gnd a +5v e vedrai che funziona. Questi sono errori banali,forse per la fretta,bisogna fare attenzione e controllare bene prima di dare tensione al circuito altrimenti potresti giocarti la scheda,non è questo il caso ma tieni presente comunque ciò che ti dico.
Non è un rimprovero ,è un consiglio smiley smiley

Quote
*** MODIFICA***
Raga funziona  non ho tenuto conto della luce della stanza quindi ho provato cun una lampada e funziona tutto  Grazie mille

Hai poi risolto ,quindi i collegamenti erano giusti ?
Hai sbagliato solo sullo schema postato?
Ciao.
« Last Edit: June 27, 2012, 11:59:30 pm by tonid » Logged

Pages: [1] 2   Go Up
Jump to: