hey guys today i had i idea to make a universal lib for arduino and have some question for you
so lets start heres my code
HBridge.cpp
#include "HBridge.h"
#include "HBridge.h"
int EA[] = {EA1, EA2, EA3, EA4, EA5};
int EB[] = {EB1, EB2, EB3, EB4, EB5};
int I1[] = {I11, I12, I13, I14, I15};
int I2[] = {I21, I22, I23, I24, I25};
int I3[] = {I31, I32, I33, I34, I35};
int I4[] = {I41, I42, I43, I44, I45};
/*
*/
HBridge::HBridge(int hbnum)
{
_hbnum = hbnum;
switch(hbnum)
{
case 1:
setEnablePins(EA1, EB1);
setControlPins(I11, I21, I31, I41);
break;
case 2:
setEnaplePins(EA2, EB2);
setControlPins(I12, I22, I32, I42);
break;
case 3:
setEnablePins(EA3, EB3);
setControlPins(I13, I23, I33, I43);
break;
case 4:
setEnablePins(EA4, EB4);
setContrloPins(I14, I24, I34, I44);
break;
case 5:
setEnablePins(EA5, EB5);
setControlPins(I15, I25, I35, I45);
}
}
/*
*/
HBridge::setEnablePins(int EA[], int EB[])
{
_EA[] = EA[];
_EB[] = EB[];
pinMode(_EA[], OUTPUT);
pinMode(_EB[], OUTPUT);
}
/*
*/
HBridge::setControlPins(int I1[], int I2[], int I3[], int I4[])
{
_I1[] = I1[];
_I2[] = I2[];
_I3[] = I3[];
_I4[] = I4[];
pinMode(_I1[], OUTPUT);
pinMode(_I2[], OUTPUT);
pinMode(_I3[], OUTPUT);
pinMode(_I4[], OUTPUT);
}
HBridge.h
#include "Arduino.h"
#ifndef HBridge_h
#define HBridge_h
#if ARDUINO >= 100
#include "Arduino.h"
#else
#include "WProgram.h"
#endif
class HBridge {
public:
HBridge(int hbnum, int EA[], int EB[], int I1[], int I2[], int I3[], int I4[]);
void setEnablePins(int EB[], int EB[]);
void setControlPins(int I1[], int I2[], int I3[], int I4[]);
void setHBridge(int hbnum);
private:
int _hbnum;
};
#endif
hers a simply code that i have now a problem
#include <HBridge.h>
HBridge hb1(1);
void setup() {
// initialize bot pins
hb1.setEnablePins(3, 5);
hb1.setControlPins(2, 4, 7, 8);
}
void loop() {
}
and im getting this error
\libraries\HBridge/HBridge.h:24: error: multiple parameters named 'EB'
sketch_jul06a:18: error: no matching function for call to 'HBridge::HBridge(int)'
\libraries\HBridge/HBridge.h:22: note: candidates are: HBridge::HBridge(int, int*, int*, int*, int*, int*, int*)
\libraries\HBridge/HBridge.h:18: note: HBridge::HBridge(const HBridge&)
sketch_jul06a.ino: In function 'void setup()':
sketch_jul06a:23: error: invalid conversion from 'int' to 'int*'
sketch_jul06a:23: error: initializing argument 1 of 'void HBridge::setEnablePins(int*, int*)'
sketch_jul06a:23: error: invalid conversion from 'int' to 'int*'
sketch_jul06a:23: error: initializing argument 2 of 'void HBridge::setEnablePins(int*, int*)'
sketch_jul06a:24: error: invalid conversion from 'int' to 'int*'
sketch_jul06a:24: error: initializing argument 1 of 'void HBridge::setControlPins(int*, int*, int*, int*)'
sketch_jul06a:24: error: invalid conversion from 'int' to 'int*'
sketch_jul06a:24: error: initializing argument 2 of 'void HBridge::setControlPins(int*, int*, int*, int*)'
sketch_jul06a:24: error: invalid conversion from 'int' to 'int*'
sketch_jul06a:24: error: initializing argument 3 of 'void HBridge::setControlPins(int*, int*, int*, int*)'
sketch_jul06a:24: error: invalid conversion from 'int' to 'int*'
sketch_jul06a:24: error: initializing argument 4 of 'void HBridge::setControlPins(int*, int*, int*, int*)'
i dont now if um using this right int EA[] = {EA1, EA2, EA3, EA4, EA5};
and this HBridge::HBridge(int hbnum) can some one advice?
for now its simply but i what to include both enable A and B for one bridge to control and many more
but first lets concentrate on this :]