element14 Community
element14 Community
    Register Log In
  • Site
  • Search
  • Log In Register
  • Community Hub
    Community Hub
    • What's New on element14
    • Feedback and Support
    • Benefits of Membership
    • Personal Blogs
    • Members Area
    • Achievement Levels
  • Learn
    Learn
    • Ask an Expert
    • eBooks
    • element14 presents
    • Learning Center
    • Tech Spotlight
    • STEM Academy
    • Webinars, Training and Events
    • Learning Groups
  • Technologies
    Technologies
    • 3D Printing
    • FPGA
    • Industrial Automation
    • Internet of Things
    • Power & Energy
    • Sensors
    • Technology Groups
  • Challenges & Projects
    Challenges & Projects
    • Design Challenges
    • element14 presents Projects
    • Project14
    • Arduino Projects
    • Raspberry Pi Projects
    • Project Groups
  • Products
    Products
    • Arduino
    • Avnet & Tria Boards Community
    • Dev Tools
    • Manufacturers
    • Multicomp Pro
    • Product Groups
    • Raspberry Pi
    • RoadTests & Reviews
  • About Us
  • Store
    Store
    • Visit Your Store
    • Choose another store...
      • Europe
      •  Austria (German)
      •  Belgium (Dutch, French)
      •  Bulgaria (Bulgarian)
      •  Czech Republic (Czech)
      •  Denmark (Danish)
      •  Estonia (Estonian)
      •  Finland (Finnish)
      •  France (French)
      •  Germany (German)
      •  Hungary (Hungarian)
      •  Ireland
      •  Israel
      •  Italy (Italian)
      •  Latvia (Latvian)
      •  
      •  Lithuania (Lithuanian)
      •  Netherlands (Dutch)
      •  Norway (Norwegian)
      •  Poland (Polish)
      •  Portugal (Portuguese)
      •  Romania (Romanian)
      •  Russia (Russian)
      •  Slovakia (Slovak)
      •  Slovenia (Slovenian)
      •  Spain (Spanish)
      •  Sweden (Swedish)
      •  Switzerland(German, French)
      •  Turkey (Turkish)
      •  United Kingdom
      • Asia Pacific
      •  Australia
      •  China
      •  Hong Kong
      •  India
      • Japan
      •  Korea (Korean)
      •  Malaysia
      •  New Zealand
      •  Philippines
      •  Singapore
      •  Taiwan
      •  Thailand (Thai)
      • Vietnam
      • Americas
      •  Brazil (Portuguese)
      •  Canada
      •  Mexico (Spanish)
      •  United States
      Can't find the country/region you're looking for? Visit our export site or find a local distributor.
  • Translate
  • Profile
  • Settings
Arduino
  • Products
  • More
Arduino
Arduino Forum O.K. i'm building a robot for school with my arduino leonard and I need some help with my sketch...
  • Blog
  • Forum
  • Documents
  • Quiz
  • Events
  • Polls
  • Files
  • Members
  • Mentions
  • Sub-Groups
  • Tags
  • More
  • Cancel
  • New
Join Arduino to participate - click to join for free!
Actions
  • Share
  • More
  • Cancel
Forum Thread Details
  • State Not Answered
  • Replies 8 replies
  • Subscribers 402 subscribers
  • Views 574 views
  • Users 0 members are here
  • help
  • robot
  • school
  • arduino
Related

O.K. i'm building a robot for school with my arduino leonard and I need some help with my sketch...

Former Member
Former Member over 11 years ago

So this is the sketch,

 

#include<Servo.h>

Servo cont1;

Servo cont2;

//Servo head;

int sensePin = A0;

int tenin = 230;

int twenin = 100;

void setup()

{

  cont1.attach(10);

  cont2.attach(11);

  //head.write(90);

  //head.attach(9);

  //pinMode(9 OUTPUT);

}

void loop()

{

  cont1.write(135);

  cont2.write(45);

  delay(500);

  if(analogRead(sensePin)<tenin)

  {

    cont1.write(92);

    cont2.write(92);

    delay(5000);

    cont1.write(45);

    cont2.write(135);

    delay(500);

    //head.write(90);

  }

  //head.write(0);

  else(analogRead(sensePin)<twenin);

    {

      cont1.write(180);

      cont2.write(180);

      delay(500);

    }

  if(analogRead(sensePin)>tenin)

  {

    cont1.write(45);

    cont2.write(135);

  }

}

 

(The commented parts are the pats I took out because my servo broke image)

If you need me to post more i will

  • Sign in to reply
  • Cancel
  • Former Member
    0 Former Member over 11 years ago

    What do you need help with?

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Former Member

    Whenever I put my hand in front of the IR sensor the servos move but I didn't mean for it to do that. Since I am not that advanced i'm trying to make it go forward until it sees something, turn right, and if it can go there it goes. If not it turns left and tries to go that way. If it cant do that i simply pick it up and move it.tototo30

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Former Member

    it would probably be helpful if i knew what was happening in each line so i can see whats happening in each step

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Robert Peter Oakes
    0 Robert Peter Oakes over 11 years ago

    One rather troubling part of your code is this

     

    void loop()

    {

      cont1.write(135);

      cont2.write(45);

      delay(500);

     

    it is part of the main loop and has no control around it. This means it will be executed every time through the loop no matter the other conditions

     

    and this part

      if(analogRead(sensePin)>tenin)

      {

        cont1.write(45);

        cont2.write(135);

      }

     

    will be immediately over ridden by the above code as there is no delay or any other control code to prevent it therefor making it redundant.

     

    for good form (Not sure if yours will compile or if it is just a typo) you should not do this

    else(analogRead(sensePin)<twenin);


    but instead should write else if(analogRead(sensePin)<twenin);

     

    As Patrick stated, if you can add comments for what the variables are supposed to be (I am assuming sensing an object less or greater in distance from a specified amount but that's guessing) but comment in plain English rather than electrically

     

    So if you agree, apply the changes needed to address the comments I made, add some comments and re post your observations, well go from there

     

    Peter

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Former Member

    What do you mean "happening in each line" sorry if that's something really basic but I'm kind of a newbie

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Robert Peter Oakes

    So did you mean to take those out or edit those because here is the edited version:

    #include<Servo.h>

    Servo cont1;

    Servo cont2;

    //Servo head;

    int sensePin = A0;

    int tenin = 230;

    int twenin = 100;

    void setup()

    {

      cont1.attach(10);

      cont2.attach(11);

      //head.write(90);

      //head.attach(9);

      //pinMode(9 OUTPUT);

    }

    void loop()

    {

      cont1.write(135);

      cont2.write(45);

      delay(500);

      if(analogRead(sensePin)<tenin)

      {

        cont1.write(92);

        cont2.write(92);

        delay(5000);

        cont1.write(45);

        cont2.write(135);

        delay(500);

        //head.write(90);

      }

      //head.write(0);

      else(analogRead(sensePin)<twenin);

        {

          cont1.write(180);

          cont2.write(180);

          delay(500);

        }

      if(analogRead(sensePin)>tenin)

      {

        cont1.write(45);

        cont2.write(135);

      }

    }

     

    if you meant to edit it let me know because all it does right now is continually turn right :/Robert Peter Oakes

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Robert Peter Oakes
    0 Robert Peter Oakes over 11 years ago in reply to Former Member

    the logic I can understand but does not make sense.

     

    What is (In plane English, not code) the logic your trying to code.

     

    what is the purpose of the two variables

    int tenin = 230;

    int twenin = 100;

     

    and when reading the sensor I am assuming your getting an analog signal from something, what is the something as most sensors I have seen that measure distance are ultrasonic and return a pulse you have to time?

     

    what servo does what, I am assuming one is speed and one is steering, if not then what?

     

    Peter

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
  • Former Member
    0 Former Member over 11 years ago in reply to Robert Peter Oakes

    I am using an infrared distance sensor and i get numbers for it instead of a time. What i'm trying make it do is: Go forward until it sees something.

    It turns right and gets a reading.

    If it can go right, it goes right.

     

    If you can help me with that it would be great.

     

     

    Patrick

    • Cancel
    • Vote Up 0 Vote Down
    • Sign in to reply
    • Verify Answer
    • Cancel
element14 Community

element14 is the first online community specifically for engineers. Connect with your peers and get expert answers to your questions.

  • Members
  • Learn
  • Technologies
  • Challenges & Projects
  • Products
  • Store
  • About Us
  • Feedback & Support
  • FAQs
  • Terms of Use
  • Privacy Policy
  • Legal and Copyright Notices
  • Sitemap
  • Cookies

An Avnet Company © 2025 Premier Farnell Limited. All Rights Reserved.

Premier Farnell Ltd, registered in England and Wales (no 00876412), registered office: Farnell House, Forge Lane, Leeds LS12 2NE.

ICP 备案号 10220084.

Follow element14

  • X
  • Facebook
  • linkedin
  • YouTube