Pages: 1 [2] 3   Go Down
Author Topic: SELETTORE BCD  (Read 2283 times)
0 Members and 1 Guest are viewing this topic.
Offline Offline
Newbie
*
Karma: 0
Posts: 13
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Grazie Nico. Ci proverò.
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 497
Posts: 12300
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Dovresti evitare di sovrapporre due questioni nello stesso Thread, stiamo parlando del selettore, lascia perdere il timer 2 per ora.
Se hai guardato la tabella che ti ho linkato capirai come funziona il tuo selettore. Ad Arduino lo devi collegare come ti ha ben spiegato Uwe.
P.es.
Se metti la freccia su 0 sui quattro pin non rilevi alcun 0 (cerchietto bianco nella tabella) = 0
Se metti la freccia su 1 uno dei pin rileverà lo 0 logico, quello è il pin "A"
Se metti la freccia su 2 uno dei pin rileverà lo 0 logico, quello è il pin "B"
Se metti la freccia su 4 uno dei pin rileverà lo 0 logico, quello è il pin "C"
Se metti la freccia su 8 uno dei pin rileverà lo 0 logico, quello è il pin "D"
tutti gli altri valori sono combinazioni di questi 4 fondamentali, p.es.:
Se metti la freccia su 3 due pin rileveranno lo 0 logico, sono i pin "A" e "B"
Ora devi divertirti col software; i 4 pin di Arduino li devi impostare come INPUP e poi devi eseguire il comando digitalWrite(pin, HIGH) su tutti è quattro in modo da attivare le R di pull-up interne, sempre come ti ha spiegato Uwe. smiley-wink
Logged

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

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

Sì, nell'eccesso di fornire troppe info ho mescolato la gestione degli encoder con quella dei selettori.
Il selettore lo leggi in formato binario. Per gli amanti dell'italiano:
http://it.wikipedia.org/wiki/Codice_Gray
Logged


Malo ( VI )
Offline Offline
Sr. Member
****
Karma: 0
Posts: 372
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Dopo nel tuo programma con una serie di funzioni If filtri i valori letti ed ottieni la posizione
Forse si fa prima a dire che
Stabilito che saranno 4 ingressi con PulUp verso il positivo e quindi sempre HIGH
Farei
byte totale = 0
if ingresso1 LOW .... totale = totale +1
if ingresso2 .... totale = totale +2
if ingresso3 .... totale = totale +4
if ingresso4 .... totale = totale +8

A questo punto su totale ci sara' un numero da 0 a 9 da usare come meglio crede
Logged

Le mie opere : Flusso correnti nell'impianto fotovoltaico http://arduino.webveneto.net/energy_control/     PING ed E.Mail http://arduino.web

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 497
Posts: 12300
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ottimo Bruno, poi ovviamente dovrà resettare tutto ad ogni nuovo ciclo di lettura; potrebbe forse usare anche uno switch case senza break; non so cosa succede esattamente all'interno di quegli aggeggi, immagino che ci siano un bel po' di rimbalzi; forse potrebbe essere necessario, se lui pensa di ruotarlo al volo durante il funzionamento, effettuare più cicli di lettura orima di dare responso.
Logged

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

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

Tutte ottime idee. Credo inserirò la funzione debounce sugli ingressi per evitare la lettura dei rimbalzi. potrebbe essere non necessario visto che la selezione viene inpostata 1 volta e poi non più toccata.
Per la funzione switch come posso scriverla?
Logged

Malo ( VI )
Offline Offline
Sr. Member
****
Karma: 0
Posts: 372
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

poi ovviamente dovrà resettare tutto ad ogni nuovo ciclo di lettura;
Se definisce totale prima di setup sicuramente
Io ragionavo pensando a tutto nel loop , tutto unito

Quote
potrebbe forse usare anche uno switch case senza break;
Sicuramente perche' non ci sara' possibilita' che ci siano piu' valori veri ; da 0 a 9

Quote
non so cosa succede esattamente all'interno di quegli aggeggi, immagino che ci siano un bel po' di rimbalzi; forse potrebbe essere necessario, se lui pensa di ruotarlo al volo durante il funzionamento, effettuare più cicli di lettura orima di dare responso.
Potrebbe accettare il valore dopo che questo permane per un paio di decimi
Ma questo va a complicargli la vita perche' dovrebbe aggiungere un temporizzatore ed un valore old
Quegli affari li nascono per selezionare un indirizzo e basta
Risulta piu' semplice mettere un affare del genere piuttosto che 4 dipswitch che poi ,se l'utilizzatore non e' un po' sviluppato, fatichera' come 'na bestia a combinarli in binario
Piu' semplice dire metti 5 piuttosto che .... se vuoi 5 tira su il primo ed il terzo
Logged

Le mie opere : Flusso correnti nell'impianto fotovoltaico http://arduino.webveneto.net/energy_control/     PING ed E.Mail http://arduino.web

Malo ( VI )
Offline Offline
Sr. Member
****
Karma: 0
Posts: 372
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Per la funzione switch come posso scriverla?
http://arduino.cc/en/Reference/SwitchCase
Logged

Le mie opere : Flusso correnti nell'impianto fotovoltaico http://arduino.webveneto.net/energy_control/     PING ed E.Mail http://arduino.web

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 497
Posts: 12300
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

aggiungo che visto che devi settarlo una volta per tutte il debounce NON ti serve assolutamente a nulla, e nemmeno se ogni tanto decidi di cambiare combinazione, purché tu lo faccia prima di dare alimentazione.
@ brunol949: concordo pienamente, ed infatti lightman750 ha confermato che deve lasciarlo su un valore fisso.
Logged

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

BZ (I)
Offline Offline
Brattain Member
*****
Karma: 249
Posts: 21193
+39 349 2158303
View Profile
 Bigger Bigger  Smaller Smaller  Reset Reset

Il problema dei rimbalzi non susiste perché quei selettori non sono fatti per essere mossi di coninuo.
Ciao Uwe
Logged

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

Dunque: lo strumento è un pò più complesso. Si tratta di un regolatore di livelli per pellet. Il selettore mi serve per sezionare il fondo scala di un timer che dodrebbe partire quando parte il sistema di carico. Il fondo scala dovrò tararlo più alto del tempo effettivo per caricare la caldaia. Se il timer arriva in fondo spegne tutto perchè vuol dire che qualcosa non va.
Secondo voi MS timer2 può andare bene?
Logged

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

Ora devi divertirti col software; i 4 pin di Arduino li devi impostare come INPUP e poi devi eseguire il comando digitalWrite(pin, HIGH) su tutti è quattro in modo da attivare le R di pull-up interne, sempre come ti ha spiegato Uwe.


Perchè il compilatore mi da errore????
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 497
Posts: 12300
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Ora devi divertirti col software; i 4 pin di Arduino li devi impostare come INPUP e poi devi eseguire il comando digitalWrite(pin, HIGH) su tutti è quattro in modo da attivare le R di pull-up interne, sempre come ti ha spiegato Uwe.


Perchè il compilatore mi da errore????
Vediamo se hanno riparato la palla di vetro di Uwe, dopo l'ultima rottura, così lui vede lo sketch che hai scritto, lo copia, lo compila, legge l'errore e poi ti risponde smiley-twist
Logged

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

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

Se io metto pinMode(pin,INPUT)
e poi digitalWrite(pin,HIGH)

il compilatore mi dice che non può farlo perchè il pin è impostato come ingresso (e direi che ha PIENAMENTE ragione........)
Logged

Lamezia Terme
Offline Offline
Shannon Member
****
Karma: 497
Posts: 12300
Le domande di chi vuol imparare rappresentano la sua sete di sapere
View Profile
WWW
 Bigger Bigger  Smaller Smaller  Reset Reset

Se io metto pinMode(pin,INPUT)
e poi digitalWrite(pin,HIGH)

il compilatore mi dice che non può farlo perchè il pin è impostato come ingresso (e direi che ha PIENAMENTE ragione........)
sì eh? chissà perché CENTINAIA DI ALTRI UTENTI, di cui forse QUALCUNO più ESPERTO di te, usano giornalmente quella tecnica per attivare le pull-up interne smiley-evil ma almeno hai prima detto al software che numero è quel pin?
E' segreto qwuesto sketch o potremmo vederlo pubblicato tra due tag "CODE"? smiley-sweat
Logged

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

Pages: 1 [2] 3   Go Up
Jump to: