Arduino help

dushan90

Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    Machan mata stepper motor ekakin item ekak left and right move karanna one.

    Wade wenna one button ekak press kalama item eka left side eke nan thiyenne, eka right side ekata gihin nawathinna one. Right side nan thiyenne, left ekata gihin nawathinna one.

    Man hithanne me pic eken therei mokak da wenne kiyala.

    Untitled_zpsjfsqa6cz.jpg


    Items using;
    Arduino UNO
    A4988 driver
    Stepper motor
    2 x limit switches
    Push button
     

    dushan90

    Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    Mata code ekak set una


    const int ForwardLimitSwitchPin = 2;
    const int ReverseLimitSwitchPin = 3;
    const int StepperStepPin = 4;
    const int StepperDirectionPin = 5;
    const int LimitSwitchActivated = LOW; // Limit switch grounds pin
    const int StepperMaxRPM = 100;

    Stepper stepper(200, StepperStepPin, StepperDirectionPin);

    void setup() {
    pinMode(ForwardLimitSwitchPin, INPUT_PULLUP);
    pinMode(ReverseLimitSwitchPin, INPUT_PULLUP);
    stepper.setSpeed(StepperMaxRPM);
    }

    void loop() {
    // Step forward until the limit switch is activated
    while (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(1);
    }
    // Step reverse until the limit switch is activated
    while (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(-1);
    }
    }


    Meke scene eka thiyenne limit switches press kalama motor eka nawathinne na. Aye opposite direction rotate wenna gannawa.


    Kohomada eka nawathinna hada ganne machan?
     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Mata code ekak set una





    Meke scene eka thiyenne limit switches press kalama motor eka nawathinne na. Aye opposite direction rotate wenna gannawa.


    Kohomada eka nawathinna hada ganne machan?


    Machan oyage logic eke hetiyata ema thamai wenne....loop eke yana eka break karanna nam push button eken manual input ekak denna wei
     
    • Like
    Reactions: dushan90

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Machan wede poddak balala kiyannam....maath Arduino karala godak kal...enisa ekapaara dewal mathak wenne ne...Logic ekak hadala reply ekak daannam
     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    const int ForwardLimitSwitchPin = 2;
    const int ReverseLimitSwitchPin = 3;
    const int StepperStepPin = 4;
    const int StepperDirectionPin = 5;
    const int LimitSwitchActivated = LOW; // Limit switch grounds pin
    const int StepperMaxRPM = 100;
    const int buttonPin = 6; // the number of the pushbutton pin (choose the correct pin here)
    bool ispushbuttonpressed = false; // Boolean to store push button logic

    Stepper stepper(200, StepperStepPin, StepperDirectionPin);

    void setup() {
    pinMode(ForwardLimitSwitchPin, INPUT_PULLUP);
    pinMode(ReverseLimitSwitchPin, INPUT_PULLUP);
    stepper.setSpeed(StepperMaxRPM);
    pinMode(buttonPin, INPUT); //declare push button signal as an input
    }

    void loop() {
    buttonState = digitalRead(buttonPin); // read push button on-off
    if (buttonState == HIGH) {
    ispushbuttonpressed = true;
    }
    // Step forward until the limit switch is activated (forward rotating when hits S1)
    if (ispushbuttonpressed == true) {
    while (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(1);
    }
    ispushbuttonpressed == false; //re-set to avoid motor turning backward once reached S2
    }

    // Step reverse until the limit switch is activated (forward rotating when hits S2)
    if (ispushbuttonpressed == true) {
    while (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(-1);
    }
    spushbuttonpressed == false; //re-set to avoid motor turning backward once reached S1
    }
    }







    Machan meka weda karanne mehemai....
    1) push button eka ekapaarak press kalaama logic eken buttonState == HIGH -> ispushbuttonpressed = true
    2) ethakota motor eka touch wela thiyena switch eka (S1/S2) anuwa forward hari backward hari rotate wenawa
    3) rotate wela anith switch eka touch wunama nawathinawa. Newathunata passe ispushbuttonpressed = false wenawa
    4) Ethakota aaye anith pettata rotate wenne ne
    5) ehema anith pettata rotate karanna nam aaye push buttona eka press karanna one. Ethakota aaye (1) indan steps tika follow wenawa.


    meka balanna machan....weede karala awulak thiyenawanam kiyanna....logic wala awul thenak thibboth ahanna...mama kiyannam.



    ** thawa ekak machan motor eka start ekedi kisima switch ekak touch wela nettan (S1/S2) me logic eken weda karanne ne mata hithenne....ekath balanna...ema nethinam thawa meka improve karala wede goda daagamu...
    balala kiyanna.
     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Macho podi logics awulak thibba...eka heduwa (** walin mark karala tiyenne)


    const int ForwardLimitSwitchPin = 2;
    const int ReverseLimitSwitchPin = 3;
    const int StepperStepPin = 4;
    const int StepperDirectionPin = 5;
    const int LimitSwitchActivated = LOW; // Limit switch grounds pin
    const int StepperMaxRPM = 100;
    const int buttonPin = 6; // the number of the pushbutton pin (choose the correct pin here)
    bool ispushbuttonpressed = false; // Boolean to store push button logic

    Stepper stepper(200, StepperStepPin, StepperDirectionPin);

    void setup() {
    pinMode(ForwardLimitSwitchPin, INPUT_PULLUP);
    pinMode(ReverseLimitSwitchPin, INPUT_PULLUP);
    stepper.setSpeed(StepperMaxRPM);
    pinMode(buttonPin, INPUT); //declare push button signal as an input
    }

    void loop() {
    buttonState = digitalRead(buttonPin); // read push button on-off
    if (buttonState == HIGH) {
    ispushbuttonpressed = true;
    }
    // Step forward until the limit switch is activated (forward rotating when hits S1)
    if ((ispushbuttonpressed == true) && (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated)) { //**corrections added
    while (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(1);
    }
    ispushbuttonpressed == false; //re-set to avoid motor turning backward once reached S2
    }

    // Step reverse until the limit switch is activated (forward rotating when hits S2)
    if ((ispushbuttonpressed == true) && (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated)) //**corrections added
    while (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(-1);
    }
    spushbuttonpressed == false; //re-set to avoid motor turning backward once reached S1
    }
    }



     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Addaa...sorry eka mis wuna...meka balanna



    const int ForwardLimitSwitchPin = 2;
    const int ReverseLimitSwitchPin = 3;
    const int StepperStepPin = 4;
    const int StepperDirectionPin = 5;
    const int LimitSwitchActivated = LOW; // Limit switch grounds pin
    const int StepperMaxRPM = 100;
    const int buttonPin = 6; // the number of the pushbutton pin (choose the correct pin here)
    bool ispushbuttonpressed = false; // Boolean to store push button logic
    int buttonState = 0; //**correction
    Stepper stepper(200, StepperStepPin, StepperDirectionPin);

    void setup() {
    pinMode(ForwardLimitSwitchPin, INPUT_PULLUP);
    pinMode(ReverseLimitSwitchPin, INPUT_PULLUP);
    stepper.setSpeed(StepperMaxRPM);
    pinMode(buttonPin, INPUT); //declare push button signal as an input
    }

    void loop() {
    buttonState = digitalRead(buttonPin); // read push button on-off
    if (buttonState == HIGH) {
    ispushbuttonpressed = true;
    }
    // Step forward until the limit switch is activated (forward rotating when hits S1)
    if ((ispushbuttonpressed == true) && (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated)) { //**corrections added
    while (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(1);
    }
    ispushbuttonpressed == false; //re-set to avoid motor turning backward once reached S2
    }

    // Step reverse until the limit switch is activated (forward rotating when hits S2)
    else if ((ispushbuttonpressed == true) && (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated)) //**corrections added
    while (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(-1);
    }
    spushbuttonpressed == false; //re-set to avoid motor turning backward once reached S1
    }
    }
     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    E error eka enne mokakhari api paawichchi karana variable ekak declare karala nettan hari nettan e variable eka use karana function eke scope eken pita nam hari thamai...


    Mata Sketch eka verify karala balanna widihak ne machan...mage langa STEPPER library eka install karala ne:baffled:
     
    Last edited:

    dushan90

    Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    Ade hari giye nane ban.


    On karapu wele idan aathak paathak nathuwa karakenawa. ForwardLimitSwitch (pin 2 ekata connect karala thiyena eka) press kalama nawathinawa. Echcharamai wenne.
     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Ade hari giye nane ban.


    On karapu wele idan aathak paathak nathuwa karakenawa. ForwardLimitSwitch (pin 2 ekata connect karala thiyena eka) press kalama nawathinawa. Echcharamai wenne.




    Aathak paathak ne kiwwe machan....Forward-Reverse dekatama rotate wenawada push button eka gehuwama?
    Push button press karamada start wenne...nettan Arduino eka on karapu gaman motor eka start wenawada?
    Limit switch eka touch wunama direction eka change wenawada?
    Nettan motor eka tikak eka pettakata rotate wela (hithamu forward pettata kiyala) eeta passe nikanma reverse rotate wenna gannawada? eetapasse aaye nikanma Forward rotate wenawada?
    Machan Limit Switch eka press wunama input eka widihata board ekata enne HIGH da nettan LOW da?

     
    Last edited:

    dushan90

    Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    Na ban. Arduino eka on karapu wele idan Ekama direction ekakata rotate wenawa. Echcharai ban wenne. pis 2 eke switch eka press kalama nawathinawa. eka release unama aye rotate wenna gannawa.
     
    Last edited: