dc motor en servo tegelijk laten werken. hoe?

algemene C code
Berichten: 8
Geregistreerd: 02 Mrt 2017, 15:27

Re: dc motor en servo tegelijk laten werken. hoe?

Berichtdoor Jelleman » 12 Sep 2017, 10:51

nicoverduin schreef:Ik stelde bewust de vraag wat een void is, omdat ik de indruk kreeg dat de TS hier niet mee bekend was. Het resultaat terug viel wat tegen terwijl er toch een uitgebreide reference is : https://www.arduino.cc/en/Reference/FunctionDeclaration
Tja je kan wel honderden tutorials maken, maar als je ze niet bekijkt ......


echt uitleg over 'void' wordt er niet gegeven in jouw, alleen dat de variabelen eenmalig geïnitialiseerd worden onder 'void' waarna de functie begint. er wordt een mooie duidelijke uitleg gegeven over een functie. Iets wat voor mij ook nieuw is dus interessant is.

Jelle

Advertisement

Gebruikers-avatar
Berichten: 2655
Geregistreerd: 06 Aug 2016, 01:03

Re: dc motor en servo tegelijk laten werken. hoe?

Berichtdoor Koepel » 12 Sep 2017, 12:11


Berichten: 8
Geregistreerd: 02 Mrt 2017, 15:27

Re: dc motor en servo tegelijk laten werken. hoe?

Berichtdoor Jelleman » 12 Sep 2017, 15:24

inderdaad, void geeft niks terug, en als een functie niks terug geeft gaat het programma ook weer naar void loop().
bedankt voor je uitleg over het 'millis' gebeuren, de logica hierachter staat me helder voor ogen. Ik heb in ieder geval mijn robot autootje aan de praat gekregen met een ultrasoon en 'if, else' structuur met veel herhalingen.

volgende uitdaging is om meer hardware aan het auto robot te hangen waardoor ik wel iets zal moeten gebruiken als 'milli's functies, classes e.d.

anyway zo ziet mijn code er nu. :oops:

#include <Wire.h>
#include <Adafruit_MotorShield.h>
#include "utility/Adafruit_MS_PWMServoDriver.h"
#include <NewPing.h>
#define trigger_Pin 11
#define echo_Pin 12
#define max_Afstand 200
#define led_Een 8
#define led_Twee 7

Adafruit_MotorShield AFMS = Adafruit_MotorShield();
Adafruit_DCMotor *DC_motor_een = AFMS.getMotor(1);
Adafruit_DCMotor *DC_motor_twee = AFMS.getMotor(2);
Adafruit_DCMotor *DC_motor_drie = AFMS.getMotor(3);
Adafruit_DCMotor *DC_motor_vier = AFMS.getMotor(4);

NewPing sonar(trigger_Pin, echo_Pin, max_Afstand);

void setup() {
Serial.begin(9600);
AFMS.begin();
pinMode(led_Een, OUTPUT);
pinMode(led_Twee, OUTPUT);
}

void loop()

{
delay(50);
unsigned int uS = sonar.ping_cm();
if (uS < 10)
{
Serial.println("Afstand kleinder dan 10 cm motor draaien tegengesteld!");
digitalWrite(led_Een, HIGH); //led rood aan
digitalWrite(led_Twee,LOW);
DC_motor_een->run(FORWARD);
DC_motor_een->setSpeed(150);
DC_motor_twee->run(BACKWARD);
DC_motor_twee->setSpeed(150);
DC_motor_drie->run(FORWARD);
DC_motor_drie->setSpeed(150);
DC_motor_vier->run(BACKWARD);
DC_motor_vier->setSpeed(150);
}
else
{
Serial.println("Afstand groter dan 10 cm beide motoren vooruit!");
digitalWrite(led_Een, LOW);
digitalWrite(led_Twee, HIGH); //led groen aan
DC_motor_een->run(FORWARD);
DC_motor_een->setSpeed(150);
DC_motor_twee->run(FORWARD);
DC_motor_twee->setSpeed(150);
DC_motor_drie->run(FORWARD);
DC_motor_drie->setSpeed(150);
DC_motor_vier->run(FORWARD);
DC_motor_vier->setSpeed(150);

}
}

Berichten: 4064
Geregistreerd: 16 Okt 2013, 14:31
Woonplaats: s hertogenbosch

Re: dc motor en servo tegelijk laten werken. hoe?

Berichtdoor shooter » 12 Sep 2017, 19:25

ik zou sonar.ping uitbreiden met een maximale tijd, want anders blijft het wachten in die functie.
ik weet dat er een default is voor die tijd, maar die kun je dus aanpassen.
paul deelen
shooter@home.nl

Vorige

Terug naar C code

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 9 gasten