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:
  • 0 Bewertungen - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
kleiner Roboter
22.07.2016, 18:58
Beitrag #1
kleiner Roboter
Hallo......
ich versuche seit einiger Zeit einen kleinen Roboter zu bauen mit dem Arduino
er soll 4 IR-Sesoren haben , einen Motor , und rechts / links blinken können.
leider scheitert mein Projekt schon bei der Programierung des Blinkens. Beim Empfang an Sensor linksVorn blinkt meine LED links soweit OK Wenn nun der Sensor VornRechts ein Signal empfängt sollte LED rechts blinken .....aber hier geschiet nichts....... Frage ist nun kann Arduino nur eine Aufgabe erledigen oder können meine Sensoren unabhängig voneinander arbeiten........
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.07.2016, 19:08
Beitrag #2
RE: kleiner Roboter
Das hängt zu 99,9 % von Deiner Programmierung ab.

Die 0,1 % der Fälle sind gegeben, wenn man improvisieren musste, weil die Pins nicht reichen Big Grin


Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
22.07.2016, 19:19
Beitrag #3
RE: kleiner Roboter
(22.07.2016 19:08)Binatone schrieb:  Das hängt zu 99,9 % von Deiner Programmierung ab.

Die 0,1 % der Fälle sind gegeben, wenn man improvisieren musste, weil die Pins nicht reichen Big Grin


Binatone

Danke für die Antwort dann muss ich mein Programm nochmal überdenken wenn es generell möglich ist dass die Sensoren einzeln abzufragen sind ..........das bringt mich schon weiter .....danke
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.07.2016, 00:02
Beitrag #4
RE: kleiner Roboter
(22.07.2016 18:58)blichi schrieb:  Frage ist nun kann Arduino nur eine Aufgabe erledigen oder können meine Sensoren unabhängig voneinander arbeiten........

Es ist schon so, dass der Aruino nur eine Sache zur Zeit machen kann, aber das sehr schnell hinter einander. Wenn du keine großen Delays eingebaut hast.
Das Blinken der Leds solltest du dann nie mit Delays aufbauen, denn dadurch wird eine weitere Funktion verzögert ausgeführt. Dazu empfiehlt sich "BlinkWithoutDelays", da läuft der übrige Sketch auch beim Blinken weiter.
Deine weiteren Sensoren werden dann auch abgefragt bzw. berücksichtigt.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.07.2016, 10:46
Beitrag #5
RE: kleiner Roboter
Fazit
Im Setup zunächst die Aufgaben der Pins festlegen (Input,Output, PWM..)

Dann im Loop:
Zuerst alle Eingänge (Inputs) einlesen.
Dann mit mehreren IF then Else entscheiden, was gemacht werden soll, und dies in einer Variablen ableg n.
Am Ende dann die Motoren entsprechend schalten.
Delays bei sowas am besten ganz aus dem Wortschatz streichen!
Wie Hotsystems schreibt musst Du Dich mit BlinkWithoutDelays auseinandersetzen.

Binatone
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.07.2016, 20:16
Beitrag #6
RE: kleiner Roboter
(23.07.2016 10:46)Binatone schrieb:  Fazit
Im Setup zunächst die Aufgaben der Pins festlegen (Input,Output, PWM..)

Dann im Loop:
Zuerst alle Eingänge (Inputs) einlesen.
Dann mit mehreren IF then Else entscheiden, was gemacht werden soll, und dies in einer Variablen ableg n.
Am Ende dann die Motoren entsprechend schalten.
Delays bei sowas am besten ganz aus dem Wortschatz streichen!
Wie Hotsystems schreibt musst Du Dich mit BlinkWithoutDelays auseinandersetzen.

Binatone

vielen dank für die Unterstützung ich kann leider nicht immer gleich antworten da ich noch schularbeiten machen muss es funktioniert immer noch nicht ich werde mal versuchen ohne delay ein programm zu schreiben danke nochmals für die unterstützung montag habe ich mehr zeit..............
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
23.07.2016, 21:01
Beitrag #7
RE: kleiner Roboter
Dann solltest du uns einfach mal deinen aktuellen Sketch zeigen.
Evtl. lässt sich dieser ja anpassen.

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
25.07.2016, 06:10 (Dieser Beitrag wurde zuletzt bearbeitet: 25.07.2016 06:24 von blichi.)
Beitrag #8
RE: kleiner Roboter
ich habe jetzt das programm ohne delay neu geschrieben aber leider bin ich nicht wirklich weiter gekommen am Pin 8 leuchtet die LED garnicht und am PIN 2 leuchtet die LED wenn sowohl das Signal vom Sensor Links oder Rechts kommt ........jetzt bin ich wirklich ratlos und bitte um Unterstützung.....

#include <IRremote.h>
#include <Servo.h>

const int WarnLEDRechtsPin = 2; // LED Recht vorn wird geschaltet wenn Sensor rechts ein Hindernis erkennt
const int SensorRechts = 0; // Sensor rechts vorn gesteckt an Arduino Pin A0
const int WarnLEDLinksPin = 8; // LED links vorn wird geschaltet wenn Sensor links ein Hindernis erkennt
const int SensorLinks = 16; // Sensor links vorn gesteckt an Arduino Pin A2
int signal2;
int signal1;

unsigned long time;
int phase = 1; // Phase wird festgelegt
unsigned long interval1 = 400;
unsigned long interval2 = 400;
unsigned long interval3 = 400;
unsigned long interval4 = 400;
unsigned long previousMillis = 0;

void setup() {

Serial.begin (9600);

pinMode (SensorRechts,INPUT);
pinMode (WarnLEDRechtsPin,OUTPUT);
pinMode (SensorLinks,INPUT);
pinMode (WarnLEDLinksPin,OUTPUT);

}
// ******** *Unterprogramme für die Sensoren ****************

void SignalRechts(){
signal2=analogRead(SensorRechts);
Serial.println(signal1);

if ( signal1 < 100) {
Blinkrechts(); }
else
{digitalWrite(WarnLEDRechtsPin,LOW);}
}

void SignalLinks(){
signal1=analogRead(SensorLinks);
Serial.println(signal2);

if ( signal2 < 100) {
Blinklinks(); }
else
{digitalWrite(WarnLEDLinksPin,LOW);}
}

//**************Unterprogramm für die Blinker *******************

void Blinkrechts() {

if ((phase == 1) and (millis() - previousMillis > interval1)) {
previousMillis = millis();
phase = 2;
}

if ((phase == 2) and (millis() - previousMillis > interval2)) {
previousMillis = millis();
phase = 1;
}

if (phase == 1) {
if (digitalRead(SensorRechts)==HIGH)
digitalWrite(WarnLEDRechtsPin,HIGH);}


if (phase == 2) {
if (digitalRead(SensorRechts)==HIGH)
digitalWrite(WarnLEDRechtsPin,LOW);}
}

void Blinklinks() {


if ((phase == 3) and (millis() - previousMillis > interval3)) {
previousMillis = millis();
phase = 4;
}

if ((phase == 4) and (millis() - previousMillis > interval4)) {
previousMillis = millis();
phase = 3;
}

if (phase == 3) {
if (digitalRead(SensorLinks)==HIGH)
digitalWrite(WarnLEDLinksPin,HIGH);}

if (phase == 4) {
if (digitalRead(SensorLinks)==HIGH)
digitalWrite(WarnLEDLinksPin,LOW);}


}


void loop(){

SignalRechts();
SignalLinks();

}
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Roboter-Bau Probleme blebbens 8 381 12.07.2016 07:35
Letzter Beitrag: Binatone
  Selbstfahrender Roboter Programm änderung hilfe ? arekklone 11 549 06.07.2016 14:59
Letzter Beitrag: Binatone
  Neo's Roboter Neoneo23 74 5.918 11.11.2015 21:18
Letzter Beitrag: Neoneo23
  SR-04 + UNO + 4WD Roboter, Abstandsfehler Marc2014 25 2.848 21.09.2014 21:42
Letzter Beitrag: Thorsten Pferdekämper
  Roboter J4Ng0 2 1.531 21.07.2013 15:49
Letzter Beitrag: Snake8811

Gehe zu:


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