Arduino: ¿Cómo se extienden los pines para acomodar múltiples sensores?

4

Esta es una pregunta fundamental sobre el sistema Arduino. He estado tratando de encontrar respuestas todo el día, pero sigo recibiendo respuestas que no están relacionadas con el tema Arduino o que están completamente fuera del tema.

Estoy construyendo un robot que consume la mayoría de los pines del Arduino para módulos de sensor IR y motor. El robot funciona muy bien (Robot Starter Kit by OSEPP). Ahora quiero seguir agregando varios sensores más y un módulo de salida LED, pero me he quedado sin pines. He visto prototipos de placas y escudos que parecen extender el número de pines, y he leído varios artículos en el bus de direcciones que ayudan a identificar de forma única todos los componentes, pero estoy perdido en el primer paso ...

¿Cómo se abordan varios conectores de entrada / salida o pines en las placas de creación de prototipos?

Lo siento por la pregunta de noob, pero como con toda la tecnología, los primeros pasos más simples siempre son los menos documentados. Cualquier enlace a grandes tutoriales sería muy apreciado.

    
pregunta Dr Tyrell

3 respuestas

5

No hay una forma real de expandir los pines, pero hay técnicas que puede utilizar para intercambiar datos y poder de procesamiento para obtener pines más efectivos.

Usando solo 3 pines y 1 pin de selección de chip (esclavo) por dispositivo, puede hablar con muchos dispositivos a través de SPI (interfaz de periféricos en serie). ] 1

Si los dispositivos con los que desea hablar no son compatibles con SPI, puede usar otros circuitos integrados, como un registro de desplazamiento que habla a través de SPI y le ofrece una IO digital más efectiva.

Laimagendearribamuestraunejemplodedosregistrosdedesplazamientode8bitsconectadosencadena.Usando3pinesdelmicrocontrolador,puedecontrolar16LED.

Puedesmultiplicaresteefectoinclusomásaltousandounatécnicallamadamultiplexación.Enlugardeutilizardirectamentelassalidasdelregistrodedesplazamiento,puedeadjuntarcomponentesaunacuadrículay"seleccionar" una columna y una fila.

En este caso, un arduino que usa 3 pines puede controlar dos salidas de registro de 16 cambios que pueden manejar 64 dispositivos. Esto es esencialmente cómo funciona un teclado.

    
respondido por el Impossibear
3

Primero sacrificas algunos pines para hablar con un expansor de E / S. p.ej. utiliza los dos pines I2C para conectar a un MC23017. Hay muchos tutoriales sobre cómo hacerlo, incluido el software. Eso te da 16 pines, así que ahora tienes 14 pines más que antes. De hecho, puedes conectar hasta 8 de los que te dan 128 pines.

Pero a un costo: necesita escribir algún software I2C para controlar esos pines, leerlos y escribirlos. Eso será mucho más lento que los otros pines de Arduino. Por lo tanto, utiliza esos pines MCP3017 para señales "más lentas".

El MCP3017 también tiene un pin de interrupción, pero para usarlo tienes que sacrificar un tercer pin de E / S de tu Arduino. El software para eso es de nuevo un poco complejo. Sin embargo, le permite "responder" a los eventos en las entradas MCP3017.

El truco es simplemente 'jugar' solo con el expansor de E / S, hasta que entiendas cómo funciona y tengas algún código para controlarlo. Luego, agréguelo a su hardware y software de robótica.

    
respondido por el Oldfart
0

Si tiene un conjunto de sensores que no necesitan estar funcionando al mismo tiempo (o todo el tiempo), puede usar un multiplexor para habilitarlos cuando sea necesario

    
respondido por el Radiohead

Lea otras preguntas en las etiquetas