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
30.10.2015, 22:02
Beitrag #65
RE: Neo's Roboter
Beschreibe doch mal bitte was der Robby macht
1. ohne delay
2. mit delay
3. was er deiner Meinung nach tun soll.

Gruß, Klaus
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.10.2015, 22:28
Beitrag #66
RE: Neo's Roboter
Danke für eure Antworten,

Stimmt werde noch ein Delay nach der letzten Zeile einfügen.

Der robi soll für 2 Sekunden vorwerts fahren dann für 2 Sekunden stoppen dann 2 Sek. Rückwärts dann wieder von Anfang an.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.11.2015, 19:44 (Dieser Beitrag wurde zuletzt bearbeitet: 03.11.2015 19:44 von Neoneo23.)
Beitrag #67
RE: Neo's Roboter
Moin,

neuigkeiten von der ROBI- frontBig Grin

Problehm mit Taster (Bumper) ist gelöst: es hat vor der if Anweisung das: tasterstatus=digitalRead(taster); gefehlt. Klar der muss ja den pin einlesenRolleyes

Der Robimacht schon so zimmlich was er soll. Das problehm mit richtungswechsel besteht aber noch. Ihr müsst mir bitte hier nochmal unter die Arme greifen. (ja ich bin geduschtBig Grin).

Ich bin der Meinung, dass das überschreiben der links/rechts variabeln das problehm ist. Was mein Ihr??

Code:
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 taster=7;  //taster auf pin 7
int tasterstatus=0; //unter dieser Variable wird gespeichert, ob der Taster gedrückt ist oder nicht.
int rechts=1;
int links=2;
int richtung=links;

void setup()
{
pinMode(moli_a,OUTPUT); //moli_a ist ein ausgang
pinMode(moli_b,OUTPUT); //moli_b ist ein ausgang
pinMode(more_c,OUTPUT); //moli_c ist ein ausgang
pinMode(more_d,OUTPUT); //moli_d ist ein ausgang
pinMode(taster,INPUT); //taster ist ein eingang
}

void loop()
{
tasterstatus=digitalRead(taster);

if(tasterstatus==HIGH) //wenn taster 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(richtung==rechts) //abfrage nach der Variabelen 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
richtung=links; // jetzt wird die variabele auf links gestellt
}
if(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
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
04.11.2015, 07:15 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2015 07:16 von torsten_156.)
Beitrag #68
RE: Neo's Roboter
Hallo Neoneo23,
was würde bei deinem Code denn passieren, wenn die Variable auf rechts steht? Schau dir deinen Code mal genau an und überlege was dann passiert. Der Fehler liegt m.M.n. nicht in der Zuweisung der Variable. Die ist schon richtig so...
Gruß
Torsten
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.11.2015, 16:21 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2015 16:23 von Neoneo23.)
Beitrag #69
RE: Neo's Roboter
Hey, danke für Deine Anwort,

ich hab da einen Verdacht:

if(richtung==rechts) //abfrage nach der Variabelen 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
delay(2000) // das hat gefehlt
richtung=links; // jetzt wird die variabele auf links gestellt
}
if(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
delay(2000) // das hat gefehlt
richtung=rechts; //jetzt wird die variabele wieder auf rechts gestellt
}

bevor die Variabele geändert wird müsste noch ein delay rein??
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.11.2015, 21:08
Beitrag #70
RE: Neo's Roboter
Naja, um konsequent zu bleiben müsste an das Ende des letzten if-Blocks auch noch ein delay. Exclamation

Aber tu dir selbst einen Gefallen und ersetze alle Delays durch Abfragen von millis().
Am besten jetzt, da das Programm noch nicht so groß ist. Später, wenn das Programm wächst, wirst du froh sein die Delays verbannt zu haben weil das sonst irgendwann zu größeren Problemen führt.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.11.2015, 21:19 (Dieser Beitrag wurde zuletzt bearbeitet: 04.11.2015 21:20 von Neoneo23.)
Beitrag #71
Thumbs Up RE: Neo's Roboter
SmileSmileSmileSmileIdeaIdeaIdea

Es geht, hab noch ein fehler gefunden:

hab die letzte if Anweisung durch ein else ersetzt. Er soll nach rechts wenn im speicher links steht sonst soll er nach links und den speicher auf links stellen.

Bin richtig stolz Big Grin

danke an alle die mir bisher geholfen haben.

werde nun weitere teile einbauen und Euch damit auf die Nerven gehen Big Grin

@arduarne

dasmit den mills habe ich noch nicht verstandeUndecided. hab auch schon einiges in Bücher und hier im Forum gelesen aber leider immernoch nicht verstanden. Kannst Du mir das (für dummis) erklären?
Code:
if(Richtung==rechts) //abfrage nach der Variabelen 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
delay(5000);
Richtung=links; // jetzt wird die variabele auf links gestellt
}
else
{
//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
delay(5000);
Richtung=rechts; //jetzt wird die variabele wieder auf rechts gestellt
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.11.2015, 21:30
Beitrag #72
RE: Neo's Roboter
Ich hatte hier kürzlich einen Erklärungsversuch mit dem Titel Blink Without Delay - mal anders erklärt gepostet.

Vielleicht kommst du damit klar. Und auch die Schaltung mit den vier LEDs aufbauen. Dann sieht man was passiert wenn man an einer "Schraube im Programm" dreht.
Wenn was unklar ist, einfach nachfragen.

Gruß
Arne

ExclamationMit zunehmender Anzahl qualifizierter Informationen bei einer Problemstellung, erhöht sich zwangsläufig die Gefahr auf eine zielführende Antwort.Exclamation
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 788 27.07.2016 14:02
Letzter Beitrag: torsten_156
  Roboter-Bau Probleme blebbens 8 378 12.07.2016 07:35
Letzter Beitrag: Binatone
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 543 06.07.2016 14:59
Letzter Beitrag: Binatone
  SR-04 + UNO + 4WD Roboter, Abstandsfehler Marc2014 25 2.845 21.09.2014 21:42
Letzter Beitrag: Thorsten Pferdekämper
  Roboter J4Ng0 2 1.529 21.07.2013 15:49
Letzter Beitrag: Snake8811

Gehe zu:


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