Arduino uno ingresso analogico e interrupt

Salve a tutti,
Vorrei usare il sensore di posizione lineare della df robot per arrestare la corsa di un motore passo passo, montato sulla slitta di una cnc ; come microcontrollore vorrei usare arduino uno collegato alla scheda a4988 .
Per arrestare il percorso della slitta , quando arriva al limite dei "binari", vorrei usare un interrupt .
Il sensore di posizione si collega agli ingressi analogici e non a quelli digitali .

Al contrario, da quello che ho capito , se si usa arduino uno gli interrupt si possono inserire solo con sensori collegati con i pin digitali . Sul forum ho scoperto che si possono trattare i pin analogici come se fossero digitali numerandoli da 14-19 , quindi basterebbe indicare per es . l'ingresso analogico 0 come pin digitale 14.

http://forum.arduino.cc/index.php/topic,34492.0.html

Però ho letto che con arduino uno gli interrupt si possono usare solo con i pin digitali 2,3.
Se ciò fosse vero come posso arrestare la corsa della mia slitta ?
E cioè se non fosse possibile usare un interrupt che faccio?

Grazie in anticipo per l'aiuto
Red

Gli interrupt non funzionano con le entrate analogiche. non puoi avere in contemporanea un entrata analogica anche Pin digitale. Gli interrupt sono triggerate con i livelli soliti di LOW e HIGH di tutte le entrate digitale. Non hai possibilitá di regolare la soglia di intervento. Tutti i pin hanno ridotte funzionalitá di sorgente interrupt ma i pin 2 e 3 hanno funzionalitá piú estese percui normalmente si usano quelli come entrate interrupt.
Se vuoi prendi un operazionale e un partitore resistivo fatto con un potenziometro e crea un comparatore che cambia stato di uscita quando supera una certa soglia del segnale analogico. Se vuoi fare le cose meglio usa il circuito Schmidttrigger con operazionali.

Ciao Uwe

Non so se ho capito cosa vuoi fare nel dettaglio, ma se è questo:

sensore di posizione che dica dove si trova un oggetto in movimento
sensore che indica il 'fine corsa' dell'oggetto

Allora la soluzione più semplice se si muove lentamente è che tu metta un controllo sulla posizione dal sensore di posizione appunto che ferma il motore. Se invece è più veloce o comunque ritieni ci sia il rischio che quei pochi millisecondi che può metterci a ciclare l'arduino possano portare ad una collisione, usi un sensore di reed e lo colleghi a uno dei pin digitali di interrupt. Costo del sensore di reed un paio di euri

Per prima cosa grazie di cuore per i chiarimenti.
In risposta ai chiarimenti richiesti a me serve solo un sensore di fine corsa.
Inoltre il tutto si muove molto lentamente, pertanto mettere un controllo sulla posizione dal sensore di posizione che ferma il motore sarebbe una ottima soluzione ; il guaio è che non saprei proprio come fare.
Per favore Mastraa potresti suggerirmi come fare?
Grazie
Red :slight_smile:

Redwin:
Però ho letto che con arduino uno gli interrupt si possono usare solo con i pin digitali 2,3.
Se ciò fosse vero come posso arrestare la corsa della mia slitta ?
E cioè se non fosse possibile usare un interrupt che faccio?

Quelli a cui ti riferisci tu sono gli interrupt di tipo INT. Poi esistono anche gli interrupt di tipo PCINT, acronimo di Pin Change INTerrupt. Sono interrupt agganciabili a tutti i pin. Per gestirli serve però una lib non inclusa in quelle di serie di Arduino.
https://code.google.com/p/arduino-pinchangeint/

Grazie Leo :slight_smile:
Spero di riuscire a creare l ' Interrupt.

Non è complicato usare quella lib, se cerchi sul forum poi ci sono diversi esempi. Infine, chiedi qui che io l'ho usata diverse volte e posso darti una mano

Ciao ragazzi, sono nuovo del forum, grazie per le librerie che sono state postate (Anche se non le avvevo chieste io) per caso sono compatibili con l'arduino MEGA 2560? se si, qualcuno gentilmente potrebbe illustrarmi come installarle e usarle? Grazie

Ciao galaxy ,

Ciao Galaxy,
Credo che non ci siano problemi ad usare la libreria con arduino Mega.
Ho scaricato la libreria dal sito Google Code Archive - Long-term storage for Google Code Project Hosting..
Ho scelto la V 1.51 perché non è una versione prova.
Dopo averla scaricata devi decomprimerla.
Noterai che la cartella decompressa presenta un nome con il trattino alto.
Con le librerie che presentano il trattino alto c'è sempre lo stesso problema e cioè che per usarle devi rinominarle, magari usando il trattino basso che in gergo è chiamato underscore.
Se non elimini sto underscore diventerai matto .
In fine devi trasferire la cartella , decompressa e rinominata , all'interno della cartella libraries di arduino.
In realtà libraries è una "sottocartella" della cartella arduino che potrai trovare in documenti.
Per quel che concerne l'uso della libreria io ci sto lavorando su .
Spero di esserTi stato utile.
Red