Besturing machine

Projecten die niet passen in bovenstaande onderwerpen
Berichten: 13
Geregistreerd: 23 Nov 2016, 10:12

Besturing machine

Berichtdoor Piet » 23 Nov 2016, 14:37

Hallo,
Graag zal ik wat informatie ontvangen betreft het programmeren van een arduino mega 2560 met arduino bt joystick free d.m.v. een HC-05.
Ik heb aangeschaft: Arduino mega 2560, bluetooth HC-05 en een aantal bipolaire dc motor aansturingen.
Mijn bedoeling is hiermee een zelf gemaakte machine aan te drijven met zes dc motoren.
Het volgende heb ik gedaan: de arduino bt joystick app gedownload, de HC-05 geïnstalleerd RXD-TX1 pin 18
TXD-RXD pin 19
VCC- 5 v
GND- GND
EN pin- pin 9
Een sketch gedownload n.l.
cpp code
#include <SoftwareSerial.h>

SoftwareSerial BTSerial (10, 11); // RX | TX

void setup ()
{
pinMode (9, OUTPUT); // Deze pin zal de HC-05 pen 34 (key pin) trekken HIGH om module te schakelen naar AT-modus
pinMode (13,OUTPUT);
digitalWrite (9, HIGH);
Serial.begin (9600);
Serial.println ( "Enter AT commando's:");
BTSerial.begin (38400); // HC-05 standaard snelheid in de AT-commando meer
delay(1000);

if (BTSerial.available ()){
Serial.write (BTSerial.read ());
}
BTSerial.write ("AT");
delay(1000);
if (BTSerial.available ()){
Serial.write (BTSerial.read ());
}
BTSerial.write ("AT+ORGL");
delay(1000);
if (BTSerial.available ()){
Serial.write (BTSerial.read ());
}
BTSerial.write ("AT+RESET");
delay(1000);
if (BTSerial.available ()){
Serial.write (BTSerial.read ());
}
BTSerial.write ("AT+ROLE=0");
delay(1000);
if (BTSerial.available ()){
Serial.write (BTSerial.read ());
}
BTSerial.write ("AT+POLAR=1,0");
delay(1000);
if (BTSerial.available ()){
Serial.write (BTSerial.read ());
}
BTSerial.write ("AT+RESET");
delay(1000);
if (BTSerial.available ()){
Serial.write (BTSerial.read ());
}
BTSerial.write ("AT+INIT");
delay(1000);
if (BTSerial.available ()){
Serial.write (BTSerial.read ());
}
BTSerial.write ("AT+INQ");
delay(1000);
if (BTSerial.available ()){
Serial.write (BTSerial.read ());

Het geval is nu dat er wel verbinding is tussen HC-05 en de arduino bt joystick.
Als ik de app opstart en de arduino dan knippert het lampje op de HC-05 snel.
Als ik verbinding maak dan begint het lampje twee seconden uit dan twee maal snel.
Op de tablet is te zien dat er contact is maar geen reactie als ik toetsen indruk
Maar nu verder…
Zoals jullie begrijpen ben ik nog een leek op het gebied van programmeren maar wil er graag meer over weten.
Moet er nog een andere sketch gedownload worden?
Wie kan mij verder helpen?
Bijvoorbaat dank.

Groeten Piet.

Advertisement

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

Re: Besturing machine

Berichtdoor shooter » 23 Nov 2016, 21:03

ik mis de loop{} ofwel ik zie alleen de setup die eenmaal draait en dan stopt het.
verder zul je iets moeten doen aan al die delays want dat gaat veel te lang duren.
paul deelen
shooter@home.nl

Berichten: 13
Geregistreerd: 23 Nov 2016, 10:12

Re: Besturing machine

Berichtdoor Piet » 23 Nov 2016, 23:20

Hallo Paul,
De loop heb ik zo verandert: void setup ()
{}

De delay(1000); moet ik die veranderen of wissen (allemaal of gedeeltelijk)

Alvast bedankt groeten Piet.

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

Re: Besturing machine

Berichtdoor shooter » 24 Nov 2016, 23:42

het hele programma zul je eerst moeten plaatsen, en waarom staan er allemaal delays in de setup?
de setup wordt maar 1 keer gedaan, dus of die serial available zin hebben ?
paul deelen
shooter@home.nl

Berichten: 13
Geregistreerd: 23 Nov 2016, 10:12

Re: Besturing machine

Berichtdoor Piet » 04 Dec 2016, 16:07

Het heeft even wat tijd gekost maar het volgende heb ik voor elkaar gekregen.
void setup ()

{
pinMode (9, OUTPUT); // Deze pin zal de HC-05 pen 34 (key pin) trekken HIGH om module te schakelen naar AT-modus
pinMode (13, OUTPUT);
pinMode (3, OUTPUT);
pinMode (5, OUTPUT);
pinMode (6, OUTPUT);
pinMode (7, OUTPUT);
digitalWrite (9, HIGH);
Serial.begin (9600);
Serial.println ( "Enter AT commando's:");
Serial1.begin (38400); // HC-05 standaard snelheid in de AT-commando meer
delayGrab();
Serial1.println ("AT+ORGL");
delayGrab();
Serial1.println ("AT+RESET");
delayGrab();
Serial1.println ("AT+ROLE=0");
delayGrab();
Serial1.println ("AT+POLAR=1,0");
delayGrab();
Serial1.println ("AT+RESET");
delayGrab();
Serial1.println ("AT+INIT");
delayGrab();
Serial1.println ("AT+INQ");/**/
delayGrab();
digitalWrite(13, 1);
}

void delayGrab(){
while (Serial1.available ()) {
Serial.write (Serial1.read ());
}
delay(700);
}

void loop() {
delay(100);

String reading = "";
// put your main code here, to run repeatedly:
while (Serial1.available ()) {
char inchar = Serial1.read();
reading = reading + inchar;
}

if(reading != ""){
Serial.println(reading);
if(reading == "#b=1#"){
digitalWrite(3, 1);
}else if(reading == "#b=2#"){
digitalWrite(5, 1);
}else if(reading == "#b=3#"){
digitalWrite (6, 1);
}else if(reading == "#b=4#"){
digitalWrite (7, 1);
}else {
digitalWrite (3, 0);
digitalWrite (5, 0);
digitalWrite (6, 0);
digitalWrite (7, 0);
}
}
// Houd het lezen van Arduino Serial Monitor en te versturen naar HC-05
while (Serial.available ()) {
Serial1.write (Serial.read ());
}

}

Tot zover draaien er twee motoren links en rechts om .
Als ik nog twee motoren wil aansluiten kan ik dan b.v. pinMode(2,OUTPUT); en digitalWrite (2,0); invoegen?

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

Re: Besturing machine

Berichtdoor shooter » 05 Dec 2016, 22:57

ja tuurlijk kan dat,
wel het advies is om variabele namen te gebruiken en HIGH of LOW.
paul deelen
shooter@home.nl

Terug naar Overige projecten

Wie is er online?

Gebruikers in dit forum: Geen geregistreerde gebruikers en 12 gasten