Norvi Logo
  • HOME
  • PRODUCTS
  • SUPPORT
  • CONTACT US
  • CART
Menu
  • HOME
  • PRODUCTS
  • SUPPORT
  • CONTACT US
  • CART

NORVI IIOT-AE01-T

  • Test Program
  • Datasheet
  • User Guide

NORVI IIOT-AE01-R

  • Datasheet
  • User Guide
  • Test Program

NORVI IIOT-AE02-V

  • Datasheet
  • User Guide
  • Test Program

NORVI IIOT-AE02-I

  • Test Program
  • Datasheet
  • User Guide

NORVI IIOT-AE03

  • Test Program
  • Datasheet
  • User Guide

NORVI IIOT-AE04-I

  • User Guide
  • Test Program
  • Datasheet

NORVI IIOT-AE04-V

  • Datasheet
  • User Guide
  • Test Program

NORVI GSM-AE02-I-G

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE02-I-L

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE02-V-G

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE02-V-L

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE04-I-G

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE04-I-L

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE04-V-G

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE04-V-L

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE07-T-G

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE07-R-G

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE08-T-L

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

RELAY OUTPUT EXPANSIONS

  • NORVI-EX-R8 Datasheet
  • NORVI-EX-R16 Datasheet
  • NORVI-EX-R8 User Guide
  • NORVI-EX-R16 User Guide

NORVI GSM-AE07-R-L

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE08-R-G

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE07-T-L

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE08-I-G

  • Datasheet
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE08-V-G

  • Datasheet
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE08-I-L

  • DATASHEET
  • USER GUIDE

ANALOG INPUT EXPANSIONS

  • NORVI-EX-ANV Datasheet
  • NORVI-EX-ANV User Guide
  • NORVI-EX-ANI User Guide
  • NORVI-EX-ANI Datasheet

NORVI GSM-AE08-R-L

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI GSM-AE08-T-G

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

DIGITAL INPUT EXPANSIONS

  • NORVI-EX-I4 Datasheet
  • NORVI-EX-I4 User Guide
  • NORVI-EX-I8 Datasheet
  • NORVI-EX-I8 User Guide
  • NORVI-EX-I16 Datasheet
  • NORVI-EX-I16 User Guide

TRANSISTOR OUTPUT EXPANSIONS

  • NORVI-EX-Q4 Datasheet
  • NORVI-EX-Q8 Datasheet
  • NORVI-EX-Q16 Datasheet
  • NORVI-EX-Q8 User Guide
  • NORVI-EX-Q4 User Guide
  • NORVI-EX-Q16 User Guide

NORVI GSM-AE08-V-L

  • DATASHEET
  • USER GUIDE

NORVI-EX-LRWAN

  • NORVI-EX-LRWAN Datasheet

NORVI ENET-AE06-I

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI ENET-AE06-V

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI ENET-AE06-R

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI ENET-AE06-T

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI AGENT 1-BM01

  • DATASHEET
  • USER GUIDE
  • TEST PROGRAM

NORVI AGENT 1-BM02

  • DATASHEET
  • TEST PROGRAM
  • USER GUIDE

NORVI AGENT 1-BT01

  • DATASHEET
  • TEST PROGRAM
  • USER GUIDE

NORVI AGENT 1-BT02

  • DATASHEET
  • TEST PROGRAM
  • USER GUIDE

NORVI AGENT 1-BT03

  • DATASHEET
  • TEST PROGRAM
  • USER GUIDE

NORVI AGENT 1-BT05

  • DATASHEET
  • TEST PROGRAM
  • USER GUIDE

NORVI AGENT 1-BT06

  • DATASHEET
  • TEST PROGRAM
  • USER GUIDE
  • Home
  • Docs
  • RELAY OUTPUT EXPANSIONS
  • NORVI-EX-R16 User Guide

NORVI-EX-R16 User Guide

Programming #

NORVI-EX-R16 uses MCP23017 over I2C Communication. The I2C Address of the devices can be configured with the DIP Switches in the bottom of the controller.

Relay Outputs #

Wiring Relay Outputs

NORVI EX-R16 Relay Output Wiring

Programming Relay Outputs

Writing HIGH to the relevant GPIO of MCP230008 turns ON the Transistor output.

Refer to the GPIO Allocation Table for Transistor Output GPIO

Refer to the I2C Address setting to set the I2C address of the Expansion



#include <Adafruit_MCP23X17.h>

#define OUTPUT1 0
#define OUTPUT2 1
#define OUTPUT3 2
#define OUTPUT4 3
#define OUTPUT5 12
#define OUTPUT6 13
#define OUTPUT7 14
#define OUTPUT8 15

#define OUTPUT9 7
#define OUTPUT10 6
#define OUTPUT11 5
#define OUTPUT12 4
#define OUTPUT13 8
#define OUTPUT14 9
#define OUTPUT15 10
#define OUTPUT16 11

// uncomment appropriate line
//Adafruit_MCP23X08 mcp;
Adafruit_MCP23X17 mcp;

void setup() {
  Serial.begin(115200);
  //while (!Serial);
  Serial.println("NORVO Expansions Test");

  // uncomment appropriate mcp.begin
  Wire.begin (16, 17);   
  if (!mcp.begin_I2C(0x27)) {
    Serial.println("Error.");
    while (1);
  }

  // configure pin for output
  mcp.pinMode(OUTPUT1, OUTPUT);
  mcp.pinMode(OUTPUT2, OUTPUT);
  mcp.pinMode(OUTPUT3, OUTPUT);
  mcp.pinMode(OUTPUT4, OUTPUT);
  mcp.pinMode(OUTPUT5, OUTPUT);
  mcp.pinMode(OUTPUT6, OUTPUT);
  mcp.pinMode(OUTPUT7, OUTPUT);
  mcp.pinMode(OUTPUT8, OUTPUT);

  mcp.pinMode(OUTPUT9, OUTPUT);
  mcp.pinMode(OUTPUT10, OUTPUT);
  mcp.pinMode(OUTPUT11, OUTPUT);
  mcp.pinMode(OUTPUT12, OUTPUT);
  mcp.pinMode(OUTPUT13, OUTPUT);
  mcp.pinMode(OUTPUT14, OUTPUT);
  mcp.pinMode(OUTPUT15, OUTPUT);
  mcp.pinMode(OUTPUT16, OUTPUT);

  Serial.println("Looping...");
}

void loop() {
  mcp.digitalWrite(OUTPUT1, HIGH);
  mcp.digitalWrite(OUTPUT2, LOW);
  mcp.digitalWrite(OUTPUT3, LOW);
  mcp.digitalWrite(OUTPUT4, LOW);
  mcp.digitalWrite(OUTPUT5, LOW);
  mcp.digitalWrite(OUTPUT6, LOW);
  mcp.digitalWrite(OUTPUT7, LOW);
  mcp.digitalWrite(OUTPUT8, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT1, LOW);
  mcp.digitalWrite(OUTPUT2, HIGH);
  mcp.digitalWrite(OUTPUT3, LOW);
  mcp.digitalWrite(OUTPUT4, LOW);
  mcp.digitalWrite(OUTPUT5, LOW);
  mcp.digitalWrite(OUTPUT6, LOW);
  mcp.digitalWrite(OUTPUT7, LOW);
  mcp.digitalWrite(OUTPUT8, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT1, LOW);
  mcp.digitalWrite(OUTPUT2, LOW);
  mcp.digitalWrite(OUTPUT3, HIGH);
  mcp.digitalWrite(OUTPUT4, LOW);
  mcp.digitalWrite(OUTPUT5, LOW);
  mcp.digitalWrite(OUTPUT6, LOW);
  mcp.digitalWrite(OUTPUT7, LOW);
  mcp.digitalWrite(OUTPUT8, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT1, LOW);
  mcp.digitalWrite(OUTPUT2, LOW);
  mcp.digitalWrite(OUTPUT3, LOW);
  mcp.digitalWrite(OUTPUT4, HIGH);
  mcp.digitalWrite(OUTPUT5, LOW);
  mcp.digitalWrite(OUTPUT6, LOW);
  mcp.digitalWrite(OUTPUT7, LOW);
  mcp.digitalWrite(OUTPUT8, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT1, LOW);
  mcp.digitalWrite(OUTPUT2, LOW);
  mcp.digitalWrite(OUTPUT3, LOW);
  mcp.digitalWrite(OUTPUT4, LOW);
  mcp.digitalWrite(OUTPUT5, HIGH);
  mcp.digitalWrite(OUTPUT6, LOW);
  mcp.digitalWrite(OUTPUT7, LOW);
  mcp.digitalWrite(OUTPUT8, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT1, LOW);
  mcp.digitalWrite(OUTPUT2, LOW);
  mcp.digitalWrite(OUTPUT3, LOW);
  mcp.digitalWrite(OUTPUT4, LOW);
  mcp.digitalWrite(OUTPUT5, LOW);
  mcp.digitalWrite(OUTPUT6, HIGH);
  mcp.digitalWrite(OUTPUT7, LOW);
  mcp.digitalWrite(OUTPUT8, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT1, LOW);
  mcp.digitalWrite(OUTPUT2, LOW);
  mcp.digitalWrite(OUTPUT3, LOW);
  mcp.digitalWrite(OUTPUT4, LOW);
  mcp.digitalWrite(OUTPUT5, LOW);
  mcp.digitalWrite(OUTPUT6, LOW);
  mcp.digitalWrite(OUTPUT7, HIGH);
  mcp.digitalWrite(OUTPUT8, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT1, LOW);
  mcp.digitalWrite(OUTPUT2, LOW);
  mcp.digitalWrite(OUTPUT3, LOW);
  mcp.digitalWrite(OUTPUT4, LOW);
  mcp.digitalWrite(OUTPUT5, LOW);
  mcp.digitalWrite(OUTPUT6, LOW);
  mcp.digitalWrite(OUTPUT7, LOW);
  mcp.digitalWrite(OUTPUT8, HIGH);
  delay(500);
  mcp.digitalWrite(OUTPUT1, LOW);
  mcp.digitalWrite(OUTPUT2, LOW);
  mcp.digitalWrite(OUTPUT3, LOW);
  mcp.digitalWrite(OUTPUT4, LOW);
  mcp.digitalWrite(OUTPUT5, LOW);
  mcp.digitalWrite(OUTPUT6, LOW);
  mcp.digitalWrite(OUTPUT7, LOW);
  mcp.digitalWrite(OUTPUT8, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT9, HIGH);
  mcp.digitalWrite(OUTPUT10, LOW);
  mcp.digitalWrite(OUTPUT11, LOW);
  mcp.digitalWrite(OUTPUT12, LOW);
  mcp.digitalWrite(OUTPUT13, LOW);
  mcp.digitalWrite(OUTPUT14, LOW);
  mcp.digitalWrite(OUTPUT15, LOW);
  mcp.digitalWrite(OUTPUT16, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT9, LOW);
  mcp.digitalWrite(OUTPUT10, HIGH);
  mcp.digitalWrite(OUTPUT11, LOW);
  mcp.digitalWrite(OUTPUT12, LOW);
  mcp.digitalWrite(OUTPUT13, LOW);
  mcp.digitalWrite(OUTPUT14, LOW);
  mcp.digitalWrite(OUTPUT15, LOW);
  mcp.digitalWrite(OUTPUT16, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT9, LOW);
  mcp.digitalWrite(OUTPUT10, LOW);
  mcp.digitalWrite(OUTPUT11, HIGH);
  mcp.digitalWrite(OUTPUT12, LOW);
  mcp.digitalWrite(OUTPUT13, LOW);
  mcp.digitalWrite(OUTPUT14, LOW);
  mcp.digitalWrite(OUTPUT15, LOW);
  mcp.digitalWrite(OUTPUT16, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT9, LOW);
  mcp.digitalWrite(OUTPUT10, LOW);
  mcp.digitalWrite(OUTPUT11, LOW);
  mcp.digitalWrite(OUTPUT12, HIGH);
  mcp.digitalWrite(OUTPUT13, LOW);
  mcp.digitalWrite(OUTPUT14, LOW);
  mcp.digitalWrite(OUTPUT15, LOW);
  mcp.digitalWrite(OUTPUT16, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT9, LOW);
  mcp.digitalWrite(OUTPUT10, LOW);
  mcp.digitalWrite(OUTPUT11, LOW);
  mcp.digitalWrite(OUTPUT12, LOW);
  mcp.digitalWrite(OUTPUT13, HIGH);
  mcp.digitalWrite(OUTPUT14, LOW);
  mcp.digitalWrite(OUTPUT15, LOW);
  mcp.digitalWrite(OUTPUT16, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT9, LOW);
  mcp.digitalWrite(OUTPUT10, LOW);
  mcp.digitalWrite(OUTPUT11, LOW);
  mcp.digitalWrite(OUTPUT12, LOW);
  mcp.digitalWrite(OUTPUT13, LOW);
  mcp.digitalWrite(OUTPUT14, HIGH);
  mcp.digitalWrite(OUTPUT15, LOW);
  mcp.digitalWrite(OUTPUT16, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT9, LOW);
  mcp.digitalWrite(OUTPUT10, LOW);
  mcp.digitalWrite(OUTPUT11, LOW);
  mcp.digitalWrite(OUTPUT12, LOW);
  mcp.digitalWrite(OUTPUT13, LOW);
  mcp.digitalWrite(OUTPUT14, LOW);
  mcp.digitalWrite(OUTPUT15, HIGH);
  mcp.digitalWrite(OUTPUT16, LOW);
  delay(500);
  mcp.digitalWrite(OUTPUT9, LOW);
  mcp.digitalWrite(OUTPUT10, LOW);
  mcp.digitalWrite(OUTPUT11, LOW);
  mcp.digitalWrite(OUTPUT12, LOW);
  mcp.digitalWrite(OUTPUT13, LOW);
  mcp.digitalWrite(OUTPUT14, LOW);
  mcp.digitalWrite(OUTPUT15, LOW);
  mcp.digitalWrite(OUTPUT16, HIGH);
  delay(500);
  Serial.println("Looping...");
}
What are your Feelings
Share This Article :
  • Facebook
  • Twitter
  • LinkedIn
  • Pinterest
Still stuck? How can we help?

How can we help?

Updated on September 7, 2022

Powered by BetterDocs

Table of Contents
  • Programming
  • Relay Outputs
Facebook-f Twitter Youtube

ICONIC DEVICES PVT LTD
Green Cliff 2, Midigama East
Weligama, Sri Lanka, 81700

FAQ

CONTACT 

SHOP

Visa, Master, American Express
Newsletter Signup

Subscribe to newsletter for Product Updates.

Enter your email address
Name

Thanks, I’m not interested