Navigation

    • Register
    • Login
    • Search
    • OpenHardware.io
    • Categories
    • Recent
    • Tags
    • Popular
    1. Home
    2. seji
    • Continue chat with seji
    • Start new chat with seji
    • Flag Profile
    • Profile
    • Following
    • Followers
    • Blocks
    • Topics
    • Posts
    • Best
    • Groups

    seji

    @seji

    0
    Reputation
    1
    Posts
    222
    Profile views
    0
    Followers
    0
    Following
    Joined Last Online

    seji Follow

    Posts made by seji

    • How to combine arduino sketches?

      Help me! I want to combine these 2 arduino sketches:
      First sketch:
      /* Loop Met Sonar

      • Laat de Simple Walker II vooruit lopen. Als de Simple Walker
      • een obstakel tegenkomt dan gaat hij een stukje achteruit.
      • Gemaakt: November 2016
      • Door Simon Pauw, ZB45
      • www.SimpleWalker.com
        */

      /* Link de Servo- en Sonar (NewPing)-libraries.*/
      #include <Servo.h>
      #include <NewPing.h>

      /* Defnieer voorste servo */
      #define VOOR_SERVO_NEUTRALE_STAND 90
      #define VOOR_SERVO_PIN 9

      /* Defnieer achterste servo */
      #define ACHTER_SERVO_NEUTRALE_STAND 90
      #define ACHTER_SERVO_PIN 8

      /* Definieer de maximale uitslag van de servo's
      voor de loopbeweging. */
      #define MAX_SERVOUITSLAG 25

      /* Pauze tussen servostanen in milliseconde */
      #define PAUZE 100

      /* Maak servo-objecten aan */
      Servo voorServo, achterServo;

      /* Stel de sonar in. TRIG = 10, ECHO = 10, Maximale afstand = 200 */
      NewPing sonar(10, 16, 200);

      /* Setup: wordt uitgevoerd bij het opstarten van de Simple Walker. */
      void setup() {
      // Initialiseer de servo's.
      voorServo.attach(VOOR_SERVO_PIN);
      achterServo.attach(ACHTER_SERVO_PIN);

      // Zet de servo's in de neutrale positie (in het midden).
      voorServo.write(VOOR_SERVO_NEUTRALE_STAND);
      achterServo.write(ACHTER_SERVO_NEUTRALE_STAND);

      delay(1000);
      }

      /* Loop: wordt herhaald tot de Simple Walker uit wordt gezet. */
      void loop() {
      // Meet de afstand
      int afstand = meetAfstand();

      // Voor looppatroon uit.
      if (afstand > 15)
      {
      // Als de afstand groter is dan 15 cm, loop vooruit.
      voorServo.write(VOOR_SERVO_NEUTRALE_STAND + MAX_SERVOUITSLAG);
      delay(PAUZE);
      achterServo.write( ACHTER_SERVO_NEUTRALE_STAND - MAX_SERVOUITSLAG);
      delay(PAUZE);
      voorServo.write(VOOR_SERVO_NEUTRALE_STAND - MAX_SERVOUITSLAG);
      delay(PAUZE);
      achterServo.write( ACHTER_SERVO_NEUTRALE_STAND + MAX_SERVOUITSLAG);
      delay(PAUZE);
      } else //afstand kleiner dan 15
      {
      // Als de afstand kleiner of gelijk is aan 15 cm, loop achteruit.
      voorServo.write(VOOR_SERVO_NEUTRALE_STAND - MAX_SERVOUITSLAG);
      delay(PAUZE);
      achterServo.write(ACHTER_SERVO_NEUTRALE_STAND - MAX_SERVOUITSLAG);
      delay(PAUZE);
      voorServo.write(VOOR_SERVO_NEUTRALE_STAND + MAX_SERVOUITSLAG);
      delay(PAUZE);
      achterServo.write(ACHTER_SERVO_NEUTRALE_STAND + MAX_SERVOUITSLAG);
      delay(PAUZE);
      }

      }

      /* Deze functie meet de afstand. */
      int meetAfstand() {
      // Meet de afstand
      int waarde = sonar.ping_cm();

      // Als er bij het meten iets misgaat is de meetwaarde 0
      // In dit geval gaan we ervan uit dat de afstand 200cm is.
      if (waarde == 0) waarde = 200;
      return waarde;
      }

      Second sketch:
      /* Draaien

      Laat de Simple Walker II naar rechts draaien.

      Gemaakt: November 2016
      Door Simon Pauw, ZB45
      www.SimpleWalker.com
      */

      /* Link de Servo-library.*/
      #include <Servo.h>

      /* Defnieer voorste servo */
      #define VOOR_SERVO_NEUTRALE_STAND 90
      #define VOOR_SERVO_PIN 9

      /* Defnieer achterste servo */
      #define ACHTER_SERVO_NEUTRALE_STAND 90
      #define ACHTER_SERVO_PIN 8

      /* Definieer de maximale uitslag van de servo's
      voor de loopbeweging. */
      #define MAX_SERVOUITSLAG 25

      /* Definieer de draaihoek (hoe hoger dit getal, hoe

      • scherper de bocht).
        */
        #define DRAAIHOEK 50

      /* Maak servo-objecten aan */
      Servo voorServo, achterServo;

      /* Setup: wordt uitgevoerd bij het opstarten van de Simple Walker. */
      void setup() {
      // Initialiseer de servo's.
      voorServo.attach(VOOR_SERVO_PIN);
      achterServo.attach(ACHTER_SERVO_PIN);

      // Zet de servo's in de neutrale positie (in het midden).
      voorServo.write(VOOR_SERVO_NEUTRALE_STAND);
      achterServo.write(ACHTER_SERVO_NEUTRALE_STAND);

      delay(1000);
      }

      /* Loop: wordt herhaald tot de Simple Walker uit wordt gezet. */
      void loop() {

      // Voor looppatroon uit.

      // Stap 1: /-/:
      voorServo.write(VOOR_SERVO_NEUTRALE_STAND + MAX_SERVOUITSLAG + DRAAIHOEK);
      delay(100);

      // Stap 2: -/:
      achterServo.write( ACHTER_SERVO_NEUTRALE_STAND - MAX_SERVOUITSLAG);
      delay(100);

      // Stap 3: -|:
      voorServo.write(VOOR_SERVO_NEUTRALE_STAND - MAX_SERVOUITSLAG + DRAAIHOEK);
      delay(100);

      // Stap 4: /-|:
      achterServo.write( ACHTER_SERVO_NEUTRALE_STAND + MAX_SERVOUITSLAG);
      delay(100);

      }

      posted in Troubleshooting
      seji