const int vref = D8; // ref logic voltage for h-bridges bool set_vref = true; // define coil objects as structs with input pins struct Coil { int input1; int input2; }; // create coil objects Coil left_coil = {D9, D10}; //xiao pins Coil right_coil = {D6, D5}; // h-bridge driving helpers void setCoilPositive(Coil coil) { digitalWrite(coil.input1, HIGH); digitalWrite(coil.input2, LOW); } void setCoilNegative(Coil coil) { digitalWrite(coil.input1, LOW); digitalWrite(coil.input2, HIGH); } void shutOff(Coil coil){ digitalWrite(coil.input1, LOW); digitalWrite(coil.input2, LOW); } void dumpState(Coil coil1, Coil coil2){ Serial.println("Coil1:"); Serial.println(analogRead(coil1.input1)); Serial.println(analogRead(coil1.input2)); Serial.println("Coil2:"); Serial.println(analogRead(coil2.input1)); Serial.println(analogRead(coil2.input2)); } void setup() { // not sure if this is necessary since it works anyway pinMode(left_coil.input1, OUTPUT); pinMode(left_coil.input2, OUTPUT); pinMode(right_coil.input1, OUTPUT); pinMode(right_coil.input2, OUTPUT); pinMode(vref, OUTPUT); Serial.begin(9600); Serial.print("help!"); delay(1000); //set some default values } void loop() { // set reference voltage digitalWrite(vref, HIGH); //run sequence one time setCoilNegative(left_coil); setCoilPositive(right_coil); // // // dumpState(left_coil, right_coil); // delay(2000); // setCoilPositive(left_coil); // setCoilNegative(right_coil); // // // dumpState(left_coil, right_coil); // delay(2000); // shutOff(left_coil, right_coil); // // while (true){ // // do nothing // } // h-bridge test }