Arduino help

apikaluda?

Active member
  • May 9, 2013
    438
    102
    43
    Machan oya use karanne push button ekakda? nettan normal switch ekakda? ema ekaknam meke logics walata hariyanne ne....
    Push button > press karala release kalama off wenna one. E kiyanne button eka press kalama buttonState == HIGH wenna one. Press karala atha eriyama buttonState == LOW wenna one
     

    dushan90

    Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    Limit switches 2k pin 2 & 3 walata connect karala thiyenawa.

    Man danna widihata press unama low enne.


    Push button ekak pin 6 walata connect karala thiyenawa.
     
    Last edited:

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    TERMINAL eken state eka balanna dannawada machan? e kiyanne variables wala agayan serial widiata monitor karana eka

    Push button eka mama kiwwa widihe ekakda?
     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Ade press wunama LOW nam, code eke eka hadanna one (mama hithuwe HIGH kiyala)


    if (buttonState == LOW) { //**LOW (not HIGH)
    ispushbuttonpressed = true;
    }
     

    dushan90

    Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    Code:
    #include<Stepper.h>
    
    const int ForwardLimitSwitchPin = 2;
    const int ReverseLimitSwitchPin = 3;
    const int StepperStepPin = 4;
    const int StepperDirectionPin = 5;
    const int LimitSwitchActivated = LOW;
    const int StepperMaxRPM = 600;
    const int buttonPin = 6;
    bool ispushbuttonpressed = false;
    int buttonState = 0;
    Stepper stepper(200, StepperStepPin, StepperDirectionPin);
    
    void setup() {
    pinMode(ForwardLimitSwitchPin, INPUT_PULLUP);
    pinMode(ReverseLimitSwitchPin, INPUT_PULLUP);
    stepper.setSpeed(StepperMaxRPM);
    pinMode(buttonPin, INPUT);
    }
    
    void loop() {
    buttonState = digitalRead(buttonPin);
    if (buttonState == LOW) {
    ispushbuttonpressed = true;
    }
    
    if ((ispushbuttonpressed == true) && (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated)) {
    while (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(1);
    }
    ispushbuttonpressed == false;
    }
    
    
    else if ((ispushbuttonpressed == true) && (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated)) 
    while (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(-1);
    }
    ispushbuttonpressed == false;
    }
    Mehema neda?


    Meka machan dan mehemai wenne. Arduino eka on karapu wele idala eka direction ekakata rotate wenawa. pin 6 eke button eken mokuth wenne na machan. pin 2 eke limit switch eka press karapuwama opposite direction ekata karakenawa. Habai ethanin ehaata mona button eka press kalath mokuth wenna na. Ohe e direction ekatama karaki karaki thiyenawa.
     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Btw machan man use karanne arduino web editor eka.


    Machan mekanam use karala ne.....software eka wagema ethi kiyala hithanawa....machan mama me kiyana widiha weda kale nettan software eka install karala eken balanna....anika web editor use karanne ai? wishesha hethuwak thiyenawada?


    Onna code eka Serial monitoring walata eduwa....e kiyanne ape variables wala agayan board eka read karana agayan apita serial monitoring karanna puluwan.

    code eka mehemai:


    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);
    char codeSection[] = "start"; //use to check code only (remove it once code is finalized!)

    void setup() {
    pinMode(ForwardLimitSwitchPin, INPUT_PULLUP);
    pinMode(ReverseLimitSwitchPin, INPUT_PULLUP);
    stepper.setSpeed(StepperMaxRPM);
    pinMode(buttonPin, INPUT); //declare push button signal as an input
    Serial.begin(9600); //Serial Monitoring ON
    Serial.println("Push button state\t\tForward LS State\t\tReverse LS State\t\tCode Section");
    }

    void loop() {
    buttonState = digitalRead(buttonPin); // read push button on-off
    if (buttonState == LOW) { //**LOW (not HIGH)
    ispushbuttonpressed = true;
    }
    // Step forward until the limit switch is activated (forward rotating when hits S1) - LOOP 1
    if ((ispushbuttonpressed == true) && (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated)) { //**corrections added
    ReverseLimitSwitchPin = "inside loop one";
    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) - LOOP 2
    else if ((ispushbuttonpressed == true) && (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated)) //**corrections added
    codeSection[] = "inside loop two";
    while (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(-1);
    }
    spushbuttonpressed == false; //re-set to avoid motor turning backward once reached S1
    }

    Serial.print(buttonState);
    Serial.print("\t\t\t");
    Serial.print(ForwardLimitSwitchPin);
    Serial.print("\t\t\t");
    Serial.print(ReverseLimitSwitchPin);
    Serial.print("\t\t\t");
    Serial.println(ReverseLimitSwitchPin);
    }





    Code eka upload karala Tools>>Serial Monitor (nettan short cut keys walinnam ctrl+shift+M) balanna
    Ethakota podi wenama window ekak open wela eke agayan pennanawa....issella karala balanna....ethakota anith tika kiyannam...
    Code eka balanna....eeta passe Serial Monitor daala push button, limit switches obala balanna ethakota serial monitor eke agayan wenas wenawa...balala kiyanna....awulaknam kiyanna...
     
    Last edited:

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    [/CODE]Mehema neda?


    Meka machan dan mehemai wenne. Arduino eka on karapu wele idala eka direction ekakata rotate wenawa. pin 6 eke button eken mokuth wenne na machan. pin 2 eke limit switch eka press karapuwama opposite direction ekata karakenawa. Habai ethanin ehaata mona button eka press kalath mokuth wenna na. Ohe e direction ekatama karaki karaki thiyenawa.[/QUOTE]


    Hari machan mama code eka balannam....podi welawak denna....e athare mama kiyapu Serial monitoring balanna...oya Arduino karanna innawanam oya monitoring eka godak wedagath...mokada code ekaka weradi hoyanna, code eka improve karanna, kotinma code ekak hadannath oka harima udawu wenawa....
     

    dushan90

    Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    Code eka balanna....eeta passe Serial Monitor daala push button, limit switches obala balanna ethakota serial monitor eke agayan wenas wenawa...balala kiyanna....awulaknam kiyanna...

    assignment of read-only variable 'ReverseLimitSwitchPin' kiyala error ekak enawa machan
     
    Last edited:

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Machan man serial monitor eken buttons check kala. Buttons 3ma press unama state eka LOW machan.


    Machan btns 3 kiyanne push, 2 limit switches da?

    mmmm....hithala balanna one ai kiyala....mama ewapu eken btns wala wena wenama inputs balala kiyanna balanna machan


    Aaaa macho sorry, eka mehema wenas karanna:


    Serial.print(buttonState);
    Serial.print("\t\t\t");
    Serial.print(digitalRead(ForwardLimitSwitchPin));
    Serial.print("\t\t\t");
    Serial.print(digitalRead(ReverseLimitSwitchPin));
    Serial.print("\t\t\t");
    Serial.println(codeSection[]);
     
    Last edited:

    dushan90

    Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    Machan mekanam use karala ne.....software eka wagema ethi kiyala hithanawa....
    anika web editor use karanne ai? wishesha hethuwak thiyenawada?



    Issara machan man yaluwek ekka ekathu wela project ekak kala. Hama welema codes share kara kara innawata wada meka lesi ne machan. Anika office eke idan karaddi circuits tika nathath code eka verify karala check karanna puluwan ne PC eke software eka install karanne nathuwa. Ekai web version eka use kale. Monitor ekath thiyenawa machan. Eken thama dan man buttons tika check kale.
     
    Last edited:

    dushan90

    Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    Machan btns 3 kiyanne push, 2 limit switches da?


    Yep


    Aaaa macho sorry, eka mehema wenas karanna:


    Serial.print(buttonState);
    Serial.print("\t\t\t");
    Serial.print(digitalRead(ForwardLimitSwitchPin));
    Serial.print("\t\t\t");
    Serial.print(digitalRead(ReverseLimitSwitchPin));
    Serial.print("\t\t\t");
    Serial.println(codeSection[]);



    Thamath ara error eka enawa
     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Issara machan man yaluwek ekka ekathu wela project ekak kala. Hama welema codes share kara kara innawata wada meka lesi ne machan. Ekai web version eka use kale. Monitor ekath thiyenawa machan. Eken thama dan man buttons tika check kale.




    Hari machan...matanam software eka lesi...anika loku projects walata WEB eke performance komada danne ne...
    mama Serial monitoring anthima tika wenas karala kalin reply eke ewwa...eka widihata code eka wenas karanna machan
     

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    :rofl: Sorry machan.....code eka verify kale nethi nisa awul keepayak thibba...ara error eka enne ekai...onna eka heduwa...dennam pothe etiyata monitoring weda karanna one:yes:



    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);
    int codeSection = 0; //use to check code only (remove it once code is finalized!)

    void setup() {
    pinMode(ForwardLimitSwitchPin, INPUT_PULLUP);
    pinMode(ReverseLimitSwitchPin, INPUT_PULLUP);
    stepper.setSpeed(StepperMaxRPM);
    pinMode(buttonPin, INPUT); //declare push button signal as an input
    Serial.begin(9600); //Serial Monitoring ON
    Serial.println("Push button state\t\tForward LS State\t\tReverse LS State\t\tCode Section");
    }

    void loop() {
    buttonState = digitalRead(buttonPin); // read push button on-off
    if (buttonState == LOW) { //**LOW (not HIGH)
    ispushbuttonpressed = true;
    }
    // Step forward until the limit switch is activated (forward rotating when hits S1) - LOOP 1
    if ((ispushbuttonpressed == true) && (digitalRead(ForwardLimitSwitchPin) != LimitSwitchActivated)) { //**corrections added
    codeSection = 1;
    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) - LOOP 2
    else if ((ispushbuttonpressed == true) && (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated)) { //**corrections added
    codeSection = 2;
    while (digitalRead(ReverseLimitSwitchPin) != LimitSwitchActivated) {
    stepper.step(-1);
    }
    ispushbuttonpressed == false; //re-set to avoid motor turning backward once reached S1
    }
    codeSection = 3; //IF monitors for a long non-of the above LOOPS executed!!


    Serial.print(buttonState);
    Serial.print("\t\t\t");
    Serial.print(digitalRead(ForwardLimitSwitchPin));
    Serial.print("\t\t\t");
    Serial.print(digitalRead(ReverseLimitSwitchPin));
    Serial.print("\t\t\t");
    Serial.println(codeSection);
    }
     
    Last edited:

    apikaluda?

    Active member
  • May 9, 2013
    438
    102
    43
    Den buttons tika press kara kara monitor wena agayan balannako machan...eken hithaganna puluwan code eke mokada wenne kiyala....eken code eke logic awul therum ganna puluwan


    codeSection variable eke agayen code eke koi LOOP ekada weda karanne kiyala balaganna puluwan
     

    dushan90

    Active member
  • Jan 22, 2008
    811
    50
    28
    Diagon Alley
    :rofl: Sorry machan.....code eka verify kale nethi nisa awul keepayak thibba...ara error eka enne ekai...onna eka heduwa...dennam pothe etiyata monitoring weda karanna one:yes:


    :lol::lol: Dan nan code eka upload una.


    Stepper motor eka nan thamath mehemai machan


    Meka machan dan mehemai wenne. Arduino eka on karapu wele idala eka direction ekakata rotate wenawa. pin 6 eke button eken mokuth wenne na machan. pin 2 eke limit switch eka press karapuwama opposite direction ekata karakenawa. Habai ethanin ehaata mona button eka press kalath mokuth wenna na. Ohe e direction ekatama karaki karaki thiyenawa.


    Serial monitor eke output eka ave mehemai


    Code:
    Push button state        Forward LS State        Reverse LS State        Code Section
    0            0            1            3
     
    Last edited: