Op/Neer Links/Rechts
1 bericht
• Pagina 1 van 1
Op/Neer Links/Rechts
Bij het aansturen van motoren, zoals van een robot of rolluiken, is het ongewenst dat beide bewegngen (op/neer of links/rechts) geljktijdig gegeven worden.
In de relaistechniek worden de stuurknoppen meestal op elkaar vergendeld, en de spoelen van de hoofdrelais ook.
Bij een microcontroller programma, waarbj de schakelweg tussen ingang en uitgang best wel eens lang kan zijn, is een programmeerfoutje zo gemaakt waardoor beide bewegingen toch gemakkeljk aangestuurd worden.
Je kan dan een z.g. inhibitor toepassen. Dit wordt ook wel een vergrendel schakeling genoemd.
Het is een En-poortje met minmaal 2 ingangen, waarvan een geinverteerd is. Deze neem je op vlak voor de uitgangspin.
Op de niet geinverteerde ingang komt het stuursignaal van de eerste beweging, op de geinverteeerde de uitgang van tweede beweging. De tweede beweging verbied daarmee de aansturing van de eerste. (to inhbit = verbieden)
B.v. de sturing van omhoog wordt dus vergrendeld door omlaag, en omgekeerd.
Een (heel)klein programmatje verduidelijkt het geheel denk ik.
En met twee coderegels kan je een hoop problemen voorkomen.
cpp code
In de relaistechniek worden de stuurknoppen meestal op elkaar vergendeld, en de spoelen van de hoofdrelais ook.
Bij een microcontroller programma, waarbj de schakelweg tussen ingang en uitgang best wel eens lang kan zijn, is een programmeerfoutje zo gemaakt waardoor beide bewegingen toch gemakkeljk aangestuurd worden.
Je kan dan een z.g. inhibitor toepassen. Dit wordt ook wel een vergrendel schakeling genoemd.
Het is een En-poortje met minmaal 2 ingangen, waarvan een geinverteerd is. Deze neem je op vlak voor de uitgangspin.
Op de niet geinverteerde ingang komt het stuursignaal van de eerste beweging, op de geinverteeerde de uitgang van tweede beweging. De tweede beweging verbied daarmee de aansturing van de eerste. (to inhbit = verbieden)
B.v. de sturing van omhoog wordt dus vergrendeld door omlaag, en omgekeerd.
Een (heel)klein programmatje verduidelijkt het geheel denk ik.
En met twee coderegels kan je een hoop problemen voorkomen.
cpp code
/* Inhibitor
* test met 2 drukknopen, een voor op en een voor neer
* Arduino Uno
*/
byte sturingOp = 3; // drukknoppen
byte sturingNeer = 4;
byte Op = 7; // uitgangen
byte Neer = 8;
void setup() {
pinMode(Op, OUTPUT);
pinMode(Neer, OUTPUT);
}
/* netwerk 1:
*
* | st_Op +---+ Op |
* +---[ ]---+--| & |--+---+-----+---( )---+
* | +--o | | |
* | | +---+ | |
* | +---------------+ |
* | | | |
* | +-------------+ | |
* | | +---+ | Neer |
* | st_Neer +--o & |--+-----+---+---( )---+
* +---[ ]---+--| | |
* | +---+
*/
void loop() {
digitalWrite(Op, digitalRead(sturingOp) && !digitalRead(Neer));
digitalWrite(Neer, digitalRead(sturingNeer) && !digitalRead(Op));
}
Advertisement
1 bericht
• Pagina 1 van 1
Wie is er online?
Gebruikers in dit forum: Geen geregistreerde gebruikers en 6 gasten