Ciao ho ripreso un vecchio progettino per misurare il numero di giri di un "motore"
personalmente ho già provato con diodo e fotodiodo su un pin analogico e sembra funzionare ma ho dei dubbi quando il motore sarà a velocita massima 1500 giri minuto o addirittura 3000,
gli interrupt NON POSSO USARLI perché li usa già il programma,
vorrei confrontare (o anche adottarlo) il vostro parere, meglio se lo schemino completo con componenti specifici,
ho realizzato il disco forato (foto) con un grosso anello di acciaio (C40) e un piatto di hard disk
gli ho fatto 10 fori il tutto abbastanza preciso e robusto (fatto al tornio)
come ingresso lettura posso utilizzare un pin analogico o un pin digitale ma non gli interrupt
Ti costruisci una mini board con un tiny85 e gli fai leggere con un interrupt le rotazioni del motore.
Poi lo interroghi via I2C o seriale per leggere il dato.
Anche a 8MHz, con l'oscillatore interno, dovresti riuscire a leggere i giri.
PaoloP:
Ti costruisci una mini board con un tiny85 e gli fai leggere con un interrupt le rotazioni del motore.
Poi lo interroghi via I2C o seriale per leggere il dato.
Anche a 8MHz, con l'oscillatore interno, dovresti riuscire a leggere i giri.
concordo mi pare la soluzione più semplice....
Non so poi se esistano ma mi par di everli visti da qualche parte degli integrati che usando una coppia di fotodiodi ti restituiscano un valore di tensione in base ai giri.
Forse erano della serie TL ma se esistono ancora sono integrati molto vecchi e non so quanto precisi...
gingardu:
quindi... "nulla di fatto"
un convertitore frequenza>tensione e poi fare analoRead ( ) ?
Esattamente.... forse potresti farne uno con doppio led , il ricevitore carica un condensatorino e ne misuri o amplifichi e poi misuri la tensione in uscita, dovrebbe essere proporzionale all'aumentare di giri ma non avendo mai provato non posso confermartelo...
mah..
quello che mi interessa per primo e l'interfaccia rotella forata segnale di uscita,
che diodo e fototransistor/fotodiodo si potrebbe adoperare e in che modo collegarli per avere un segnale di uscita pulsante (o il "più pulsante" possibile) 0 - 5 volt
non sono nemmeno troppo convinto dei fori cosi piccoli che ho fatto sul disco :~
gingardu:
mah..
quello che mi interessa per primo e l'interfaccia rotella forata segnale di uscita,
che diodo e fototransistor/fotodiodo si potrebbe adoperare e in che modo collegarli per avere un segnale di uscita pulsante (o il "più pulsante" possibile) 0 - 5 volt
non sono nemmeno troppo convinto dei fori cosi piccoli che ho fatto sul disco :~
Ti basta un sensore a forcella, non so dirti la sigla sono quelli che trovi negli encoder delle stampanti..
Hai detto che gli interrupt non puoi usarli perché li usi già da un'altra parte. Immagino ti riferisci agli INT0 e INT1.
Ma tu sai che su ognuno dei 23 pin del microcontrollore usati come I/O esistono altri interrupt detti PCINT?
Non è facile usarli come i primi due perché non sono supportati ufficialmente dal core ma con la giusta libreria si può fare http://code.google.com/p/arduino-pinchangeint/
gingardu:
quindi... "nulla di fatto"
un convertitore frequenza>tensione e poi fare analoRead ( ) ?
Esattamente.... forse potresti farne uno con doppio led , il ricevitore carica un condensatorino e ne misuri o amplifichi e poi misuri la tensione in uscita, dovrebbe essere proporzionale all'aumentare di giri ma non avendo mai provato non posso confermartelo...
comunque a pensarci bene il doppio led è impossibile che funzioni :~
più va piano il disco e più luce prende il led con il problema che se si ferma su un foro prende la massima luce con il disco fermo ...... assurdo