icono telefono  320 447 37 16                       icono skype   electronicaplugandplay

Esquemas y códigos ejemplo para MCP23017

Estos son los esquemas de conexiones y códigos arduino de ejemplo para el videotutorial "MCP23017, conceptos y manejo con y sin librería".

El videotutorial puede ser observado en los siguientes enlaces:

Parte 1.

Parte 2.

Los componentes, tarjetas y materiales utilizados para estos ejemplos son:

 

Ejemplo 1

Esquema de conexiones

MCP23017 SALIDA Sketch1 web

 Código para el ejemplo 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
/*********************** Configurando una salida en un MCP23017 ***********************
Compañía: Electrónica Plug and Play.
Fecha: 19 de agosto de 2017.
 
Descripción:
Este código es el básico que demuestra el funcionamiento de un pin de 
mcp23017 como salida sin utilizar la librería. Se configura el pin GPA0 como
salida y en él se pone a parpadear un LED.
 
Advertencia:
Este código se pone a disposición del público con la única intención de dar 
un ejemplo demostrativo para el Expansor de GPIOs MCP23017 comercializado por 
Electrónica Plug and Play. Este código se brinda tal y como es y sin la 
intención de solucionar un problema particular.
El usuario es libre de modificarlo o adaptarlo para su aplicación particular.             
**************************************************************************************/
 
#include <Wire.h>
 
void setup() 
{ 
  Wire.begin();  
  Wire.beginTransmission(0x20); 
  Wire.write(0x00); 
  Wire.write(0x00); 
  Wire.write(00000000);
  Wire.endTransmission(); 
  Wire.beginTransmission(0x20);
  Wire.write(0x01); 
  Wire.write(0x00);
  Wire.endTransmission();
}
 
void loop()
{
  Wire.beginTransmission(0x20);
  Wire.write(0x12); 
  Wire.write(00000000);
  Wire.endTransmission(); 
  delay(250); 
  Wire.beginTransmission(0x20); 
  Wire.write(0x12); 
  Wire.write(00000001); 
  Wire.endTransmission();
  delay(250);
}

 

Ejemplo 2

Esquema de conexiones

MCP23017 ENTRADA SALIDA Sketch2 web

 

Código para el ejemplo 2

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/********************** Manejo de entradas en MCP23017 **********************
Compañía: Electrónica Plug and Play.
Fecha: 19 de agosto de 2017.
 
Descripción:
Este código es para demostrar el funcionamiento de un pin como entrada,
el B0 del puerto b de mc23017. Cuando esta entrada recibe un 1
entonces se hace parpadear un led que está en la salida A0 del mismo mc23017.
No se emplea ninguna librería especializada, solo Wire.
 
Advertencia:
Este código se pone a disposición del público con la única intención de dar 
un ejemplo demostrativo para el Expansor de GPIOs MCP23017 comercializado por 
Electrónica Plug and Play. Este código se brinda tal y como es y sin la 
intención de solucionar un problema particular.
El usuario es libre de modificarlo o adaptarlo para su aplicación particular.
****************************************************************************/
 
#include <Wire.h>
byte entrada0=0;
 
void setup() 
{
  Wire.begin();   
  Wire.beginTransmission(0x20);
  Wire.write(0x00);
  Wire.write(00000000);
  Wire.endTransmission();
  Wire.beginTransmission(0x20);
  Wire.write(0x01);
  Wire.write(00000001);
  Wire.endTransmission();
}
 
void loop()
{
  Wire.beginTransmission(0x20);
  Wire.write(0x13);
  Wire.endTransmission();
  Wire.requestFrom(0x20, 1);
  entrada0=Wire.read();  
  if (entrada0!=0)
   {
     Wire.beginTransmission(0x20);
     Wire.write(0x12);
     Wire.write(00000001);
     Wire.endTransmission();
     delay(250);
     Wire.beginTransmission(0x20);
     Wire.write(0x12);
     Wire.write(00000000);
     Wire.endTransmission();
     delay(250);
   }
  else delay(100);
}

 

Ejemplo 3

Esquema de conexiones

MCP23017 TWICE Sketch3 web
 Código para el ejemplo 3

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
/********************Uso Librería y varios MCP23017***************************
Compañía: Electrónica Plug and Play.
Fecha: 19 de agosto de 2017.
 
Descripción:
Este sketch utiliza la librería de Adafruit obtenida en:
https://github.com/adafruit/Adafruit-MCP23017-Arduino-Library
y controla dos expansores de puertos ( MCP0, MCP1). 
En MCP0 el pin GPA0 es una entrada cuyo valor(1 o 0) es transferido
al pin 13 de la board arduino y al pin GPB0 de MCP1 que actúa como salida.
Cada vez que hay un alto en GPA0 se envia un mensaje a a través del puerto 
serial 0 de la tarjeta arduino.
 
Advertencia:
Este código se pone a disposición del público con la única intención de dar 
un ejemplo demostrativo para el Expansor de GPIOs MCP23017 comercializado por 
Electrónica Plug and Play. Este código se brinda tal y como es y sin la 
intención de solucionar un problema particular.
El usuario es libre de modificarlo o adaptarlo para su aplicación particular.
******************************************************************************/
 
#include <Wire.h>
#include "Adafruit_MCP23017.h"
 
 
Adafruit_MCP23017 mcp0;
Adafruit_MCP23017 mcp1;
 
void setup()
{
  mcp0.begin(0);
  mcp1.begin(1);
  mcp0.pinMode(0, INPUT);
  mcp1.pinMode(8, OUTPUT);
  pinMode(13, OUTPUT);
  Serial.begin(9600);
}
 
void loop() 
{
  mcp1.digitalWrite(8, mcp0.digitalRead(0));
  digitalWrite(13, mcp0.digitalRead(0));  
  if(mcp1.digitalRead(0) == HIGH)
  {
    Serial.println("Entrada MCP0 en Alto.");    
  }
  delay(50);
}

 

 

No olvides dejarnos tus comentarios en nuestras redes sociales y regalarlos un "me gusta" o +1.

        youtube logo

Febrero/2018