LusoRobótica - Robótica em Português

Robótica => Tutoriais => Tópico iniciado por: metRo_ em 25 de Janeiro de 2009, 15:58

Título: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: metRo_ em 25 de Janeiro de 2009, 15:58
Aqui fica um link para um tutorial que me parece ser bastante util, trata-se expandir o numero de entradas e saidas do arduino. O tutorial possui imagens da montagem do circuito assim como código exemplo.

http://code.rancidbacon.com/LearningAboutArduinoMCP23S08 (http://code.rancidbacon.com/LearningAboutArduinoMCP23S08)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fcode.rancidbacon.com%2Ffiles%2Fbreadboard-arduino-mcp23s08-1.00-thumbnail.png&hash=8a9ea428d9f866c03e3c12516f6d37df72efec22)

Outro tutorial:

http://www.neufeld.newton.ks.us/electronics/?p=241 (http://www.neufeld.newton.ks.us/electronics/?p=241)

(https://lusorobotica.com/proxy.php?request=http%3A%2F%2Fwww2.neufeld.newton.ks.us%2Fimages%2Felectronics%2F2008%2F05%2F26%2FDSCN1470_mid.jpg&hash=a20cfac34a1b285e0dd629f1026f532e788eb924)


Abraço
Título: Re:[Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: TigPT em 25 de Janeiro de 2009, 16:21
Muito interessante, pena os pins que utiliza não ser o standart I2C do arduino, mas é uma questão de investigar melhor e utilizar o mesmo bus de I2C.

Adicionado como artigo de primeira página ;)
Título: Re:[Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: metRo_ em 25 de Janeiro de 2009, 16:26
A primeira frase do tutorial vai-te fazer a vontade: "The MCP23S08 is a "8-Bit I/O Expander with SPI Interface" IC from Microchip. This device is also available in I2C (MCP23008) and 16-bit (MCP23x17) variations but I don't discuss them here."
Título: Re:[Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: TigPT em 25 de Janeiro de 2009, 16:28
Assim já é bastante mais útil :D
Título: Re:[Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: metRo_ em 25 de Janeiro de 2009, 16:31
E aqui fica o tutorial usando I2C :) com o MCP23008
Título: Re:[Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: TigPT em 25 de Janeiro de 2009, 17:02
Aqui onde?
Título: Re:[Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: metRo_ em 25 de Janeiro de 2009, 17:13
Aqui http://www.arduino.cc/playground/Code/I2CPortExpanderAndLCDs (http://www.arduino.cc/playground/Code/I2CPortExpanderAndLCDs)  :P  ;D
Título: Re:[Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: metRo_ em 14 de Julho de 2009, 18:42
Adicionei outro tutorial ao post inicial :)
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: BaNoBi em 18 de Junho de 2010, 14:08
Uma duvida, será que consigo colocar este chip MCP23008 a uma distancia de +/- 5 metros do Arduino?
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: metRo_ em 18 de Junho de 2010, 14:16
Estes protocolos não foram feitos para essas distancias, quase de certeza que vai ter muitos erros mas tenta.
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: preytender em 18 de Junho de 2010, 15:17
Muito interessante, que tal colocar isso disponivel na Loja LR ???
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: BaNoBi em 18 de Junho de 2010, 15:19
Muito interessante, que tal colocar isso disponivel na Loja LR ???
Não estragando o negócio à Loja LR, mas podes mandar vir samples da microchip http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en021817 (http://www.microchip.com/wwwproducts/Devices.aspx?dDocName=en021817)
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: TigPT em 18 de Junho de 2010, 15:35
Sim, este tipo de ics, é preferível adquirir como samples. (e aproveita e manda vir mais coisas que eles não se importam)

Quanto a distancias... também estou agora com um problema com sensores analógicos com distancias grandes. :S

Só mesmo em implementações é que se depara com este tipo de falhas.
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: preytender em 18 de Junho de 2010, 15:50
Sim, este tipo de ics, é preferível adquirir como samples. (e aproveita e manda vir mais coisas que eles não se importam)

Não sei se é bem assim, estive a ler as condições e existem algumas restrições e pagamos o transporte por isso so vale a pena se realmente pedir um monte de coisas, tenho q ver melhor.

Ja agora, já alguem fez isso ?
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: metRo_ em 18 de Junho de 2010, 20:11
Eu ultimamente, 1/2 meses atrás não tive que pagar nada mas usei o mail da faculdade e foi para outros IC's.

@TigPT O caso dos sinais analógicos ainda é mais complicado por causa do ruido que muitas vezes chega a pontos de ser maior que o sinal a medir, neste caso é melhor fazer a aquisição e tratamento de sinal no local e transmissão seria rs232 para curtas distancias ou rs485 para distancias mais longas.
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: Sérgio_Sena em 18 de Junho de 2010, 22:03
Uma duvida, será que consigo colocar este chip MCP23008 a uma distancia de +/- 5 metros do Arduino?

COnsegues, mas vais ter que reduzir a velocidade de comunicação. Se não precisares de velocidade na comutação das portas de saida ou leitura das entradas, então usa o mais devagar possivel.
Assim tens sucesso.

E as resistências para o barramento I2C, calcula-as para contabilizar a resistência dos cabos no total e a velocidade de comutação.

Não tens que te preocupar com ecos de sinal, porque a velocidade é lenta. Se usares velocidades altas para essas distâncias, o facto de facto de serem sinais não-balanceados, os ecos do sinal voltam param o micro e é uma arrelia.


Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: TigPT em 19 de Junho de 2010, 17:52
Como já foi muitas vezes discutida a questão dos samples. Normalmente, para e-mails de dominios privados, não se paga portes. Pessoalmente, já deixei de pedir samples à muitos meses.. Mas quando pedia, nunca tive que pagar nada.
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: dio123 em 15 de Março de 2013, 16:57
estou com dificuldade em controlar as portas individualmente.
Queria ligar 1 porta e as outras ficarem desligadas, mas nao estou a conseguir.
nao consigo perceber qual a sequencia das portas porque  Wire.write(0x03);  as portas GP0 e GP1 ficam desligadas nas 0x04 a GP2 fica desligada.
No datasheet nao consigo perceber. Consegui definir como input e ouput e ler os inputs.
 
o codigo que estou a usar.
Citar

#include "Wire.h"
void setup() {
  Wire.begin();
}

void loop(){
  Wire.beginTransmission(0x20);
  Wire.write(0x20);
 Wire.write(0x03); // GPIOA
 Wire.endTransmission();
}
Título: Re: [Arduino] Expandir o Numero de Entradas e Saidas com o MCP23S08
Enviado por: senso em 15 de Março de 2013, 17:23
0x03 = 0b0000 0011
0x04 = 0b0000 0100

Perfeitamente normal, se usases os pinos do atmega directamente já estarias habituado a usar os pinos/portos como esse port-expander espera que seja usado.
Muitos links aqui:
http://code.rancidbacon.com/LearningAboutArduinoMCP23S08 (http://code.rancidbacon.com/LearningAboutArduinoMCP23S08)

E deves estar a usar o MCP23008 e não o MCP23S08, porque o primeiro fala por i2c, o segundo é via SPI.