SE
SARAVANA
TITLE
NET
Go to content

ARDUINO MULTIFUNCTION SHIELD

Can be interfaced with many sensors
Rs470.00(VAT excl.)
Add

ARDUINO MULTIFUNCTION SHIELD







Shield connected with BLUETOOTH Module                             Shield connected with Servo , Temperature sensor

   



Introduction
The multi-function Learning board for Arduino has many of features which makes it ideal for beginners who just want to experiment and learn, or just as a general purpose board for more advanced uses. It has provisions for ADC experiments, General Purpose I/O experiments, Segment Displays, Communications and more.

Features

Plug and play with Arduino Uno or Mega
4 digit 7-segment LED display module
4 x surface mount LEDs
1 x 10K adjustable precision potentiometer for trying ADC experiments.
3 x Independent push buttons
Piezo buzzer
DS18B20 temperature sensor interface
LM35 temperature sensor interface
Infrared receiver interface
Serial interface header for convenient connection to serial modules such as Bluetooth, wireless interface, voice module, a voice recognition module etc

Pin Layout of Multi-functional Board

4 Red LEDs-Pin 10,11,12,13
3 Buttons+Reset button-Pin A1,A2,A3
Potentiometer(10Kohm)-Pin A0
4 digit seven segment led driven by 74HC595-Latch 4,Clock 7,Data 8
Buzzer-3(digital on/off)
Socket for infrared receiver(remote control)-Pin 2
Socket for temperature sensor LM35 or DS18B20-Pin A4
Header for APC220 shield-Gnd,5V,0,1(rx/tx)
Free pins(PWM)-5,6,9,A5


LED Blink Program

To connect the multi function board with Arduino Uno,the user should simply plug or mount it to the Uno board.The program given below is one of the example to do with the multi function board.The user can do various experiments depending on their use.

void setup()
{
  pinMode(13, OUTPUT);
  pinMode(12, OUTPUT);
  pinMode(11, OUTPUT);
  pinMode(10, OUTPUT);
}
void loop()
{
  // led On
  digitalWrite(13, LOW);
  delay(100);
  // led Off
  digitalWrite(13, HIGH);
  delay(100);
    // led On
  digitalWrite(12, LOW);
  delay(100);
  // led Off
  digitalWrite(12, HIGH);
  delay(100);  // led On
  digitalWrite(11, LOW);
  delay(100);
  // led Off
  digitalWrite(11, HIGH);
  delay(100);  // led On
  digitalWrite(10, LOW);
  delay(100);
  // led Off
  digitalWrite(10, HIGH);
  delay(100);
}
------------------------------------------------------------------------------------------------------------------
POTENTIOMETER Code

/* Define the analogue pin used to read the potentiometer */
#define PotPin 0

void setup()
{
 Serial.begin(9600);

}
/* Main Program */
void loop()

{
 Serial.print("Potentiometer: ");
 Serial.println(analogRead(PotPin));
 
 /* Wait 0.5 seconds before reading again */
 delay(500);
}
---------------------------------------------------------------------------------------------------------------------

Buzzer Test code

/* Define the analogue pin used to read the potentiometer */
#define POT_DIO 0

/* Define the digital pin used to control the buzzer */
#define BUZZER_DIO 3

#define OFF HIGH
#define ON LOW

void setup()
{
 /* Set the buzzer pin to an output and turn the buzzer off */
 pinMode(BUZZER_DIO, OUTPUT);
 digitalWrite(BUZZER_DIO, OFF);

}

void loop()
{
 /* Read the current position of the 10K potentiometer and use it
    as a time delay */
 delay(analogRead(POT_DIO));
 
 /* Turn the buzzer on for 20ms and then turn it back off again */
 digitalWrite(BUZZER_DIO, ON);
 delay(20);
 digitalWrite(BUZZER_DIO, OFF);
}
----------------------------------------------------------------------------------------------------------
4 DIGIT 7 SEGMENT DISPLAY DRIVEN BY 2 nos 74HC595

/* Define shift register pins used for seven segment display */
#define LATCH_DIO 4
#define CLK_DIO 7
#define DATA_DIO 8

/* Segment byte maps for numbers 0 to 9 */
const byte SEGMENT_MAP[] = 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0X80,0X90;
/* Byte maps to select digit 1 to 4 */
const byte SEGMENT_SELECT[] = 0xF1,0xF2,0xF4,0xF8;


unsigned long Cur_ms_Count; // Stores the current time in ms
unsigned long Last_ms_Count; // Stores the last time in ms the counter was last updated
int Count; // Stores the value that will be displayed

void setup ()
{
 /* Set DIO pins to outputs */
 pinMode(LATCH_DIO,OUTPUT);
 pinMode(CLK_DIO,OUTPUT);
 pinMode(DATA_DIO,OUTPUT);
 
 /* Initiliase the registers used to store the crrent time and count */
 Cur_ms_Count = millis();
 Last_ms_Count = 0;
 Count = 0;

}

void loop()

{
 /* Get how much time has passed in milliseconds */
 Cur_ms_Count = millis();
 
 /* If 100ms has passed then add one to the counter */
 if(Cur_ms_Count - Last_ms_Count > 100)
 
{
   Last_ms_Count = Cur_ms_Count;
   
   if(Count < 9999)
   {
     Count++;
   } else
   
      {
    Count = 0;
      }
}
 
 /* Update the display with the current counter value */
 WriteNumber(Count);
}


/* Write a decimal number between 0 and 9999 to the display */
void WriteNumber(int Number)
{
 WriteNumberToSegment(0 , Number / 1000);
 WriteNumberToSegment(1 , (Number / 100) % 10);
 WriteNumberToSegment(2 , (Number / 10) % 10);
 WriteNumberToSegment(3 , Number % 10);
}

/* Wite a Decimal number between 0 and 9 to one of the 4 digits of the display */
void WriteNumberToSegment(byte Segment, byte Value)
{
 digitalWrite(LATCH_DIO,LOW);
 shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_MAP[Value]);
 shiftOut(DATA_DIO, CLK_DIO, MSBFIRST, SEGMENT_SELECT[Segment] );
 digitalWrite(LATCH_DIO,HIGH);    

}
---------------------------------------------------------------------------------
PUSH BUTTON

/* Define pin numbers used to read the state of the buttons.
  The buttons are connected to the Arduino's analogue pins but
  because they only have two states we will read them as digital
  inputs */
#define BUTTON1 A1
#define BUTTON2 A2
#define BUTTON3 A3

void setup()
{
 Serial.begin(9600);
}

void loop()
{

 /* Has button one been pressed? */
 if(!digitalRead(BUTTON1))
   /* If so then send a message to the serial port */
   Serial.println("Button 1 Pressed!");
 /* Has button two been pressed? */
 if(!digitalRead(BUTTON2))
   /* If so then send a message to the serial port */
   Serial.println("Button 2 Pressed!");
 /* Has button three been pressed? */
 if(!digitalRead(BUTTON3))
   /* If so then send a message to the serial port */
   Serial.println("Button 3 Pressed!");
}

Back to content