Wie kann ich den Fehler bei diesem Arduino LED Spiel Projekt beheben?

2 Antworten

//zeigt anhand led leiste wie gut man war
digitalWrite(Led1Pin,HIGH);
delay(500);
if (pause < 800)
{
digitalWrite(Led2Pin, HIGH);
delay(500);
}
if (pause < 600)
{
digitalWrite(Led3Pin, HIGH);
delay(500);
}
if (pause < 250)
{
digitalWrite(Led4Pin, HIGH);
delay(500);
}
if (pause < 100)
{
digitalWrite(Led5Pin, HIGH);
delay(500);
}
delay(3000);

neuesSpiel();
}
}

TasterStatus = digitalRead(Taster);

}

hilfeeeeee

0

Passiert überhaupt nichts? Hilft es, HIGH und LOW beim Taster zu vertauschen?

Wieso funktioniert dieser zufallsgenerator bei Arduino nicht?

Hallo zusammen!

Ich möchte bei einer Rennautobahn eine Ampel bauen. Um es spannender zu gestalten möchte ich, das die letzte LED nach einer zufällig gewählten Zeit (zwischen 1 und 4 sekunden) . Zum steuern verwende ich einen Arduino Mega und zum programmieren das Arduino Programm. das nachfolgende Programm haben ich schon in C# getestet und dort funktioniert es, nur leider nicht im Arduino Programm.

const int intRot13 = 1;
const int intRot12 = 2;
const int intRot11 = 3;
const int intRot10 = 4;
const int intRot9 = 5;

void setup()
{
  pinMode(intRot13, OUTPUT);
  pinMode(intRot12, OUTPUT);
  pinMode(intRot11, OUTPUT);
  pinMode(intRot10, OUTPUT);
  pinMode(intRot9, OUTPUT);
}

void Zufall(byte bytAmpel)
{
 int Zahl1 = 0;
 random Rnd = new random();
 Zahl1 = Rnd.Next(1000, 4000)
}

void loop()
{
  digitalWrite(1, HIGH);
  delay(1500);
  digitalWrite(2, HIGH);
  delay(1500);
  digitalWrite(3, HIGH);
  delay(1500);
  digitalWrite(4, HIGH);
  delay(1500);
  digitalWrite(5, HIGH);
  delay(Zufall());
  delay (3000);
  digitalWrite(1, LOW);
  digitalWrite(2, LOW);
  digitalWrite(3, LOW);
  digitalWrite(4, LOW);
  digitalWrite(5, LOW);
}

Wäre für jede Hilfe dankbar!

...zur Frage

Was ist falsch an meinem Arduino Programm?

Meine Arduino Rolladensteuerung soll bei einmaligem klicken auf den taster den rolladen ganz herunter fahren danach kann man ihn über den gleichen Taster wieder hochfahren. Nun das meiner Meinung nach komplizierte: Während der Rolladen auf dem weg nach oben oder unten ist soll er stehen bleiben und bei weiterem klicken wieder weiterfahren allerdings in die entgegengesetzte Richtung. Wie würdet ihr das Programmieren bzw was ist an meinem Programm (siehe unten) Falsch? Ich weis was mit den millis() nicht stimmt aber wie könnte man das lösen? bitte um schnelle Antwort :)

Hier das Programm :

int Taster = 0;

int R1 = 1;

int R2 = 2;

int Status = 0;

int Unterwegs = 0;

int gestoppt = 0;

int R1_gestoppt = 0;

int R2_gestoppt = 1;

 int T1 = 0;

 int T2 = 0;

 int T3 = 0;

 int T4 = 0;

void setup() {

 pinMode(Taster, INPUT);

 pinMode(R1, OUTPUT);

 pinMode(R2, OUTPUT);

 digitalWrite(R1, HIGH);

 Unterwegs = 1;

 delay(3000);

 Unterwegs = 0;

 digitalWrite(R1, LOW);

 Status = 1;

 Serial.begin(9600);

}

void loop() {

Serial.print("Taster:"); Serial.println(digitalRead(Taster));

Serial.print("Status:"); Serial.println(Status);

Serial.print("Unterwegs:"); Serial.println(Unterwegs);

Serial.print("Gestoppt:"); Serial.println(gestoppt);

Serial.print("R1 gestoppt:"); Serial.println(R1_gestoppt);

Serial.print("R2 gestoppt:"); Serial.println(R2_gestoppt);

   if (digitalRead(R1) == HIGH) {

 digitalWrite(R2, LOW);} else {

 if (digitalRead(R2) == HIGH){

 digitalWrite(R1, LOW);}}

if (digitalRead(Taster) == HIGH) {

  if (Status == 1) {

  digitalWrite(R2, HIGH);

  R1_gestoppt = 0;

  R2_gestoppt = 0;

  Unterwegs = 1;

  T1 = millis();

  if (digitalRead(R2) == HIGH && (millis()-T1) >=3000) {

   Unterwegs = 0;

   digitalWrite(R2, LOW);

   Status++;}} else {

     if (Status == 2) {

   digitalWrite(R1, HIGH);

   R1_gestoppt = 0;

   R2_gestoppt = 0;

   Unterwegs = 1;

   T2 = millis();

   if (digitalRead(R1) == HIGH && (millis()-T2) >=3000) {

   Unterwegs = 0;

   digitalWrite(R1, LOW);

   Status = 1;}}}}

   

   if (Unterwegs == 1) {

   if (digitalRead(Taster) == HIGH) {

   if (digitalRead(R1) == HIGH) {

       digitalWrite(R1 ,LOW);

       R1_gestoppt = 1;

       R2_gestoppt = 0;

       gestoppt = 1;} else {

   if(digitalRead(R2) == HIGH) {

       digitalWrite(R2, LOW);

       R1_gestoppt = 0;

       R2_gestoppt = 1;

       gestoppt = 1;}}

  if (gestoppt == 1) {

  if (digitalRead(Taster) == HIGH) {

  if (R1_gestoppt == 1) {

      digitalWrite(R1, LOW);

      digitalWrite(R2, HIGH);

      R1_gestoppt = 0;

      R2_gestoppt = 0;

      T3 = millis();

      if (digitalRead(R2) == HIGH && (millis()-T3) >=3000) {

      digitalWrite(R2, LOW);

  }} else {

  if (R2_gestoppt == 1) {

      digitalWrite(R2, LOW);

      digitalWrite(R1, HIGH);

      R2_gestoppt = 0;

      R1_gestoppt = 0;

      T4 = millis();

      if (digitalRead(R1) == HIGH && (millis()-T4) >=3000) {

      digitalWrite(R1, LOW);}}}}}}}}

                     

                     

    

...zur Frage

Warum stoppt der Arduino Infrarotempfänger plötzlich mit der Datenausgabe?

Hallo liebe Community, Vor kurzem habe ich eine Schaltung zur Steuerung 2 Motoren mithilfe von Infrarot aufgebaut und einen Code geschrieben.

Vom Prinzip her funktioniert der Code und die Schaltung. Nun kommt es aber zu folgendem Problem: Immer wenn ich per Fernbedienung den Code sende, er soll einen Motor vorwärts und einen Rückwärts laufen lassen, dann macht er das, nimmt aber keine weiteren Signale mehr auf und ich muss das Board zurücksetzen...

Die Motoren Simmuliere ich mit jeweils 2 LEDs (Eine vorwärts, eine Rückwärts).

Kann mir jemand helfen?

Hier der Code :

#include <IRremote.h>;

const int RFENGINE = 5;

const int RBENGINE = 10;

const int LFENGINE = 6;

const int LBENGINE = 9;

const int RECV_PIN = 3;

IRrecv(RECV_PIN);

decode_results results;

void setup()

{

pinMode(RFENGINE,OUTPUT);

pinMode(RBENGINE,OUTPUT);

pinMode(LFENGINE,OUTPUT);

pinMode(LBENGINE,OUTPUT);

irrecv.enableIRIn();

Serial.begin(9600);

}

void startEngine(int leftf,int leftb, int rightf, int rightb)

{

analogWrite(LFENGINE,leftf);

analogWrite(LBENGINE,leftb);

analogWrite(RFENGINE,rightf);

analogWrite(RBENGINE,rightb);

}

void loop()

{

if(irrecv.decode(&results))

{

  Serial.println(results.value,DEC);

  if(results.value == 16718055)   //Vorwärts

  {

     startEngine(100,0,100,0);

   }

   else if(results.value == 16726215)  //Rechtsum

   {

     startEngine(100,0,0,100);

    }

    else if(results.value == 16716015)  //Linksum

    {

      startEngine(0,100,100,0);

    }

      else if(results.value == 16730805) //Zurück

    {

       startEngine(0,100,0,100);

     }

    else

      Serial.println("UNBEKANNTER BEFEHL");

    irrecv.resume();

    }

}

Lg Niko

...zur Frage

Arduino Nano mit Bluetooth HC-05?

Hallo, Also ich versuche gerade mit dem Arduino Nano und dem Bluetooth Modul HC-05 eine Led( später Relais und eine Lampe) anzusteuern. Ich habe auch schon einen entsprechenden Code. Kann mich auch mit dem Handy verbinden. Wenn ich jetzt bei der App( funktioniert bei ziemlich jeder App) den Power Button oder ein Button drücke leuchtet zwar die RX Led vom Arduino kurz aber die Led schaltet nicht. Was könnte hier falsch sein?

        #include <SoftwareSerial.h>

// Define the data transmit/receive pins in Arduino


int state = 0;
#define Led1 A6



SoftwareSerial mySerial(10, 11); // RX, TX


void setup() {
pinMode(Led1, OUTPUT);
  digitalWrite(Led1, LOW);

Serial.begin(38400); // For the IDE monitor Tools -> Serial Monitor


// Any code that you want to run once....

}

void loop() {

if(Serial.available() > 0){ // Checks whether data is comming from the serial port
    state = Serial.read(); // Reads the data from the serial port
 }
 if (state == '1') {
  digitalWrite(Led1, HIGH); // Turn LED ON
  Serial.println("LED: ON"); // Send back, to the phone, the String "LED: ON"
  state = 0;
 }
 else if (state == '0') {
  digitalWrite(Led1, LOW);
  Serial.println("LED: OFF");;
  state = 0;
 } 
}   
...zur Frage

Was möchtest Du wissen?