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:
  • 2 Bewertungen - 3 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Programm läuft nicht richtig
30.06.2019, 21:56
Beitrag #17
RE: Programm läuft nicht richtig
(30.06.2019 13:51)CMeeep schrieb:  ....
Stimmt das Programm so?
Warum orientierst du dich nicht an den schon gegebenen Hinweisen ?

Z.B. auf diesen Fehler:
Code:
delay; 500;

oder diesen hier:
Code:
void loop ();
Was soll da passieren ?

Wenn du schon nicht auf die Fehler reagierst, was erwartest du noch ?
Teste deinen Sketch doch einfach mal und schreibe uns was dieser macht....oder was nicht.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
30.06.2019, 21:56 (Dieser Beitrag wurde zuletzt bearbeitet: 30.06.2019 21:57 von hotsystems.)
Beitrag #18
RE: Programm läuft nicht richtig
Sorry....Doppelpost.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.07.2019, 08:48
Beitrag #19
RE: Programm läuft nicht richtig
Danke, das ist hilfreich. kopieren werde ich nicht, aber ich kann einzelne Befehle übernehmen. Dann sollte es klappen
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
01.07.2019, 09:20
Beitrag #20
RE: Programm läuft nicht richtig
(01.07.2019 08:48)CMeeep schrieb:  Danke, das ist hilfreich. kopieren werde ich nicht, aber ich kann einzelne Befehle übernehmen. Dann sollte es klappen

Das ist schön.
Dann freuen wir uns auf deine funktionierende Rückmeldung.

Gruß Dieter

I2C = weniger ist mehr: weniger Kabel, mehr Probleme. Cool
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
03.07.2019, 16:50
Beitrag #21
RE: Programm läuft nicht richtig
Hallo, ich bin mittlerweile soweit, dass die 3 roten Leds leuchten wie sie sollen. Die Delays habe ich drin gelassen, weil ich einfach nicht weiss,durch was ich sie ersetzen soll. Die blauen Leds leuchten beide leider gar nicht. Nur die grünen leuchten, während die roten aus sind, zufällig durcheinander. was ist falsch? hier der Code:
Code:
int LEDrot1=1;
int LEDrot2=2;
int LEDrot3=3;
int LEDblau1=4;
int LEDblau2=5;
int LEDgruen1=10;
int LEDgruen2=11;
int taster1=6;
int taster2=7;
int taster3=8;
int taster4=9;
int tasterstatus1=0;
int tasterstatus2=0;
int tasterstatus3=0;
int tasterstatus4=0;



void setup() {
pinMode(LEDrot1, OUTPUT);
pinMode(LEDrot2, OUTPUT);
pinMode(LEDrot3, OUTPUT);
pinMode(LEDblau1, OUTPUT);
pinMode(LEDblau2, OUTPUT);
pinMode(LEDgruen1, OUTPUT);
pinMode(LEDgruen2, OUTPUT);
pinMode(taster1, INPUT);
pinMode(taster2, INPUT);
pinMode(taster3, INPUT);
pinMode(taster4, INPUT);
}




void loop()
{

  digitalWrite(LEDrot1, HIGH);
  delay(400);
  digitalWrite(LEDrot1, LOW);
  
  digitalWrite(LEDrot2, HIGH);
  delay(400);
  digitalWrite(LEDrot2, LOW);
  
  digitalWrite(LEDrot3, HIGH);
  delay(400);
  digitalWrite(LEDrot3, LOW);
  delay(100);
  
digitalWrite(LEDrot1, HIGH);
digitalWrite(LEDrot2, HIGH);
digitalWrite(LEDrot3, HIGH);
  
delay(1000);

digitalWrite(LEDrot1, LOW);
digitalWrite(LEDrot2, LOW);
digitalWrite(LEDrot3, LOW);

if (random(100) < 50)
   {digitalWrite(LEDblau1, HIGH);
              tasterstatus1=digitalRead(taster1);
              tasterstatus3=digitalRead(taster3);
             if (tasterstatus1 == HIGH)
               {digitalWrite(LEDblau1, LOW);
                digitalWrite(LEDgruen1, HIGH);
                delay(1500);
                digitalWrite(LEDgruen1, LOW);
                }
             else
               {digitalWrite(LEDgruen1, LOW);
               }
             if (tasterstatus3 == HIGH)
               {digitalWrite(LEDblau1, LOW);
                digitalWrite(LEDgruen2, HIGH);
                delay(1500);
                digitalWrite(LEDgruen2, LOW);
               }
             else
               {digitalWrite(LEDgruen2, LOW);
               }
       }    
            
            
            
        
        
      
        
   else
          {digitalWrite(LEDblau2, HIGH);
          tasterstatus2=digitalRead(taster2);
          tasterstatus4=digitalRead(taster4);
             if (tasterstatus2 == HIGH)
               {digitalWrite(LEDblau2, LOW);
                digitalWrite(LEDgruen1, HIGH);
                delay(1500);
                digitalWrite(LEDgruen1, LOW);
               }
             else
               {digitalWrite(LEDgruen1, LOW);
               }
            
                
                
             if (tasterstatus4 == HIGH)
               {digitalWrite(LEDblau2, LOW);
                digitalWrite(LEDgruen2, HIGH);
                delay(1500);
                digitalWrite(LEDgruen2, LOW);
               }
             else
               {digitalWrite(LEDgruen2, LOW);
               }
            
              
       }
   }
gruss meep
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.07.2019, 07:26
Beitrag #22
RE: Programm läuft nicht richtig
Hallo,

Jetzt machst du aber mit deinen delay's wieder einen Schritt rückwärts.

Während eines delay's bleibt der Arduino in so einer Art Warteschlange hängen.
Das ist so als ob du an einer roten Ampel anhalten und warten mußt.


Ein Programm arbeitet seriell von oben nach unten.

In dieser Zeit kann der nichts anderes machen außer warten.
Es kann da auch kein Taster abgefragt werden.

Du warst mit millis schon auf den richtigen Weg.
Schau dir doch mal das Video an.
Unser User "Der Hobbyelektroniker" macht sehr gute Anfängervideos.
In den von mir verlinken Video: " Der einfache Einstieg in Arduino & Co. 12: Das richtige Timing "
Ist doch genau die Lösung für dein Problem beschrieben.

Außerdem: Für deinen Lehrer kannst du meines erachtens die Quelle unbesorgt angeben.
Der René versucht das so zu erklähren, das man aktiv mitarbeiten soll.
Auch seine Unterlagen zum runterladen von den einzelen Lektionen,
sind eine Ausnahme, was du woanders nicht so findest.

Wenn dein Lehrer fragt, wie du auf die Lösung gekommen bist,
dann zeig ihm das Video und das Begleitmaterial zum selbststudium.
Er wird sehen, das es anstupser zum eigenen Nachdenken sind.
Also nicht einfach nur kopieren und fertig.

Ich kann mir Vorstellen, das es auch Lehrer gibt, die die Kurse vom René
im Unterricht besprechen.

Guß, Markus

Immer in Stress
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.07.2019, 16:35
Beitrag #23
RE: Programm läuft nicht richtig
(04.07.2019 07:26)Chopp schrieb:  Jetzt machst du aber mit deinen delay's wieder einen Schritt rückwärts.
Während eines delay's bleibt der Arduino in so einer Art Warteschlange hängen.
Das ist so als ob du an einer roten Ampel anhalten und warten mußt.

Ein Programm arbeitet seriell von oben nach unten.
In dieser Zeit kann der nichts anderes machen außer warten.
Es kann da auch kein Taster abgefragt werden.
Du warst mit millis schon auf den richtigen Weg.

Ich möchte ergänzen:
Du wollstest immer "die delays durch millis ersetzen".
Das geht aber so nicht. Man muss das Programm dan anders aufbauen.

Es ist wichtig, dass die Arbeitsschleife (bei Arduino heißt sie loop() ) möglichst unverzögert durchlaufen kann. Sie sollte tausendemal pro Sekunde komplett durchlaufen und wieder von vorne beginnen.
Haut man da delays rein, dann kann dein Arduino nicht mehr auf Veränderungen von Eingängen reagieren.

Die Eingänge fragt man üblicherweise am Anfang der Arbeitsschleife ab und wenn sich Zustände geändert haben, schreibt man ein "true" in eine Boolean-Variable (Steuerungstechniker nennen das "einen Merker setzen").
Um dann (z.B. als Reaktion auf die Eingangsänderung) einen Ausgang (z.B. LED) für eine Zeit einzuschalten, kann man dann die millis() Funktion benutzen:
Man schaltet den Ausgang auf "An" und merkt sich dabei den aktuellen Wert, den millis() liefert , in einer unsigned long Variablen.
Dann macht man eine if-Abfrage, ob der aktuelle Wert von millis() z.B. um 1500 größer ist als der gemerkte Stand beim Einschalten der LED.
Wenn ja, schaltet man die LED wieder aus.
Dann hat sie 1,5 Sekunden lang geleuchtet.
Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
04.07.2019, 21:58 (Dieser Beitrag wurde zuletzt bearbeitet: 04.07.2019 22:02 von Franz54.)
Beitrag #24
RE: Programm läuft nicht richtig
(04.07.2019 07:26)Chopp schrieb:  Hallo,

Jetzt machst du aber mit deinen delay's wieder einen Schritt rückwärts.

Während eines delay's bleibt der Arduino in so einer Art Warteschlange hängen.
Das ist so als ob du an einer roten Ampel anhalten und warten mußt.


Ein Programm arbeitet seriell von oben nach unten.

In dieser Zeit kann der nichts anderes machen außer warten.
Es kann da auch kein Taster abgefragt werden.

Du warst mit millis schon auf den richtigen Weg.
Schau dir doch mal das Video an.
Unser User "Der Hobbyelektroniker" macht sehr gute Anfängervideos.
In den von mir verlinken Video: " Der einfache Einstieg in Arduino & Co. 12: Das richtige Timing "
Ist doch genau die Lösung für dein Problem beschrieben.

Ja, die Lernhilfen von dem sind wirklich seeeehr gut. Da sollte man eigentlich nicht nur das Programm zur nutzung von Millis bekommen, sondern auch begreifen. Zumindest jeder der sich die Arbeit macht, zu versuchen es zu begreifen. Wer nur abschreibt, und dann immer noch nicht weiß was er da eigentlich macht, ist selber schuld. Das wäre mir einfach zu wenig. Ich habe mit diesen Youtube Videos eigentlich super schnell gelernt, und weiß in jeder Zeile meiner Programme was ich da mache. Und nur so macht es Sinn.

Ich habe jetzt in dieser Lektion hier auch wieder was neues entdeckt, was ich noch nicht genutzt hatte. Somit bin ich wieder ein Stück weiter. Big Grin

Franz

https://www.youtube.com/watch?v=Fnzn85oWM_Q
Hier was zum Thema Deutsche Politik Angry
Und hier zum Thema richtige Politik Big Grin
Webseite des Benutzers besuchen Alle Beiträge dieses Benutzers finden
Diese Nachricht in einer Antwort zitieren
Antwort schreiben 


Möglicherweise verwandte Themen...
Thema: Verfasser Antworten: Ansichten: Letzter Beitrag
  Empfänger funktioniert nicht mehr jgrothe 5 216 06.09.2019 18:57
Letzter Beitrag: Tommy56
  myport nicht gefunden? - Arduino und Visual Studio Stagneth.Alexander 4 335 04.09.2019 14:16
Letzter Beitrag: Stagneth.Alexander
  UDP send oder print ??? Ich kapiers nicht HarryB 5 231 03.09.2019 13:06
Letzter Beitrag: Tommy56
Wink Solar Roboter- Servo dreht nach Stopp nicht weiter Stagneth.Alexander 37 2.040 20.08.2019 14:15
Letzter Beitrag: geist4711
  Atmega 328 Sketchl läuft auf UNO3, alleine auf Breadboard nicht delay 9 667 02.08.2019 15:03
Letzter Beitrag: hotsystems
  Reaktionsspiel funktioniert nicht, wie es sollte... Stagneth.Alexander 27 1.307 21.07.2019 07:57
Letzter Beitrag: Stagneth.Alexander
  2 Sketche zusammenführen - korrelieren nicht Nicolai 11 1.154 24.05.2019 11:04
Letzter Beitrag: Nicolai
  Unterroutinenaufruf- wie gehts richtig? Telefonmann 12 1.047 04.05.2019 13:51
Letzter Beitrag: MicroBahner
  [includes]Wie gebe ich den Pfad der .h-Datei richtig an ManniP 6 557 28.04.2019 09:29
Letzter Beitrag: Fips
  Bedingung wird nicht wiederholt ausgeführt Lite 16 1.438 29.03.2019 05:11
Letzter Beitrag: Lite

Gehe zu:


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