INFO: Dieses Forum nutzt Cookies...
Cookies sind für den Betrieb des Forums unverzichtbar. Mit der Nutzung des Forums erklärst Du dich damit einverstanden, dass wir Cookies verwenden.

Es wird in jedem Fall ein Cookie gesetzt um diesen Hinweis nicht mehr zu erhalten. Desweiteren setzen wir Google Adsense und Google Analytics ein.

Antwort schreiben 
 
Themabewertung:
  • 1 Bewertungen - 3 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Neo's Roboter
16.10.2015, 08:57 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2015 08:58 von Neoneo23.)
Beitrag #49
RE: Neo's Roboter
Guten Morgen,

danke für die Tip's.

Wenn alles gut geht werde ich das Ding mal heute Abend aufspielen und testen.
Werde dann mal ein Video einstellen.

Hab auch schon weiter geschrieben:

Ich hab das Umpol Relais rausgenommen und betreibe die Motoren jetzt über H- Brücken direkt an der Relaiskarte. der Setch ist dadurch umfangreicher geworden aber ich kann 3 weitere Relais einsparen (geht nicht um die Kosten).
Ich dachte lieber mit Software als mit Hardware lösen!

Mich würde mal Eure Meinung hierzu interessieren.

int moli_a=2; //Antrieb Links+ auf pin2
int moli_b=3; //Antrieb Links- auf pin3
int more_c=4; //Antrieb Rechts+ auf pin4
int more_d=5; //Antrieb Rechts- auf pin5


int bumper=6; //Bumper auf pin6
int bumperstatus=0; //Bumper gedrückt oder nicht



void setup()
{
pinMode(moli_a,OUTPUT); //moli_a ist ein ausgang
pinMode(moli_b,OUTPUT); //moli_b ist ein ausgang
pinMode(moli_c,OUTPUT); //moli_c ist ein ausgang
pinMode(moli_d,OUTPUT); //moli_d ist ein ausgang




pinMode(bumper,INPUT); //bumper ist ein eingang
}

void loop()
{


if(bumperstatus==HIGH) //wenn Bumper gedrückt
{
digitalWrite(moli_a,LOW); //Motor Links aus
digitalWrite(moli_b,LOW); //Motor Links aus
digitalWrite(more_c,LOW); //Motor rechts aus
digitalWrite(more_d,LOW); //Motor rechts aus
delay(500); //warten 0,5 sekunden

digitalWrite(moli_a,LOW); //Motor Links an
digitalWrite(moli_b,HIGH); //Motor Links an
digitalWrite(more_c,LOW); //Motor rechts an
digitalWrite(more_d,HIGH); //Motor rechts an
delay(500); //warten 0,5 sekunden

digitalWrite(moli_a,LOW); //Motor Links aus
digitalWrite(moli_b,LOW); //Motor Links aus
digitalWrite(more_c,LOW); //Motor rechts aus
digitalWrite(more_d,LOW); //Motor rechts aus
delay(500); //warten 0,5 sekunden




if(Aktuelle_Richtung==rechts) //abfrage nach der Variabelen Aktuelle_Richtung
{
//drehe nach links
digitalWrite(moli_a,LOW); //Motor Links aus
digitalWrite(moli_b,LOW); //Motor Links aus
digitalWrite(more_c,HIGH); //Motor rechts an
digitalWrite(more_d,LOW); //Motor rechts an
Aktuelle_Richtung=links; // jetzt wird die variabele auf links gestellt
}

if(Aktuelle_Richtung==links) // hier fragt er jetzt nach der Variabele und stellt fest, dass dieser auf links steht
{
//drehe nach rechts
digitalWrite(moli_a,HIGH); //Motor Links an
digitalWrite(moli_b,LOW); //Motor Links an
digitalWrite(more_c,LOW); //Motor rechts aus
digitalWrite(more_d,LOW); //Motor rechts aus
Aktuelle_Richtung=rechts; //jetzt wird die variabele wieder auf rechts gestellt
}
delay(500); //warten 0,5 sekunden

else
{
digitalWrite(moli_a,HIGH); //Motor Links an
digitalWrite(moli_b,LOW); //Motor Links an
digitalWrite(more_c,HIGH); //Motor rechts an
digitalWrite(more_d,LOW); //Motor rechts an
}
}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2015, 10:33
Beitrag #50
RE: Neo's Roboter
Hallo,
ich habe dir hier : http://www.arduinoforum.de/arduino-Threa...EGA?page=2
eine Antwort auf deine Frage geschrieben. Mach dir deswegen aber keinen Stress, für deine Steuerung ist es aktuell kein Problem, aber langfristig solltest du auf delays verzichten.

Ich werde mir deinen Sketch heute Abend mal in Ruhe anschauen und berichten.
Aktuell aber eine Bitte: Setze deine Sketche doch zukünftig in Code-Tags (#) rein, da werden diese lesbarer und die nehmen nicht so viel Platz auf der Seite ein. Zuvor evtl. auf "Vorschau" klicken.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2015, 12:58
Beitrag #51
RE: Neo's Roboter
Setze deine Sketche doch zukünftig in Code-Tags (#) rein

Ok mach ich, wenn Du mir sagst was das ist :-)
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2015, 14:08 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2015 14:08 von hotsystems.)
Beitrag #52
RE: Neo's Roboter
(16.10.2015 12:58)Neoneo23 schrieb:  Setze deine Sketche doch zukünftig in Code-Tags (#) rein

Ok mach ich, wenn Du mir sagst was das ist :-)

Wenn du direkt auf "Reply" drückst, hast du oberhalb des Eingabefensters die Schaltflächenleiste, darin befindet sich die Schaltfläche mit dem "#".

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2015, 14:29 (Dieser Beitrag wurde zuletzt bearbeitet: 16.10.2015 18:57 von Neoneo23.)
Beitrag #53
RE: Neo's Roboter
Code:
test
(16.10.2015 14:08)hotsystems schrieb:  
(16.10.2015 12:58)Neoneo23 schrieb:  Setze deine Sketche doch zukünftig in Code-Tags (#) rein

Ok mach ich, wenn Du mir sagst was das ist :-)

Wenn du direkt auf "Reply" drückst, hast du oberhalb des Eingabefensters die Schaltflächenleiste, darin befindet sich die Schaltfläche mit dem "#".

(14.10.2015 14:53)Neoneo23 schrieb:  Danke :-)

So jetzt nochmal alles zusammen:

int moli=2; //Antrieb Links auf pin2
int more=3; //Antrieb Rechts auf pin3
int zuruck=4; //Relais zum umschalten vor oder zurück Fahrt auf pin4
int bumper=5; //Bumper auf pin5
int bumperstatus=0; //Taster gedrückt oder nicht



void setup()
{
pinMode(moli,OUTPUT); //moli ist ein ausgang
pinMode(more,OUTPUT); //more ist ein ausgang
pinMode(zuruck,OUTPUT); //zuruck ist ein ausgang
pinMode(bumper,INPUT); //bumper ist ein eingang
}

void loop()
{


if(bumperstatus==HIGH) //wenn Bumper gedrückt
{
digitalWrite(moli,LOW); //Motor Links aus
digitalWrite(more,LOW); //Motor rechts aus
delay(500); //warten 0,5 sekunden
digitalWrite(zuruck,HIGH); //auf rückwerts schalten
delay(500); //warten 0,5 sekunden
digitalWrite(moli,HIGH); //Motor Links an
digitalWrite(more,HIGH); //Motor rechts an
delay(2000); //warten 1 sekunden
digitalWrite(moli,LOW); //Motor Links aus
digitalWrite(more,LOW); //Motor rechts aus
delay(500); //warten 0,5 sekunden
if(Aktuelle_Richtung==rechts) //abfrage nach der Variabelen Aktuelle_Richtung
{
digitalWrite(moli,LOW); //drehe nach links
digitalWrite(more,HIGH);
Aktuelle_Richtung=links; // jetzt wird die variabele auf links gestellt
}


{ <=====ich glaube diese klammer ist zuviel oder?


if(Aktuelle_Richtung==links) // hier fragt er jetzt nach der Variabele und stellt fest, dass dieser auf links (1) steht
{
digitalWrite(moli,HIGH);
digitalWrite(more,LOW); //drehe nach rechts
Aktuelle_Richtung=rechts; //jetzt wird die variabele wieder auf rechts gestellt (2)
}
delay(1000); //warten 1 sekunden
digitalWrite(zuruck,LOW); //auf vorwerts schalten
delay(500); //warten 0,5 sekunden
}
else
{
digitalWrite(moli,HIGH); //Motor Links an
digitalWrite(more,HIGH); //Motor rechts an
}
}

ich bekomme folgende Fehlermeldung:

Arduino: 1.6.5 (Windows 7), Platine: "Arduino Uno"

ROBI-1.ino: In function 'void loop()':
ROBI-1:28: error: 'Aktuelle_Richtung' was not declared in this scope
ROBI-1:28: error: 'rechts' was not declared in this scope
ROBI-1:32: error: 'links' was not declared in this scope
ROBI-1:34: error: 'Aktuelle_Richtung' was not declared in this scope
ROBI-1:34: error: 'links' was not declared in this scope
ROBI-1:38: error: 'rechts' was not declared in this scope
ROBI-1:43: error: expected '}' before 'else'
'Aktuelle_Richtung' was not declared in this scope

was ist den schon wieder falschHuh
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2015, 19:40
Beitrag #54
RE: Neo's Roboter
[int moli=2; //Antrieb Links auf pin2
int more=3; //Antrieb Rechts auf pin3
int zuruck=4; //Relais zum umschalten vor oder zurück Fahrt auf pin4
int bumper=5; //Bumper auf pin5
int bumperstatus=0; //Taster gedrückt oder nicht
int Aktuelle_Richtung=rechts;


void setup()
{
pinMode(moli,OUTPUT); //moli ist ein ausgang
pinMode(more,OUTPUT); //more ist ein ausgang
pinMode(zuruck,OUTPUT); //zuruck ist ein ausgang
pinMode(bumper,INPUT); //bumper ist ein eingang
}

void loop()
{


if(bumperstatus==HIGH) //wenn Bumper gedrückt
{
digitalWrite(moli,LOW); //Motor Links aus
digitalWrite(more,LOW); //Motor rechts aus
delay(500); //warten 0,5 sekunden
digitalWrite(zuruck,HIGH); //auf rückwerts schalten
delay(500); //warten 0,5 sekunden
digitalWrite(moli,HIGH); //Motor Links an
digitalWrite(more,HIGH); //Motor rechts an
delay(2000); //warten 1 sekunden
digitalWrite(moli,LOW); //Motor Links aus
digitalWrite(more,LOW); //Motor rechts aus
delay(500); //warten 0,5 sekunden
if(Aktuelle_Richtung=rechts) //abfrage nach der Variabelen Aktuelle_Richtung
{
digitalWrite(moli,LOW); //drehe nach links
digitalWrite(more,HIGH);
Aktuelle_Richtung==links; // jetzt wird die variabele auf links gestellt
}
if(Aktuelle_Richtung==links) // hier fragt er jetzt nach der Variabele und stellt fest, dass dieser auf links (1) steht
{
digitalWrite(moli,HIGH);
digitalWrite(more,LOW); //drehe nach rechts
Aktuelle_Richtung=rechts; //jetzt wird die variabele wieder auf rechts gestellt (2)
}
delay(1000); //warten 1 sekunden
digitalWrite(zuruck,LOW); //auf vorwerts schalten
delay(500); //warten 0,5 sekunden
}
else
{
digitalWrite(moli,HIGH); //Motor Links an
digitalWrite(more,HIGH); //Motor rechts an
}
} ]

jetzt kommt nur noch:

Arduino: 1.6.5 (Windows 7), Platine: "Arduino Uno"

ROBI-1:6: error: 'rechts' was not declared in this scope
ROBI-1.ino: In function 'void loop()':
ROBI-1:34: error: 'rechts' was not declared in this scope
ROBI-1:38: error: 'links' was not declared in this scope
ROBI-1:40: error: 'links' was not declared in this scope
ROBI-1:44: error: 'rechts' was not declared in this scope
'rechts' was not declared in this scope

[/code]
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2015, 19:46
Beitrag #55
RE: Neo's Roboter
PHP-Code:
int moli=2//Antrieb Links auf pin2
int more=3//Antrieb Rechts auf pin3
int zuruck=4//Relais zum umschalten vor oder zurück Fahrt auf pin4
int bumper=5//Bumper auf pin5
int bumperstatus=0//Taster gedrückt oder nicht
int rechts=1;
int links=2;
int Aktuelle_Richtung=rechts

Oben im ersten Abschnitt fehlen noch die Deklarationen für links und rechts.

Gruß, Klaus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
16.10.2015, 19:50
Beitrag #56
RE: Neo's Roboter
Hey, vielen Dank.

warum:

int rechts=1;
int links=2;

und warum 1 und 2

was bedeuten diese Zahlen?
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  kleiner Roboter blichi 24 784 27.07.2016 14:02
Letzter Beitrag: torsten_156
  Roboter-Bau Probleme blebbens 8 374 12.07.2016 07:35
Letzter Beitrag: Binatone
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 536 06.07.2016 14:59
Letzter Beitrag: Binatone
  SR-04 + UNO + 4WD Roboter, Abstandsfehler Marc2014 25 2.824 21.09.2014 21:42
Letzter Beitrag: Thorsten Pferdekämper
  Roboter J4Ng0 2 1.525 21.07.2013 15:49
Letzter Beitrag: Snake8811

Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste