Digital & Relay Blink

Categories: , , ,

Intro

This example shows you how to use our powerful digital outputs and relays. The CONTROLLINO PLCs have “High-Side Switch” outputs, “Half-Bridge” outputs (only MEGA) and potential free relay outputs. Some of these outputs are also capable of generating PWM (Pulse Width Modulation) signals. Therefore it is possible to dim a lamp or to control the speed of a DC motor.

IMPORTANT INFORMATION!
Please, select proper target board in Tools->Board->Controllino MINI/MAXI/MEGA before Upload to your CONTROLLINO.
(Please, refer to https://github.com/CONTROLLINO-PLC/CONTROLLINO_Library if you do not see the CONTROLLINOs in the Arduino IDE menu Tools->Board.)

Hardware Required

  • Controllino MINI/MAXI/MEGA
  • 12/24V DC Power supply

Circuit

Note*
Pin header is working on 5V TTL levels. Voltage levels over 5.5V can damage the Controllino permanently.

Code

Controllino MINI

In case of the Controllino MINI, the relays are connected parallelly to the digital outputs D0-D5 and thus are named D0-D5.

#include <Controllino.h> /* Usage of CONTROLLINO library allows you to use CONTROLLINO_xx aliases in your sketch. */

// the setup function runs once when you press reset (CONTROLLINO RST button) or connect the CONTROLLINO to the PC
void setup() {
 // initialize all used digital output pins as outputs
 pinMode(CONTROLLINO_D0, OUTPUT); // note that we are using CONTROLLINO aliases for the digital outputs
 pinMode(CONTROLLINO_D1, OUTPUT); 
 pinMode(CONTROLLINO_D2, OUTPUT); // the alias is always like CONTROLLINO_
 pinMode(CONTROLLINO_D3, OUTPUT); // and the digital output label as you can see at the CONTROLLINO device 
 pinMode(CONTROLLINO_D4, OUTPUT); // next to the digital output screw terminal                                
}

// the loop function runs over and over again forever
void loop() {
 digitalWrite(CONTROLLINO_D0, HIGH); // turn the LED on (HIGH is the voltage level)
 delay(100);                         // wait for 100 milliseconds which is 1/10 of a second 
 digitalWrite(CONTROLLINO_D0, LOW);  // turn the LED off by making the voltage LOW
 delay(100);                         // wait for 100 milliseconds which is 1/10 of a second 
 digitalWrite(CONTROLLINO_D1, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_D1, LOW); 
 delay(100); 
 digitalWrite(CONTROLLINO_D2, HIGH); // please, visit https://www.controllino.com/downloads/ 
 delay(100);                         // if you want to know more about the mapping of the CONTROLLINO
 digitalWrite(CONTROLLINO_D2, LOW);  // digital outputs to the Arduino pins
 delay(100); 
 digitalWrite(CONTROLLINO_D3, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_D3, LOW);  // by using CONTROLLINO aliases instead of Arduino pin numbers 
 delay(100);                         // you ensure sketch portability between all CONTROLLINO variants
 digitalWrite(CONTROLLINO_D4, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_D4, LOW); 
 delay(100); 
}

To make the outputs and relays blink, CONTROLLINO pins have to be set up as OUTPUTs!

pinMode(CONTROLLINO_xx, OUTPUT);

Controllino MAXI/MEGA

#include <Controllino.h> /* Usage of CONTROLLINO library allows you to use CONTROLLINO_xx aliases in your sketch.*/ 

// the setup function runs once when you press reset (CONTROLLINO RST button) or connect the CONTROLLINO to the PC
void setup() {
 // initialize all used digital output pins as outputs
 pinMode(CONTROLLINO_D0, OUTPUT);
 pinMode(CONTROLLINO_D1, OUTPUT); // note that we are using CONTROLLINO aliases for the digital outputs
 pinMode(CONTROLLINO_D2, OUTPUT);
 pinMode(CONTROLLINO_D3, OUTPUT); // the alias is always like CONTROLLINO_
 pinMode(CONTROLLINO_D4, OUTPUT); // and the digital output label as you can see at the CONTROLLINO device 
 pinMode(CONTROLLINO_R0, OUTPUT); // next to the digital output screw terminal
 pinMode(CONTROLLINO_R1, OUTPUT);
 pinMode(CONTROLLINO_R2, OUTPUT);
 pinMode(CONTROLLINO_R3, OUTPUT);
 pinMode(CONTROLLINO_R4, OUTPUT);
}

// the loop function runs over and over again forever
void loop() {
 digitalWrite(CONTROLLINO_D0, HIGH); // turn the LED on (HIGH is the voltage level)
 delay(100);                         // wait for 100 milliseconds which is 1/10 of a second 
 digitalWrite(CONTROLLINO_D0, LOW);  // turn the LED off by making the voltage LOW
 delay(100);                         // wait for 100 milliseconds which is 1/10 of a second 
 digitalWrite(CONTROLLINO_D1, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_D1, LOW); 
 delay(100); 
 digitalWrite(CONTROLLINO_D2, HIGH); // please, visit https://www.controllino.com/downloads/ 
 delay(100);                         // if you want to know more about the mapping of the CONTROLLINO
 digitalWrite(CONTROLLINO_D2, LOW);  // digital outputs to the Arduino pins
 delay(100); 
 digitalWrite(CONTROLLINO_D3, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_D3, LOW);  // by using CONTROLLINO aliases instead of Arduino pin numbers 
 delay(100);                         // you ensure sketch portability between all CONTROLLINO variants
 digitalWrite(CONTROLLINO_D4, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_D4, LOW); 
 delay(100); 
 digitalWrite(CONTROLLINO_R0, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_R0, LOW); 
 delay(100); 
 digitalWrite(CONTROLLINO_R1, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_R1, LOW); 
 delay(100); 
 digitalWrite(CONTROLLINO_R2, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_R2, LOW); 
 delay(100); 
 digitalWrite(CONTROLLINO_R3, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_R3, LOW); 
 delay(100);
 digitalWrite(CONTROLLINO_R4, HIGH); 
 delay(100); 
 digitalWrite(CONTROLLINO_R4, LOW); 
 delay(100); 
 
}

Share This Post

More Tutorials to explore

HTTP Web Client

Introduction Welcome to the “HTTP Web Client” tutorial using the CONTROLLINO MICRO. In this tutorial, we will learn how to create a web client that

Scan for I2C Devices

Introduction The I2C (Inter-Integrated Circuit) protocol is a popular means of communication between various sensors and devices. In this tutorial, we will learn how to