If Else Arduino DS3231?

1 Antwort

Arduino Schrittmotor?

Hallo! Ich bin gerade an meinem Projekt automatische Hüherklappe.

Ich habe mir dafür ein Arduino Set besorgt. Der Fotowiderstand soll am Ende dem Schrittmotor sagen, wann er die Tür zu machen soll. Ich bin jetzt schon so weit, dass es wenn es dunkel wird der Schrittmotor sich anfängt zu drehen und anders herum wenn es hell wird. Mein Problem ist aber, dass der Motor nicht mehr aufhören möchte sich zu drehen. Er soll also nach einer bestimmten Anzahl an Drehugen stehen bleiben und dann am Abend sich wieder in die andere Richtung drehen, quasi wenn der Wert des Fotowiderstandes wieder unterschritten wird. Solagnge soll der Motor still stehen.

Hier ist mein Quelltext:

int eingang= A0;

int LED = 10;

int sensorWert = 0;

#include <Stepper.h>

int SPU = 2048;

Stepper Motor(SPU, 3,5,4,6);

void setup()

{

Serial.begin(9600);

pinMode (LED, OUTPUT);

Motor.setSpeed(10);

}

void loop()

{

sensorWert =analogRead(eingang);

Serial.print("Sensorwert = " );

Serial.println(sensorWert);

if (sensorWert > 400 )

{

digitalWrite(LED, HIGH);

Motor.step(2048);

}

else

{

digitalWrite(LED, LOW);

Motor.step(-2048);

}

delay (50);

}

...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

Java Programmierung Adventskalender

Guten Tag, ich habe vor einen Adventskalender mit Java zu schreiben. Ich habe schon ein bisschen angefangen, komme aber leider nicht weiter. Ich habe das Problem das er das Datum nicht vergleicht. Mir fehlt leider der Passende Befehl dazu.

Aso im Anschluss der erklärung meines Problemes kommt auch der Script.

Ich möchte das Formatierte Datum bei if haben z.B." (if (formartiertes datum) == 27112014)

Nun das Formatieren klappt ja aber ich weiß nicht wie ich das Formatierte in eine Variabel bekomme bzw. übertrage..

import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.Date; import java.util.GregorianCalendar;

public class Adventskalender {

public static void main(String[] args) {

Date Datum = new Date();
SimpleDateFormat einfaches = new SimpleDateFormat("ddMMyyyy");

System.out.println(einfaches.format(Datum));



if (27112014 == 27112014) {
  System.out.print ( "Richtig so");
} // end of if
else {
  System.out.println ("Dulli");
} // end of if-else



}

}

...zur Frage

Ich versuche einen Taschenrechner mit Java zu programmieren, warum wiederholt sich die do-while-Schleife nicht, wenn.....?

man eine ungülgite Rechenoperation auswählt?

Stattdessen springt er aus der Schleife und macht mit der nächsten Ausgabe weiter.

Scanner s = new Scanner (System.in);
        
        
        System.out.println("Hallo, dies ist ein Taschenrechner.\nWähle eine Rechenoperation aus. Zur Auswhl stehen: +,-,/,");         String Eingabe = s.next();                  boolean bool;                           do         {             if (Eingabe.equals("+")) {                 System.out.println("Eingabe bestätigt.");                 bool=true;}             else if(Eingabe.equals("-")) {                 System.out.println("Eingabe bestätigt.");                 bool=true;}             else if(Eingabe.equals("/")) {                 System.out.println("Eingabe bestätigt.");                 bool=true;}             else if(Eingabe.equals("")) {
                System.out.println("Eingabe bestätigt.");
                bool=true;}
            else {System.out.println("Eingabe nicht verstanden. Bitte wähle eine gültige Rechenoperation aus.");
                bool=false;
                Eingabe = s.next();
                
                }
            
        }while(bool = false);
    
        System.out.println("Nun gib zwei Zahlen ein, mit denen gerechnet werden soll");

        

Hier nochmal als Bild

https://www2.pic-upload.de/img/35478781/Unbenannt.png

      

...zur Frage

Was möchtest Du wissen?