RC auto (met 4 drukknoppen bestuurd)

Hallo allemaal

Ik ben Arjen en ik zit in mijn 6 jaar Industriële Wetenschappen. Ik moet hiervoor een GIP maken. (staat voor een geïntegreerde proef en is een jaaropdracht waarin onze kennis van en vaardigheden in verschillende vakken verwerkt zit en op de proef gesteld wordt) Ik heb gekozen voor het bespreken en programmeren van een telegeleide auto met arduino.

Ik ben reeds een hele tijd bezig geweest al hiermee maar nu zit ik vast.
Ik maak gebruik van een oude speelgoed RC auto van mij (Nikko RC – Off Road Hummer H2 – 103318C4 http://www.lernspielzeugshop.de/Nikko-R ... 2-103318C4).

Op het schema kan je mijn schakeling zien. Hierbij maak ik gebruik van een Ni-Cd batterij (kijk afbeeldingen).

Met de H-brug (L293D) zorg ik voor aan de ene motor (vooruit en achteruit) en de 2de motor die zorgt voor de sturing (links en rechts).

Het vreemde is echter wel wanneer ik met een multi meter de spanningen op meet merk ik op dat er van ongeveer 10V onbelast naar 4volt gaat belast wanneer we de wielen alleen aansluiten op vooruit en achteruit zoals bij de programmatie gedaan. Hoe komt dit?

Het vreemde is ook als ik de drukknop aanstuurt met de arduino er wel bijna alle spanning over de motor staat wat vreemd is want als ik dan meerdere drukknopen aanstuur in het programma dan daalt de spanning enorm. Waar heeft dit dan mee te maken?

Heeft iemand suggesties welke pins te gebruiken voor de 4 inputpinnen en een eventueel een ander programma want ik vermoed dat het ligt aan het programmeren en niet aan de batterij aangezien de motor wel draaide op volle toeren bij aansturen van 1 drukknopje in arduino programma? Of wat denken jullie?

Waar gaat het mis? Ligt het aan de progammatie? Of is de batterij te zwak voor gebruik te maken van deze H-brug? Kan iemand mij hierbij helpen?

Hieronder de programmatie (bepaalde delen uitgeschakeld voor te testen weliswaar)

int switchPin1 = 30; // switch input
int switchPin2 = 28; // switch input
int motor1Pin1 = 3; // pin 2 on L293D
int motor1Pin2 = 4; // pin 7 on L293D
int enablePin = 9; // pin 1 on L293D

int b1, b2;

void setup() {
// set the switch as an input:
pinMode(switchPin1, INPUT);
pinMode(switchPin2, INPUT);

// set all the other pins you're using as outputs:
pinMode(motor1Pin1, OUTPUT);
pinMode(motor1Pin2, OUTPUT);
pinMode(enablePin, OUTPUT);

// set enablePin high so that motor can turn on:
digitalWrite(enablePin, HIGH);
}

void loop() {

b1 = digitalRead(switchPin1);
// if the switch is high, motor will turn on one direction:
if (b1 == HIGH) {
digitalWrite(motor1Pin1, HIGH); // set pin 2 on L293D low
digitalWrite(motor1Pin2, LOW); // set pin 7 on L293D high
}
// if the switch is low, motor will turn in the opposite direction:
else {
b2 = digitalRead(switchPin2);
if (b2 == HIGH) {
digitalWrite(motor1Pin1, LOW); // set pin 2 on L293D low
digitalWrite(motor1Pin2, HIGH); // set pin 7 on L293D high
}
else {
digitalWrite(motor1Pin1, LOW); // set pin 2 on L293D low
digitalWrite(motor1Pin2, LOW); // set pin 7 on L293D high
}
}
/*
b2 = digitalRead(switchPin2);
if (b2 == HIGH) {
digitalWrite(enablePin, HIGH);
digitalWrite(motor1Pin1, HIGH); // set pin 2 on L293D low
digitalWrite(motor1Pin2, LOW); // set pin 7 on L293D high
}
// if the switch is low, motor will turn in the opposite direction:
else {
digitalWrite(enablePin, LOW);
// digitalWrite(motor1Pin1, LOW); // set pin 2 on L293D high
//digitalWrite(motor1Pin2, LOW); // set pin 7 on L293D low
}

/*

/*
// if the switch is high, motor will turn on one direction:
if (digitalRead(switchPin2) == HIGH) {
digitalWrite(motor1Pin1, HIGH); // set pin 2 on L293D low
digitalWrite(motor1Pin2, LOW); // set pin 7 on L293D high
}
// if the switch is low, motor will turn in the opposite direction:
else {
digitalWrite(motor1Pin1, LOW); // set pin 2 on L293D high
digitalWrite(motor1Pin2, LOW); // set pin 7 on L293D low
}
*/
}

Schermafbeelding 2015-03-17 om 21.10.01.zip (152 KB)

inwendige weerstand van de draaden en batterij?

arjen programma is anders dan schema.
dus eerst even huiswerk maken.
en doen wat ik gevraagd heb zoals een terugkoppeling op het stuur.