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:
/* DraaienLaat 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);}
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login