; Multifunctioneel shield voor Arduino.
Het multifunctionele board kwam binnen uit China. Het shield bevat een buzzer (groene cirkel), 4 leds (rode rechthoek), 3 drukknoppen (zwarte rechthoek, resetknop (witte rechthoek) tel ik niet mee), 4 cijfer displays en een regelbare weerstand (paarse rechthoek).

Van de 2 (gele rechthoek) jumpers is J1 om DQ hoog te maken voor de DS120 temperatuur sensor die niet bijgeleverd is.

Jumper J2 is om de 5 volt naar de voorschakelweerstanden voor de drukknoppen te halen. Nu is in rust A1 A2 A3 hoog door de weerstand en anders zwevend.

Het aansluitblok met 7 aansluitingen is het zwarteblok bij de cijfers, voor bleutooth APC220.
Pinnen van APC220 zijn SET, AUX, TXD, RXD, EN, VCC, GND. Dit contra aan het schema.!!
1 is massa
2 is +5V
3 is NC
4 is D1
5 is D0
6 is Aux
7 is set


Het aansluitblok van 4x3 pinnen
Rij van 4 pinnen richting drukknoppen is min/ground
Middelste rij van 4 pinnen is 5V plus
Buitenste vrij te gebruiken rij:
1e pin van onder is A5
2e pin van onder is D9
3e pin van onder is D6
4e pin van onder is D5


A0 = potmeter
A1 = drukknop1
A2 = drukknop2
A3 = drukknop3
A4 = temp sensor DS1820 U5
A5 = vrij te gebruiken

D0 = USB en bleutooth aansluiting
D1 = USB en bleutooth aansluiting
D2 = voor de SFH506-38 IR ontvanger/versterker U4
D3 = Buzzer
D4 = Latch_Dio voor cijferdisplay
D5 = vrij te gebruiken
D6 = vrij te gebruiken
D7 = Clc_DIO voor cijferdisplay
D8 = Data_DIO voor cijferdisplay
D9 = vrij te gebruiken
D10= Led 3
D11= Led 2
D12= Led 1
D13= Led 0



// example of http://arduinolearning.com/code/multi-function-shield-examples.php
// https://benselectronics.nl/multifunctioneel-shield/

const byte LED[] = {13,12,11,10};

#define Pot1 A0
#define BUTTON1 A1
#define BUTTON2 A2
#define BUTTON3 A3

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

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

#define OFF HIGH
#define ON LOW
/* 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};
int PotValue;

/*
Vrije aansluitingen (pwm)5, 6, 9, A5
0-rx 1-tx == USB
APC220 shield http://image.dfrobot.com/image/data/TEL0005/APC220_Datasheet.pdf
2Socket for temperature sensor LM35 http://www.engineersgarage.com/electronic-components/lm35-sensor-datasheet
or DS18B20 http://www.tweaking4all.nl/hardware/arduino/arduino-ds18b20-temperatuur-sensor/
Bluetooth, draadloze interfaces, stem module, stem erkenning module kan worden gebruikt voor draadloze communicatie experiment
*/

// the setup function runs once when you press reset or power the board
void setup()
{
Serial.begin(9600);
// initialize the digital pin as an output.
pinMode(LED[0], OUTPUT);
pinMode(LED[1], OUTPUT);
pinMode(LED[2], OUTPUT);
pinMode(LED[3], OUTPUT);
/* Set DIO pins to outputs */
pinMode(LATCH_DIO,OUTPUT);
pinMode(CLK_DIO,OUTPUT);
pinMode(DATA_DIO,OUTPUT);
pinMode(BUZZER_DIO, OUTPUT);
}

// the loop function runs over and over again forever
void loop()
{
if(!digitalRead(BUTTON1))
{
digitalWrite(LED[0], HIGH);
digitalWrite(LED[1], HIGH);
digitalWrite(LED[2], HIGH);
digitalWrite(LED[3], HIGH);
digitalWrite(BUZZER_DIO, ON);
}

if(!digitalRead(BUTTON2))
{
digitalWrite(LED[0], LOW);
digitalWrite(LED[1], LOW);
digitalWrite(LED[2], LOW);
digitalWrite(LED[3], LOW);
digitalWrite(BUZZER_DIO, OFF);
}
if(!digitalRead(BUTTON3))
{

PotValue = analogRead(Pot1);
}
/* Update the display with the current counter value */
WriteNumberToSegment(0 , PotValue / 1000);
WriteNumberToSegment(1 , (PotValue / 100) % 10);
WriteNumberToSegment(2 , (PotValue / 10) % 10);
WriteNumberToSegment(3 , PotValue % 10);


}
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);
}

bronnen:
http://arduinolearning.com/code/multi-function-shield-examples.php
http://www.appconwireless.com/NewsShow.asp?id=194