@robert ik snap hem nog niet helemaal, je stuurt een accessory commando en dan doe je kennelijk een nog iets met de bits uit de functie decoderof tel je gewoon de bits van de accesorycommando's op om het aantal rotatie stappen te bepalen
of de motor van de draaischijf voorzien van lastregeling ?
toch maar eens over terugmelding nadenken ?of de motor van de draaischijf voorzien van lastregeling ?
/*----Semiautomatische draaischijf besturing-----*/#define RELAY_ON 0#define RELAY_OFF 1/*-----( Declare objects )-----*//*-----( Declare Variables )-----*/#define Relay_1 2 // Arduino Digital I/O pin number#define Relay_2 3#define Relay_3 4#define Relay_4 5#define In_1 6 // Arduino Digital I/O pin number#define In_2 7#define In_3 8#define In_4 9void setup() /****** SETUP: RUNS ONCE ******/{ //-------( Initialize Pins so relays are inactive at reset)---- digitalWrite(Relay_1, RELAY_OFF); digitalWrite(Relay_2, RELAY_OFF); digitalWrite(Relay_3, RELAY_OFF); digitalWrite(Relay_4, RELAY_OFF); //---( THEN set pins as outputs )---- pinMode(Relay_1, OUTPUT); pinMode(Relay_2, OUTPUT); pinMode(Relay_3, OUTPUT); pinMode(Relay_4, OUTPUT); delay(1000); //Check that all relays are inactive at Reset pinMode(In_1, INPUT_PULLUP); pinMode(In_2, INPUT_PULLUP); pinMode(In_3, INPUT_PULLUP); pinMode(In_4, INPUT_PULLUP);}//--(end setup )---void loop() /****** LOOP: RUNS CONSTANTLY ******/{ if (!digitalRead(In_1)) { clockwise(1); draai(2000); } if (!digitalRead(In_2)) { clockwise(1); draai(4000); } if (!digitalRead(In_3)) { clockwise(0); draai(2000); } if (!digitalRead(In_4)) { clockwise(0); draai(4000); }}//--(end main loop )---void clockwise(bool on){ if (on) { digitalWrite(Relay_1, RELAY_ON);// set the Relay ON digitalWrite(Relay_2, RELAY_ON);// set the Relay ON } else { digitalWrite(Relay_1, RELAY_OFF); digitalWrite(Relay_2, RELAY_OFF); } delay(100);}void draai(unsigned int duur){ unsigned long timer; timer = millis(); timer = timer + duur; digitalWrite(Relay_3, RELAY_ON);// set the Relay OFF while (timer > millis()) { // gebruik deze ruimte om iets af te handelen tijdens de draai } digitalWrite(Relay_3, RELAY_OFF);// set the Relay OFF}
... volgende stap wil ik gaan kijken of een magneetje aan de brug een hall sensor kan triggeren
Geen enkele terugmelding en toch digitaal, dat kan alleen maar als je timing en snelheid controleert
... Als het timing idee een beetje werkt...