Go Down

Topic: Nuovo utente e domande sulla breadboard (Read 2267 times) previous topic - next topic

Azuki

Salve a tutti.
Sono Marco e vi seguo da circa un mesetto, sono rimasto affascinato dalle potenzialità dell'arduino e dopo aver studiato un pò l'ambiente la scorsa settimana ho acquistato un set base, diciamo.
Sono un programmatore da una decina di anni quindi sotto il profilo della scrittura del codice sono tranquillo, infatti se potrò dare una mano nel forum ne sarò felice.
Al contrario non so praticamente niente di elettronica. Ottimo vero :D

Ieri è arrivato il pacco contenente:

- Arduino UNO(ovviamente)
- Un kit di gingilli base a basso costo(http://www.robot-italy.com/product_info.php?cPath=119_155&products_id=2071)
- Cavo USB e Cavo per alimentazione con batteria a 9v

Per iniziare mi sembrava sufficiente.

Non ho in mente un progetto particolare, per ora mi basterebbe capire la materia.

Ho seguito il primo tutorial "Blink"...e tutto ok.
Ho seguito il secondo tutorial "Digital Read Serial" e tutto ok.

Ha funzionato tutto al 1° colpo(e voi direte "e ci mancherebbe" :) )

Solo non ho capito bene certe cose che si sono fatte sulla breadboard, ho letto un pò di spiegazioni sul suo funzionamento su internet ma alcune cose non mi sono ancora chiare.
Tipo:



Perchè con i due fili (1 rosso e 1 nero) all'estrema destra dell'immagine si uniscono la terra e l'alimentazione delle due colonne (dell'alimentazione e terra appunto) della breadboard ?
A cosa serve?
Perchè si mette una resistenza tra la terra e l'interruttore?
Qui nel forum mi sembra di aver capita perchè fluttua "il segnale"(non ho ben capito)

Scusate per le domande banali...

Saluti


Noob si nasce...

Michele Menniti

Beh, così è un po' dura  :smiley-roll-sweat:
i due fili sulla destra non fanno altro che collegare tra loro le piste di alimentazione, infatti i pin delle due file esterne della bread board sono collegati per lungo, in modo da avere lungo tutta la bread la possibilità di collegare l'alimentazione.
La resistenza NON è tra GND e l'interruttore, ma tra il pin di Arduino e GND, si chiama "di pull-down" e serve a fissare un riferimento al pin verso massa, in modo da evitare di captare segnali fluttuanti, visto che i pin di Arduino sono ad alta impedenza.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Testato

aggiugo alcuni elementi per azuki:

mi sembra che i tuoi dubbi derivino principlmente dal fatto che non conosci come fisicamente sono connessi i due elementi di dubbio.

la breadboard in alto e in basso e' unita per RIGA, in orizzontale (come gia' detto), quindi quei due fili connettono le prime due righe con le ultime due righe, non connette la colonna come da te scritto. Aggiungo che in questo caso non servono, perche' sulle prime due righe come vedi non e' connesso nulla, quindi puoi anche toglierle.

anche sull'interruttore i dubbi derivano dal suo collegamento interno, internamente e' interconnesso in orizzontale, colonna, quindi il pin dove arriva il cavo blu, ed il pin dove c'e' la reistenza sono internamente connessi, quindi ne deriva quello detto da menniti, cioe' la resietnza e' una pull down. premento il tasto interconnetti i due pin colonna sinistra con i due pin colonna destra, ioe' applichi un 1 logico (5V) contemporaneamente alla resistenza ed al pin arduinico.

siamo sempre qui pronti ad aiutare, a me serviranno tuoi consigli lato programmazione.
ciao

- [Guida] IDE - http://goo.gl/ln6glr
- [Lib] ST7032i LCD I2C - http://goo.gl/GNojT6
- [Lib] PCF8574+HD44780 LCD I2C - http://goo.gl/r7CstH

uwefed

certe volte le cose viste aperte si capisconomeglio
Qua una Bredboard aperta vista da dietro:
http://www.markallen.com/teaching/ucsd/147a/lectures/DC%20Basics/13.php
e un immagine con le righe che segnao i collegamenti:

Ciao Uwe

Azuki



la breadboard in alto e in basso e' unita per RIGA, in orizzontale (come gia' detto), quindi quei due fili connettono le prime due righe con le ultime due righe, non connette la colonna come da te scritto. Aggiungo che in questo caso non servono, perche' sulle prime due righe come vedi non e' connesso nulla, quindi puoi anche toglierle.



Ahhh ecco! Infatti ! Mi stavo scervellando su cosa potesse servire quel collegamento ma a me sembrava non servisse a niente!
Ottimo grazie mille.



anche sull'interruttore i dubbi derivano dal suo collegamento interno, internamente e' interconnesso in orizzontale, colonna, quindi il pin dove arriva il cavo blu, ed il pin dove c'e' la reistenza sono internamente connessi,


Tramite il pulsante giusto?


quindi ne deriva quello detto da menniti, cioe' la resietnza e' una pull down. premento il tasto interconnetti i due pin colonna sinistra con i due pin colonna destra, ioe' applichi un 1 logico (5V) contemporaneamente alla resistenza ed al pin arduinico.

siamo sempre qui pronti ad aiutare, a me serviranno tuoi consigli lato programmazione.
ciao


pull down intendi messa a terra? Cosa succederebbe se la resistenza avesse un valore sbagliato?
E se non ci fosse proprio ?

Grazie mille davvero e sempre a disposizione per il lato programmazione
Noob si nasce...

leo72

Non è una messa a terra, serve a dare un segnale LOW ben definito quando non stai premendo il pulsantino.
Per capire a cosa serve, stacca quella resistenza e prova lo sketch, vedrai letture sballate influenzate anche dall'avvicinamento della mano o di oggetti al pulsantino.

La R deve avere un valore altino, 10K è quasi uno "standard" per tensioni di 5V. Se usi una resistenza con valori più bassi, non si rompe nulla: solo che l'Arduino potrebbe o leggerti sempre HIGH (se la resistenza è molto bassa) oppure tornare a darti i problemi della resistenza assente (con un valore troppo alto)

bigjohnson

Ciao Marco,

Il post l'ho scritto 4 ore fa, ma non ho potuto inviarlo.
Quote
Perchè con i due fili (1 rosso e 1 nero) all'estrema destra dell'immagine si uniscono la terra e l'alimentazione delle due colonne?

Per collegare all'alimentazione e alla massa anche le linee superiori, questo non serve a nulla nel circuito che hai provato, ma è molto utile se ci sono componenti nella parte alta della breadboard.
Quote
Perchè si mette una resistenza tra la terra e l'interruttore?

Per tenere in  uno stato certo l'ingresso se l'interruttore non viene premuto.
Senza resistenza l'ingresso potrebbe fluttuare casualmente da negativo a positivo senza premere il bottone.
Più che altro serve per avere uno stato certo, in quanto penso che sull'arduino ci siano già delle resistenze collegate internamente.

Alberto

Azuki

Intanto grazie a tutti per le molteplici risposte.



Non è una messa a terra, serve a dare un segnale LOW ben definito quando non stai premendo il pulsantino.
Per capire a cosa serve, stacca quella resistenza e prova lo sketch, vedrai letture sballate influenzate anche dall'avvicinamento della mano o di oggetti al pulsantino.

La R deve avere un valore altino, 10K è quasi uno "standard" per tensioni di 5V. Se usi una resistenza con valori più bassi, non si rompe nulla: solo che l'Arduino potrebbe o leggerti sempre HIGH (se la resistenza è molto bassa) oppure tornare a darti i problemi della resistenza assente (con un valore troppo alto)


Interessante...credo di cominciare a capire, stasera proverò sicuramente a "giocare" con le resistenze.
Ma mi hai fatto venire altre domande :)
10K sarebbero 10.000  ? ?

Poi dici:

La R deve avere un valore altino, 10K è quasi uno "standard" per tensioni di 5V.


Ma se è una questione alimentazione(5v), perchè la resistenza si mette tra il pulsante e la terra e non tra l'alimentazione ed il pulsante ?

Lo so...sono un noob della peggiro specie...sono pure curioso :)
Scusate ancora la mia ignoranza
Noob si nasce...

f.schiano


10K sarebbero 10.000  Ω ?


Si, il K viene usato per sintetizzare la scrittura, e significa che devi moltiplicare il valore per 1000!

Invece 10M, sarebbero 10 Mega e quindi 10.000.000 (diecimilioni) :D
Ciao,

Fab.
L'impossibile...richiede solo piu' tempo!

leo72

Sì, non sono stato preciso. La stessa R può essere messa anche collegata ai 5V se devi leggere uno stato di messa a massa col pulsantino. In quel caso si chiama R di pull-up ed è sempre di 10K.

Michele Menniti



10K sarebbero 10.000  ? ?


Si, il K viene usato per sintetizzare la scrittura, e significa che devi moltiplicare il valore per 1000!

Invece 10M, sarebbero 10 Mega e quindi 10.000.000 (diecimilioni) :D
Ciao,

Fab.

In realtà non è una sintesi ma una vera e propria unità di misura della scala ?.

@ Azuki: se la R la metti tra il pin e GND crei un riferimento a GND (pull-down); se lametti tra +5V e ilpin crei un riferimento a +5V (pull-up), sono due cose ben diverse, si usantro a seconda delle necessità circuitali.
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

Azuki


@ Azuki: se la R la metti tra il pin e GND crei un riferimento a GND (pull-down); se lametti tra +5V e ilpin crei un riferimento a +5V (pull-up), sono due cose ben diverse, si usantro a seconda delle necessità circuitali.


Mmm...ma cosa vuol dire? Che nel caso di una digitalRead mi restituisce valori inversi ?
Adesso mi restituisce 0 se non premuto e 1 se premuto(vado a memoria da ieri sera)
Se invece metto la R tra +5V e il pin ottengo l'inverso ?
1 se non premuto e 0 se premuto ?
Noob si nasce...

uwefed


Mmm...ma cosa vuol dire? Che nel caso di una digitalRead mi restituisce valori inversi ?
Adesso mi restituisce 0 se non premuto e 1 se premuto(vado a memoria da ieri sera)
Se invece metto la R tra +5V e il pin ottengo l'inverso ?
1 se non premuto e 0 se premuto ?

Sí, proprio cosí.

L' arduino ha anche resistenze pull up interne
http://www.arduino.cc/en/Tutorial/DigitalPins

Ciao Uwe

Michele Menniti

Scusami, ma dubito che tu possa imparare le basi in un Topic, credo ti dovrai rassegnare a leggere qualcosa di più sistematico ed organizzato. Se vai nel Playground ci sono molti tutorial sull'elettronica di base, brevi e concisi, dagli almeno un'occhiata. :)
Comunque, in generale, se devi leggere un evento positivo (segnale HIGH) devi usare una pull-down, se invece devi leggere un evento negativo (segnale LOW) devi mettere una pull-up, quindi tutto dipende, nel caso del pulsante, da dove colleghi il capo libero dello stesso (uno è collegato al pin di Arduino); nel caso che hai postato il pulsante premuto porta un HIGH, quindi serve una pull-down.


Mmm...ma cosa vuol dire? Che nel caso di una digitalRead mi restituisce valori inversi ?
Adesso mi restituisce 0 se non premuto e 1 se premuto(vado a memoria da ieri sera)
Se invece metto la R tra +5V e il pin ottengo l'inverso ?
1 se non premuto e 0 se premuto ?

Sí, proprio cosí.

Direi che è importante che capisca che però il pulsante si collega diversamente nei due casi
Guida alla programmazione ISP e seriale dei micro ATMEL (Caricare bootloader e sketch):
http://www.michelemenniti.it/Arduino_burn_bootloader.php
Guida alla Programmazione ATmega328 noP:
http://www.michelemenniti.it/atmega328nop.html
Articoli su Elettronica In:
http://www.michelemenniti.it/elettronica_in.html

f.schiano



In realtà non è una sintesi ma una vera e propria unità di misura della scala ?.



Hai ragione.
L'impossibile...richiede solo piu' tempo!

Go Up