Command of the SPI version of the BigRelay card. The seller of this card is www.bitwizard.nl

Dependencies:   mbed

Committer:
snoeck
Date:
Mon Nov 11 14:02:08 2013 +0000
Revision:
0:dea39d2fe9dd
Command of bigrelay card  (www.bitwizard.nl); It's the SPI version (V1.1) and the suplly is 5V. ; Don't forget the switch between SPI and 5V.; Take care of the SPI connector (numbers is not like DIL components)

Who changed what in which revision?

UserRevisionLine numberNew contents of line
snoeck 0:dea39d2fe9dd 1 #include <mbed.h>
snoeck 0:dea39d2fe9dd 2 //SPI spi(p5, p6, p7); // mosi, miso, sclk
snoeck 0:dea39d2fe9dd 3 SPI spi(p11, p12, p13); // mosi, miso, sclk
snoeck 0:dea39d2fe9dd 4 DigitalOut cs(p8);
snoeck 0:dea39d2fe9dd 5
snoeck 0:dea39d2fe9dd 6 void setupBigRelais()
snoeck 0:dea39d2fe9dd 7 {
snoeck 0:dea39d2fe9dd 8 cs = 1; //Cheap Select sur p8
snoeck 0:dea39d2fe9dd 9 // Setup the spi for 8 bit data, high steady state clock,
snoeck 0:dea39d2fe9dd 10 // second edge capture, with a 1MHz clock rate
snoeck 0:dea39d2fe9dd 11 spi.format(8,3);
snoeck 0:dea39d2fe9dd 12 spi.frequency(1000000);//freq 1MHz
snoeck 0:dea39d2fe9dd 13
snoeck 0:dea39d2fe9dd 14 // Select the device by seting chip select low
snoeck 0:dea39d2fe9dd 15 cs = 0;
snoeck 0:dea39d2fe9dd 16 wait(0.0001);
snoeck 0:dea39d2fe9dd 17 spi.write(0x9c);// addressz de la carte relais
snoeck 0:dea39d2fe9dd 18 wait(0.0001);
snoeck 0:dea39d2fe9dd 19 spi.write(0x30);//adresse du registre de direction
snoeck 0:dea39d2fe9dd 20 wait(0.0001);
snoeck 0:dea39d2fe9dd 21 spi.write(0xFF);//mise en sortie des relais
snoeck 0:dea39d2fe9dd 22 wait(0.0001);
snoeck 0:dea39d2fe9dd 23 }
snoeck 0:dea39d2fe9dd 24
snoeck 0:dea39d2fe9dd 25 void commandBigRelais(int relay,int state)
snoeck 0:dea39d2fe9dd 26 {
snoeck 0:dea39d2fe9dd 27 int output;
snoeck 0:dea39d2fe9dd 28 relay=relay|0x20;
snoeck 0:dea39d2fe9dd 29 if (state == 1) output=0xFF;
snoeck 0:dea39d2fe9dd 30 if (state == 0) output=0x00;
snoeck 0:dea39d2fe9dd 31
snoeck 0:dea39d2fe9dd 32 cs = 0;
snoeck 0:dea39d2fe9dd 33 wait(0.0001);
snoeck 0:dea39d2fe9dd 34 spi.write(0x9c);// addressz de la carte relais
snoeck 0:dea39d2fe9dd 35 wait(0.0001);
snoeck 0:dea39d2fe9dd 36 spi.write(relay);
snoeck 0:dea39d2fe9dd 37 wait(0.0001);
snoeck 0:dea39d2fe9dd 38 spi.write(output);
snoeck 0:dea39d2fe9dd 39 wait(0.0001);
snoeck 0:dea39d2fe9dd 40 cs = 1;
snoeck 0:dea39d2fe9dd 41 }
snoeck 0:dea39d2fe9dd 42
snoeck 0:dea39d2fe9dd 43
snoeck 0:dea39d2fe9dd 44 int main() {
snoeck 0:dea39d2fe9dd 45 setupBigRelais();
snoeck 0:dea39d2fe9dd 46
snoeck 0:dea39d2fe9dd 47 while (1)
snoeck 0:dea39d2fe9dd 48 {
snoeck 0:dea39d2fe9dd 49 commandBigRelais(4,1);
snoeck 0:dea39d2fe9dd 50
snoeck 0:dea39d2fe9dd 51 wait(5);
snoeck 0:dea39d2fe9dd 52 commandBigRelais(4,0);
snoeck 0:dea39d2fe9dd 53
snoeck 0:dea39d2fe9dd 54 wait(5);
snoeck 0:dea39d2fe9dd 55 }
snoeck 0:dea39d2fe9dd 56
snoeck 0:dea39d2fe9dd 57 }